<?xml version="1.0" encoding="UTF-8"?>
<data>
   <!--
/*
 * Copyright (C) 1994-2021 Altair Engineering, Inc.
 * For more information, contact Altair at www.altair.com.
 *
 * This file is part of both the OpenPBS software ("OpenPBS")
 * and the PBS Professional ("PBS Pro") software.
 *
 * Open Source License Information:
 *
 * OpenPBS 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.
 *
 * OpenPBS 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:
 *
 * PBS Pro is commercially licensed software that shares a common core with
 * the OpenPBS software.  For a copy of the commercial license terms and
 * conditions, go to: (http://www.pbspro.com/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 OpenPBS 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™",
 * "OpenPBS®", "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>
      <member_index>ND_ATR_Mom</member_index>
      <member_name>ATTR_NODE_Mom</member_name>
      <member_at_decode>
#ifndef PBS_MOM
      decode_Mom_list
#else
      decode_null
#endif
      </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>
#ifndef PBS_MOM
      set_node_host_name
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>MGR_ONLY_SET</member_at_flags>
      <member_at_type>ATR_TYPE_ARST</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>
      <member_index>ND_ATR_Port</member_index>
      <member_name>ATTR_NODE_Port</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>
#ifndef PBS_MOM
      set_node_mom_port
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>ATR_DFLAG_OPRD | ATR_DFLAG_MGRD | ATR_DFLAG_OPWR | ATR_DFLAG_MGWR</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
      <member_index>ND_ATR_version</member_index>
      <member_name>ATTR_version</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>ATR_DFLAG_OPRD | ATR_DFLAG_MGRD | ATR_DFLAG_SvWR</member_at_flags>
      <member_at_type>ATR_TYPE_STR</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>
      <member_index>ND_ATR_ntype</member_index>
      <member_name>ATTR_NODE_ntype</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>READ_ONLY | ATR_DFLAG_NOSAVM</member_at_flags>
      <member_at_type>ATR_TYPE_SHORT</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>
      <member_index>ND_ATR_state</member_index>
      <member_name>ATTR_NODE_state</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>
#ifndef PBS_MOM
#ifndef PBS_PYTHON
      node_state
#else
      NULL_FUNC
#endif
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>NO_USER_SET | ATR_DFLAG_NOSAVM</member_at_flags>
      <member_at_type>ATR_TYPE_SHORT</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>
      <member_index>ND_ATR_pcpus</member_index>
      <member_name>ATTR_NODE_pcpus</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>
#ifndef PBS_MOM
      node_pcpu_action
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>READ_ONLY | ATR_DFLAG_SvWR</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
      <member_index>ND_ATR_priority</member_index>
      <member_name>ATTR_p</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>NO_USER_SET</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
      <member_index>ND_ATR_jobs</member_index>
      <member_name>ATTR_NODE_jobs</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>ATR_DFLAG_RDACC | ATR_DFLAG_NOSAVM</member_at_flags>
      <member_at_type>ATR_TYPE_JINFOP</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>
      <member_index>ND_ATR_MaxRun</member_index>
      <member_name>ATTR_maxrun</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>NO_USER_SET</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
      <member_index>ND_ATR_MaxUserRun</member_index>
      <member_name>ATTR_maxuserrun</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>NO_USER_SET</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
      <member_index>ND_ATR_MaxGrpRun</member_index>
      <member_name>ATTR_maxgrprun</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>NO_USER_SET</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
      <member_index>ND_ATR_No_Tasks</member_index>
      <member_name>ATTR_NODE_No_Tasks</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>NO_USER_SET</member_at_flags>
      <member_at_type>ATR_TYPE_BOOL</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>
      <member_index>ND_ATR_PNames</member_index>
      <member_name>ATTR_PNames</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>MGR_ONLY_SET</member_at_flags>
      <member_at_type>ATR_TYPE_ARST</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>
      <member_index>ND_ATR_resvs</member_index>
      <member_name>ATTR_NODE_resvs</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>ATR_DFLAG_RDACC | ATR_DFLAG_NOSAVM</member_at_flags>
      <member_at_type>ATR_TYPE_JINFOP</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>
      <member_index>ND_ATR_ResourceAvail</member_index>
      <member_name>ATTR_rescavail</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>
#ifndef PBS_MOM
      node_np_action
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>NO_USER_SET</member_at_flags>
      <member_at_type>ATR_TYPE_RESC</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>
      <member_index>ND_ATR_ResourceAssn</member_index>
      <member_name>ATTR_rescassn</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>READ_ONLY | ATR_DFLAG_NOSAVM</member_at_flags>
      <member_at_type>ATR_TYPE_RESC</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>
      <member_index>ND_ATR_Queue</member_index>
      <member_name>ATTR_queue</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>
#ifndef PBS_MOM
      node_queue_action
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>MGR_ONLY_SET</member_at_flags>
      <member_at_type>ATR_TYPE_STR</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>
      <member_index>ND_ATR_Comment</member_index>
      <member_name>ATTR_comment</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>
#ifndef PBS_MOM
      node_comment
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>NO_USER_SET | ATR_DFLAG_NOSAVM</member_at_flags>
      <member_at_type>ATR_TYPE_STR</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>
      <member_index>ND_ATR_ResvEnable</member_index>
      <member_name>ATTR_NODE_resv_enable</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>MGR_ONLY_SET | ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_BOOL</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>
      <member_index>ND_ATR_NoMultiNode</member_index>
      <member_name>ATTR_NODE_NoMultiNode</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>MGR_ONLY_SET</member_at_flags>
      <member_at_type>ATR_TYPE_BOOL</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>
      <member_index>ND_ATR_Sharing</member_index>
      <member_name>ATTR_NODE_Sharing</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>READ_ONLY | ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
      <member_index>ND_ATR_ProvisionEnable</member_index>
      <member_name>ATTR_NODE_ProvisionEnable</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>
#ifndef PBS_MOM
      node_prov_enable_action
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>MGR_ONLY_SET | ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_BOOL</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>
      <member_index>ND_ATR_current_aoe</member_index>
      <member_name>ATTR_NODE_current_aoe</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>
#ifndef PBS_MOM
      node_current_aoe_action
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>MGR_ONLY_SET | ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_STR</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>
      <member_index>ND_ATR_in_multivnode_host</member_index>
      <member_name>ATTR_NODE_in_multivnode_host</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>ATR_DFLAG_MGRD | ATR_DFLAG_MGWR</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
      <member_index>ND_ATR_MaintJobs</member_index>
      <member_name>ATTR_NODE_MaintJobs</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>ATR_DFLAG_SvWR | ATR_DFLAG_MGRD</member_at_flags>
      <member_at_type>ATR_TYPE_ARST</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">
      <member_index>ND_ATR_License</member_index>
      <member_name>ATTR_NODE_License</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>READ_ONLY | ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_CHAR</member_at_type>
      <member_at_parent>PARENT_TYPE_NODE</member_at_parent>
   </attributes>
   <attributes flag="SVR">
      <member_index>ND_ATR_LicenseInfo</member_index>
      <member_name>ATTR_NODE_LicenseInfo</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>ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</member_at_type>
      <member_at_parent>PARENT_TYPE_NODE</member_at_parent>
   </attributes>
   <attributes flag="SVR">
      <member_index>ND_ATR_TopologyInfo</member_index>
      <member_name>ATTR_NODE_TopologyInfo</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>
#ifndef PBS_MOM
      set_node_topology
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>ATR_DFLAG_SSET | ATR_DFLAG_NOSAVM</member_at_flags>
      <member_at_type>ATR_TYPE_STR</member_at_type>
      <member_at_parent>PARENT_TYPE_NODE</member_at_parent>
   </attributes>
   <attributes>
      <member_index>ND_ATR_vnode_pool</member_index>
      <member_name>ATTR_NODE_VnodePool</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>
#ifndef PBS_MOM
      chk_vnode_pool
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>MGR_ONLY_SET</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
      <member_index>ND_ATR_Power_Provisioning</member_index>
      <member_name>ATTR_NODE_power_provisioning</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>
#ifndef PBS_MOM
      node_prov_enable_action
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>MGR_ONLY_SET | ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_BOOL</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>
      <member_index>ND_ATR_current_eoe</member_index>
      <member_name>ATTR_NODE_current_eoe</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>MGR_ONLY_SET | ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_STR</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>
      <member_index>ND_ATR_partition</member_index>
      <member_name>ATTR_partition</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>
#ifndef PBS_MOM
      action_node_partition
#else
      NULL_FUNC
#endif
      </member_at_action>
      <member_at_flags>ATR_DFLAG_OPRD | ATR_DFLAG_MGRD | ATR_DFLAG_OPWR | ATR_DFLAG_MGWR</member_at_flags>
      <member_at_type>ATR_TYPE_STR</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>
      <member_index>ND_ATR_poweroff_eligible</member_index>
      <member_name>ATTR_NODE_poweroff_eligible</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>MGR_ONLY_SET | ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_BOOL</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>
      <member_index>ND_ATR_last_state_change_time</member_index>
      <member_name>ATTR_NODE_last_state_change_time</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>READ_ONLY | ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
      <member_index>ND_ATR_last_used_time</member_index>
      <member_name>ATTR_NODE_last_used_time</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>READ_ONLY | ATR_DFLAG_SSET</member_at_flags>
      <member_at_type>ATR_TYPE_LONG</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>
