Smarts NCM: Why does Smarts NCM not issue a logout/disconnect command on disconnecting from devices?
search cancel

Smarts NCM: Why does Smarts NCM not issue a logout/disconnect command on disconnecting from devices?

book

Article ID: 330980

calendar_today

Updated On:

Products

VMware Smart Assurance

Issue/Introduction

Symptoms:


This article explains why Smarts NCM does not use explicit session disconnects when disconnecting from devices.

Smarts NCM does not issue a logout or specific disconnect command when disconnecting from a device.

Environment

VMware Smart Assurance - NCM

Resolution

When Smarts NCM was designed with the current architecture, a number of factors were taken into account for the scalability and performance of the system. One such consideration was around the NCM <-> Device connection, and the decision was made and subsequently implemented that Smarts NCM would not issue explicit disconnect commands to devices after logging into the device to perform various tasks.

Implementing session disconnects would have required additional overhead to handle the operations, and would have manifested itself in performance related issues. The use of an explicit logout / exit / quit command from the device has never been present in NCM and / or the driver code base. A protocol disconnection only was used explicitly by the driver in product versions earlier than 4.x. There is also no provision for a driver routine to issue class-specific actions at the point a connection is torn down.

Efficiencies within NCM have been evaluated and implemented with NCM 4.x, session caching was introduced with the aim to reduce the overhead of connection setup and tear-down, which keeps a connection up for a configurable period so that subsequent communications may proceed (in effect) immediately. The best example of the efficiencies of session caching comes in when there is a device pull for multiple configuration units, where each type has a public entry point in the associated driver code. Without session caching, additional delay would be imposed for the disconnect / reconnect activities. A driver has no knowledge beforehand of how many operations will be required of it in fulfilling a job task; this is consistent with the reduction of business logic on the network-facing side.

Device capabilities ultimately define the communication process / methodology as there are a few device classes that permit only a single session at a time; in general they are written to use the original approach of explicit setup and teardown, the mechanics of which are handled in C++ code. Nonetheless they do not issue logout commands either.

Explicit disconnects are often done prior to a device reboot or after rolling account credentials, but again, that is driver-specific in its use.

Implementing explicit session disconnects would have far reaching consequences within the NCM architecture and as such, is not something that is under consideration for implementation.