#ifndef	_NMSTATUS_H_
#define	_NMSTATUS_H_
/*
 * nmstatus.h: Definitions of status/error codes used with NM functions.
 *
 * IMPORTANT: PLEASE READ!
 *
 * This file is special, in that it is read by network management tools in
 * order to learn the print strings for status/error codes.  For this reason,
 * the file format is very rigid.
 *
 * The file must only contain #define statements with the prefixes "NMSTAT_"
 * and "NMERROR_", and all #define values must be plain numbers.  Each #define
 * must have a label modifier inside the special comment field (/ *{ ... }* /,
 * with stars connected to slashes, illegal in this comment!) that immediately
 * follows it.  This label gives the print string for the status/error code.
 *
 * The "NMSTAT_" codes all report a form of success.  The "NMERROR_" codes
 * report error conditions that apply to an entire operation or to a
 * particular attribute or parameter involved in the operation.
 *
 * Once a value is assigned here, it may never be changed.  Add new values at
 * the END of the correct category.
 *
 * Bruce Nelson, interWAVE, 08/16/95.
 */

/*
 * Non-error status codes: 0 - 9.
 *
 * Note: NMSTAT_FAILURE implies that an operation completed without error,
 * but failed none the less.  For Boolean operations, NMSTAT_SUCCESS means
 * "TRUE" and NMSTAT_FAILURE means "FALSE".
 */
#define	NMSTAT_SUCCESS		0	/*{ label("ok") }*/
#define	NMSTAT_FAILURE		1	/*{ label("failure w/o error") }*/
#define	NMSTAT_PENDING		2	/*{ label("operation pending") }*/

/*
 * Begin error codes: >= 10.
 */
#define	NMERROR_BAD_MESSAGE	10	/*{ label("unreadable message") }*/
#define	NMERROR_ENCODING	11	/*{ label("data encoding error") }*/
#define	NMERROR_PROTOCOL	12	/*{ label("protocol violation") }*/
#define	NMERROR_SYSTEM		13	/*{ label("system error") }*/
#define	NMERROR_MEMORY		14	/*{ label("out of memory") }*/
#define	NMERROR_INTERNAL	15	/*{ label("internal error") }*/
#define	NMERROR_INTERNAL_PARM	16	/*{ label("internal parm error") }*/
#define	NMERROR_VTABLE		17	/*{ label("virtual table error") }*/
#define	NMERROR_CONT_TABLE	18	/*{ label("container table error") }*/
#define	NMERROR_OPERATION	19	/*{ label("no such operation") }*/
#define	NMERROR_BAD_TYPE	20	/*{ label("no such data type") }*/
#define	NMERROR_BAD_CLASS	21	/*{ label("no such class") }*/
#define	NMERROR_BAD_ATTRIBUTE	22	/*{ label("no such attribute") }*/
#define	NMERROR_BAD_ACTION	23	/*{ label("no such action") }*/
#define	NMERROR_BAD_PARAMETER	24	/*{ label("no such parameter") }*/
#define	NMERROR_BAD_COMPARATOR	25	/*{ label("no such comparator") }*/
#define	NMERROR_TYPE		26	/*{ label("improper data type") }*/
#define	NMERROR_CLASS		27	/*{ label("improper class") }*/
#define	NMERROR_ATTRIBUTE	28	/*{ label("improper attribute") }*/
#define	NMERROR_ACTION		29	/*{ label("improper action") }*/
#define	NMERROR_PARAMETER	30	/*{ label("improper parameter") }*/
#define	NMERROR_COMPARATOR	31	/*{ label("improper comparator") }*/
#define	NMERROR_INDEX		32	/*{ label("improper index") }*/
#define	NMERROR_OBJECT		33	/*{ label("no such object") }*/
#define	NMERROR_OBJECT_EXISTS	34	/*{ label("object already exists") }*/
#define	NMERROR_OBJECT_ID	35	/*{ label("bad object identifier") }*/
#define	NMERROR_RANGE		36	/*{ label("value out-of-range") }*/
#define	NMERROR_ENUM		37	/*{ label("improper enum choice") }*/
#define	NMERROR_READONLY	38	/*{ label("read-only attribute") }*/
#define	NMERROR_ARRAY_TOO_BIG	39	/*{ label("array too long") }*/
#define NMERROR_ARRAY_MISMATCH	40	/*{ label("array length mismatch") }*/
#define NMERROR_APP_ADDR	41	/*{ label("bad application addr") }*/
#define NMERROR_BUSY		42	/*{ label("busy") }*/
#define NMERROR_KILLED		43	/*{ label("killed") }*/
#define	NMERROR_CONTINUE_HEADER	44	/*{ label("continue header error") }*/
#define	NMERROR_CONTINUE_MSG	45	/*{ label("continue msg error") }*/
#define	NMERROR_CONTINUE_OPCODE	46	/*{ label("continue opcode error") }*/
#define	NMERROR_CONTINUE_DATA	47	/*{ label("continue data error") }*/
#define	NMERROR_ATTR_ERRORS	48	/*{ label("attribute error(s)") }*/
#define	NMERROR_INTERNAL_ATTR	49	/*{ label("internal attr error") }*/
#define	NMERROR_ATTR_REJECTED	50	/*{ label("attr value rejected") }*/
#define	NMERROR_REJECT_HEADER	51	/*{ label("reject header error") }*/
#define	NMERROR_REJECT_DATA	52	/*{ label("reject data error") }*/
#define	NMERROR_INTERNAL_STAT	53	/*{ label("internal status error") }*/
#define	NMERROR_ABSTRACT	54	/*{ label("abstract class") }*/
#define	NMERROR_DBM_SAVE_VARS	55	/*{ label("dbm save vars error") }*/
#define	NMERROR_DBM_SAVE_CONTS	56	/*{ label("dbm save conts error") }*/
#define	NMERROR_DBM_REST_VARS	57	/*{ label("dbm restore vars error") }*/
#define	NMERROR_DBM_REST_CONTS	58	/*{ label("dbm restore conts error") }*/
#define	NMERROR_DBM_UNINIT	59	/*{ label("dbm uninitialized") }*/
#define NMERROR_ADSTAT_UNLOCKED	60	/*{ label("admin state unlocked") }*/
#define NMERROR_CHANNELS_INUSE	61	/*{ label("channel(s) in use") }*/
#define	NMERROR_OBJ_UNREACHABLE	62	/*{ label("object unreachable") }*/
#define NMERROR_BUSY_ACTION	63	/*{ label("busy with action") }*/
#define	NMERROR_PARM_ERRORS	64	/*{ label("parameter error(s)") }*/
#define	NMERROR_PARM_UFLOW	65	/*{ label("too few parameters") }*/
#define	NMERROR_PARM_OFLOW	66	/*{ label("too many parameters") }*/
#define	NMERROR_INTERNAL_ACTION	67	/*{ label("internal action error") }*/
#define NMERROR_ACTION_REJECTED	68	/*{ label("action rejected") }*/
#define NMERROR_NO_TRANSITION   69      /*{ label("no transition")}*/
#define	NMERROR_CONT_READONLY	70	/*{ label("read-only container") }*/
#define NMERROR_CREATE_REJECTED	71	/*{ label("create rejected") }*/
#define NMERROR_DELETE_REJECTED	72	/*{ label("delete rejected") }*/
#define NMERROR_CONT_REJECTED	73	/*{ label("contents rejected") }*/
#define	NMERROR_FORWARD_HEADER	74	/*{ label("forward header error") }*/
#define	NMERROR_FORWARD_MSG	75	/*{ label("forward msg error") }*/
#define	NMERROR_FORWARD_OPCODE	76	/*{ label("forward opcode error") }*/

#endif /* _NMSTATUS_H_ */
