{
{    The purpose of this procedure is to return the identifier of the device
{ most suitable for reaching the given destination address.  For a CDNA address
{ it first identifies the devices that support the prefix in the given
{ destination address.  The subnet attributes lists associated with these
{ devices are further searched to find the device with the best path to the
{ destination address.  The device selection algorithm load levels across the
{ directly connected devices. If the subnet is not found in the subnet list
{ or if the destination address is NON CDNA, the directly connected devices are
{ polled for routing information.  The procedure awaits the responses from
{ all the devices.  The device that can reach the destination and has the least
{ number of active connections is selected. In case none of the devices can
{ reach the given destination address, an abnormal status is returned to the
{ caller.  If the route to the given subnet is indeterminate, a list of
{ identifiers of the devices through which the given destination may be
{ accessible, is returned to the caller.
{
{       NLP$SM_SELECT_DEVICE (DESTINATION_ADDRESS, CDNA_ADDRESS, DEVICE_LIST,
{             COUNT, STATUS)
{
{ DESTINATION_ADDRESS: (input)  This parameter specifies the OSI destination
{       address.
{
{ CDNA_ADDRESS: (input)  This parameter has a value of TRUE if the given
{       destination address is a CDNA address and is FALSE otherwise.
{
{ DEVICE_LIST: (output)  This parameter specifies the identifier of the device
{       through which the given destination address is accessible or a list of
{       identifiers of all the devices through which the given destination
{       address may be accessible.  The upperbound of this array must be equal
{       to the number of configured network devices.
{
{ COUNT: (output)  This parameter specifies the count of the device identifiers
{       specified via the previous parameter (DEVICE LIST).
{
{ STATUS: (output) This parameter specifies the request status.
{       CONDITIONS:
{             nae$insufficient_resources
{             nae$sm_devices_inaccessible
{             nae$sm_no_device_configured
{             nae$sm_route_unknown
{       IDENTIFIER: 'NA'
{
