<?xml version="1.0" encoding="utf-8"?>
<data>
    <!--
 * Copyright (C) 1994-2018 Altair Engineering, Inc.
 * For more information, contact Altair at www.altair.com.
 *
 * This file is part of the PBS Professional ("PBS Pro") software.
 *
 * Open Source License Information:
 *
 * PBS Pro is free software. You can redistribute it and/or modify it under the
 * terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, either version 3 of the License, or (at your option) any
 * later version.
 *
 * PBS Pro is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.
 * See the GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Commercial License Information:
 *
 * For a copy of the commercial license terms and conditions,
 * go to: (http://www.pbspro.com/UserArea/agreement.html)
 * or contact the Altair Legal Department.
 *
 * Altair’s dual-license business model allows companies, individuals, and
 * organizations to create proprietary derivative works of PBS Pro and
 * distribute them - whether embedded or bundled with other software -
 * under a commercial license agreement.
 *
 * Use of Altair’s trademarks, including but not limited to "PBS™",
 * "PBS Professional®", and "PBS Pro™" and Altair’s logos is subject to Altair's
 * trademark licensing policies.

    NOTE (Server File)
    node_attr_def is the array of attribute definitions for nodes.
    Each legal node attribute is defined here.
    The entries for each attribute are (see attribute.h):
	name,
	decode function,
	encode function,
	set function,
	compare function,
	free value space function,
	action function,
	access permission flags,
	value type,
	parent object type

    NOTE (ECL File)
    The entries for each attribute are (see attribute.h):
	name,
	type,
	flag,
	verify datatype function,
	verify value function
    -->
    <head>
	<SVR>
	#include &lt;pbs_config.h&gt;
	#include &lt;sys/types.h&gt;
	#include &lt;stdlib.h&gt;
	#include &lt;ctype.h&gt;
	#include "server_limits.h"
	#include "pbs_ifl.h"
	#include &lt;string.h&gt;
	#include "list_link.h"
	#include "attribute.h"
	#include "resource.h"
	#include "pbs_error.h"
	#include "pbs_nodes.h"

	attribute_def node_attr_def[] = {
	</SVR>
	<ECL>
	#include &lt;pbs_config.h&gt;
	#include &lt;sys/types.h&gt;
	#include "pbs_ifl.h"
	#include "pbs_ecl.h"

	ecl_attribute_def ecl_node_attr_def[] = {
	</ECL>
    </head>
    <attributes>
    /* ND_ATR_Mom */
	<member_name><both>ATTR_NODE_Mom</both></member_name>
	<member_at_decode>decode_Mom_list</member_at_decode>
	<member_at_encode>encode_arst</member_at_encode>
	<member_at_set>set_arst_uniq</member_at_set>
	<member_at_comp>comp_arst</member_at_comp>
	<member_at_free>free_arst</member_at_free>
	<member_at_action>set_node_host_name</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_ARST</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_Port */
	<!-- Port - port to which Mom is listening -->
	<member_name><both>ATTR_NODE_Port</both></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>set_node_mom_port</member_at_action>
	<member_at_flags><both>ATR_DFLAG_OPRD | ATR_DFLAG_MGRD | ATR_DFLAG_OPWR | ATR_DFLAG_MGWR</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_version */
	<!-- Mom's pbs_version -->
	<member_name><both>ATTR_version</both></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>ATR_DFLAG_OPRD | ATR_DFLAG_MGRD | ATR_DFLAG_SvWR</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_ntype */
	<!-- ntype -->
	<member_name><both>ATTR_NODE_ntype</both></member_name>
	<member_at_decode>decode_ntype</member_at_decode>
	<member_at_encode>encode_ntype</member_at_encode>
	<member_at_set>set_node_ntype</member_at_set>
	<member_at_comp>comp_null</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>node_ntype</member_at_action>
	<member_at_flags><both>READ_ONLY | ATR_DFLAG_NOSAVM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_SHORT</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_state */
	<!-- state -->
	<member_name><both>ATTR_NODE_state</both></member_name>
	<member_at_decode>decode_state</member_at_decode>
	<member_at_encode>encode_state</member_at_encode>
	<member_at_set>set_node_state</member_at_set>
	<member_at_comp>comp_null</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>node_state</member_at_action>
	<member_at_flags><both>NO_USER_SET | ATR_DFLAG_NOSAVM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_SHORT</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_pcpus */
	<!-- pcpus - physical cpus -->
	<member_name><both>ATTR_NODE_pcpus</both></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>node_pcpu_action</member_at_action>
	<member_at_flags><both>READ_ONLY | ATR_DFLAG_SvWR</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_Priority */
	<!-- Priority -->
	<member_name><both>ATTR_p</both></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>NO_USER_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>verify_value_priority</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_jobs */
	<!-- jobs -->
	<member_name><both>ATTR_NODE_jobs</both></member_name>
	<member_at_decode>decode_null</member_at_decode>
	<member_at_encode>encode_jobs</member_at_encode>
	<member_at_set>set_null</member_at_set>
	<member_at_comp>comp_null</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>ATR_DFLAG_RDACC | ATR_DFLAG_NOSAVM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_JINFOP</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_MaxRun */
	<!-- max_running -->
	<member_name><both>ATTR_maxrun</both></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>NO_USER_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_MaxUserRun */
	<!-- max_user_run -->
	<member_name><both>ATTR_maxuserrun</both></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>NO_USER_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_MaxGrpRun */
	<!-- max_group_run -->
	<member_name><both>ATTR_maxgrprun</both></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>NO_USER_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_No_Tasks */
	<!-- no_tasks -->
	<member_name><both>ATTR_NODE_No_Tasks</both></member_name>
	<member_at_decode>decode_b</member_at_decode>
	<member_at_encode>encode_b</member_at_encode>
	<member_at_set>set_b</member_at_set>
	<member_at_comp>comp_b</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>NO_USER_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_BOOL</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_bool</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_PNames */
	<!-- pnames -->
	<member_name><both>ATTR_PNames</both></member_name>
	<member_at_decode>decode_arst</member_at_decode>
	<member_at_encode>encode_arst</member_at_encode>
	<member_at_set>set_arst</member_at_set>
	<member_at_comp>comp_arst</member_at_comp>
	<member_at_free>free_arst</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_ARST</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_resvs */
	<!-- reservations -->
	<member_name><both>ATTR_NODE_resvs</both></member_name>
	<member_at_decode>decode_null</member_at_decode>
	<member_at_encode>encode_resvs</member_at_encode>
	<member_at_set>set_null</member_at_set>
	<member_at_comp>comp_null</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>ATR_DFLAG_RDACC | ATR_DFLAG_NOSAVM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_JINFOP</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_ResourceAvail */
	<!-- resources_available -->
	<member_name><both>ATTR_rescavail</both></member_name>
	<member_at_decode>decode_resc</member_at_decode>
	<member_at_encode>encode_resc</member_at_encode>
	<member_at_set>set_resc</member_at_set>
	<member_at_comp>comp_resc</member_at_comp>
	<member_at_free>free_resc</member_at_free>
	<member_at_action>node_np_action</member_at_action>
	<member_at_flags><both>NO_USER_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_RESC</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>verify_value_resc</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_ResourceAssn */
	<!-- resources_assigned -->
	<member_name><both>ATTR_rescassn</both></member_name>
	<member_at_decode>decode_resc</member_at_decode>
	<member_at_encode>encode_resc</member_at_encode>
	<member_at_set>set_resc</member_at_set>
	<member_at_comp>comp_resc</member_at_comp>
	<member_at_free>free_resc</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_ONLY | ATR_DFLAG_NOSAVM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_RESC</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_Queue */
	<!-- queue -->
	<member_name><both>ATTR_queue</both></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>node_queue_action</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_Comment */
	<!-- comment -->
	<member_name><both>ATTR_comment</both></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>node_comment</member_at_action>
	<member_at_flags><both>NO_USER_SET | ATR_DFLAG_NOSAVM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_ResvEnable */
	<!-- resv_enable -->
	<member_name><both>ATTR_NODE_resv_enable</both></member_name>
	<member_at_decode>decode_b</member_at_decode>
	<member_at_encode>encode_b</member_at_encode>
	<member_at_set>set_b</member_at_set>
	<member_at_comp>comp_b</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET | ATR_DFLAG_SSET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_BOOL</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_bool</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_NoMultiNode */
	<!-- no_multinode_jobs -->
	<member_name><both>ATTR_NODE_NoMultiNode</both></member_name>
	<member_at_decode>decode_b</member_at_decode>
	<member_at_encode>encode_b</member_at_encode>
	<member_at_set>set_b</member_at_set>
	<member_at_comp>comp_b</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_BOOL</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_bool</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_Sharing */
	<!-- sharing -->
	<member_name><both>ATTR_NODE_Sharing</both></member_name>
	<member_at_decode>decode_sharing</member_at_decode>
	<member_at_encode>encode_sharing</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_ONLY | ATR_DFLAG_SSET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_ProvisionEnable */
	<!-- provision_enable -->
	<member_name><both>ATTR_NODE_ProvisionEnable</both></member_name>
	<member_at_decode>decode_b</member_at_decode>
	<member_at_encode>encode_b</member_at_encode>
	<member_at_set>set_b</member_at_set>
	<member_at_comp>comp_b</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>node_prov_enable_action</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET | ATR_DFLAG_SSET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_BOOL</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_bool</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_current_aoe */
	<!-- current_aoe -->
	<member_name><both>ATTR_NODE_current_aoe</both></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>node_current_aoe_action</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET | ATR_DFLAG_SSET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_in_multivnode_host */
	<!-- in_multivnode_host -->
	<member_name><both>ATTR_NODE_in_multivnode_host</both></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>ATR_DFLAG_MGRD | ATR_DFLAG_MGWR</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_MaintJobs */
	<!-- maintenance_jobs -->
	<member_name><both>ATTR_NODE_MaintJobs</both></member_name>
	<member_at_decode>decode_arst</member_at_decode>
	<member_at_encode>encode_arst</member_at_encode>
	<member_at_set>set_arst</member_at_set>
	<member_at_comp>comp_arst</member_at_comp>
	<member_at_free>free_arst</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>ATR_DFLAG_SvWR | ATR_DFLAG_MGRD</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_ARST</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes flag = 'SVR'>
	<!-- license -->
	<member_name><SVR>ATTR_NODE_License</SVR></member_name>
	<member_at_decode>decode_c</member_at_decode>
	<member_at_encode>encode_c</member_at_encode>
	<member_at_set>set_c</member_at_set>
	<member_at_comp>comp_c</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>READ_ONLY | ATR_DFLAG_SSET</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_CHAR</SVR></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
    </attributes>
    <attributes flag = 'SVR'>
	<!-- licensing information -->
	<member_name><SVR>ATTR_NODE_LicenseInfo</SVR></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>ATR_DFLAG_SSET</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_LONG</SVR></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
    </attributes>
    <attributes flag = 'SVR'>
	<member_name><SVR>ATTR_NODE_TopologyInfo</SVR></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>set_node_topology</member_at_action>
	<member_at_flags><SVR>ATR_DFLAG_SSET</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_STR</SVR></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
    </attributes>
    <attributes>
    /* ND_ATR_VnodePool */
	<!-- vnode_pool -->
	<member_name><both>ATTR_NODE_VnodePool</both></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>chk_vnode_pool</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_Power_Provisioning */
	<!-- power_provisioning -->
	<member_name><both>ATTR_NODE_power_provisioning</both></member_name>
	<member_at_decode>decode_b</member_at_decode>
	<member_at_encode>encode_b</member_at_encode>
	<member_at_set>set_b</member_at_set>
	<member_at_comp>comp_b</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>node_prov_enable_action</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET | ATR_DFLAG_SSET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_BOOL</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_bool</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_current_eoe */
	<!-- current_eoe -->
	<member_name><both>ATTR_NODE_current_eoe</both></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET | ATR_DFLAG_SSET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
    <attributes>
    /* ND_ATR_partition */
	<!-- partition -->
	<member_name><both>ATTR_partition</both></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>action_node_partition</member_at_action>
	<member_at_flags><both>ATR_DFLAG_OPRD | ATR_DFLAG_MGRD | ATR_DFLAG_OPWR | ATR_DFLAG_MGWR</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
    </attributes>
	<attributes>
   /* ND_ATR_poweroff_eligible */
	<member_name><both>ATTR_NODE_poweroff_eligible</both></member_name>          <!-- "poweroff_eligible" --> 
	<member_at_decode>decode_b </member_at_decode>
	<member_at_encode>encode_b </member_at_encode>
	<member_at_set>set_b </member_at_set>
	<member_at_comp>comp_b </member_at_comp>
	<member_at_free>free_null </member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>MGR_ONLY_SET | ATR_DFLAG_SSET </both></member_at_flags>
	<member_at_type><both>ATR_TYPE_BOOL </both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_bool </ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>	
   <attributes>
   /* ND_ATR_last_state_change_time */
   <member_name><both>ATTR_NODE_last_state_change_time </both></member_name>	<!-- "last_state_change_time" --> 
	<member_at_decode>decode_l </member_at_decode>
	<member_at_encode>encode_l </member_at_encode>
	<member_at_set>set_l </member_at_set>
	<member_at_comp>comp_l </member_at_comp>
	<member_at_free>free_null </member_at_free>
	<member_at_action>NULL_FUNC </member_at_action>
	<member_at_flags><both> READ_ONLY | ATR_DFLAG_SSET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG </both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /* ND_ATR_last_used_time */
	<member_name><both>ATTR_NODE_last_used_time </both></member_name>	<!-- "last_used_time" --> 
	<member_at_decode>decode_l </member_at_decode>
	<member_at_encode>encode_l </member_at_encode>
	<member_at_set>set_l </member_at_set>
	<member_at_comp>comp_l </member_at_comp>
	<member_at_free>free_null </member_at_free>
	<member_at_action>NULL_FUNC </member_at_action>
	<member_at_flags><both> READ_ONLY | ATR_DFLAG_SSET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG </both></member_at_type>
	<member_at_parent>PARENT_TYPE_NODE</member_at_parent>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
    <tail>
	<SVR>
	};
	</SVR>
	<ECL>
	};
	int ecl_node_attr_size = sizeof(ecl_node_attr_def)/sizeof(ecl_attribute_def);
	</ECL>
    </tail>
</data>
