! PROBE.CLD version 2.3
!
! 2.1-1 : added interval keyword to /display qualifier
! 2.1-2 : restructured display scaling into separate keyword values
! 2.1-3 : enhanced disallow clauses section
! 2.1-4 : restructured statistics qualifier for output & report keywords
! 2.1-5 : restructured record qualifier for output & data keywords
! 2.2-1 : added default value to /record=data clause
! 2.2-2 : added analyze.class.data keyword & disallow (noframe) clause
! 2.2-3 : uncommented /analyze, /extract, /playback qualifiers
! 2.2B-1: converted /xcollision to /collision
! 2.3-1 : file value for /table now optional

DEFINE TYPE ANAZ_ITEMS
  KEYWORD OUTPUT ,
            LABEL=ANAZ_OUT ,
            VALUE(REQUIRED,TYPE=$FILE)
  KEYWORD CLASS ,
            LABEL=ANAZ_CLS ,
            VALUE(REQUIRED,LIST,TYPE=CLSS_ITEMS)

DEFINE TYPE CLSS_ITEMS
  KEYWORD ALL ,
            LABEL=CLSS_ALL
  KEYWORD COLLISION ,
            LABEL=CLSS_COL ,
            NEGATABLE
  KEYWORD CONTROLS ,
            LABEL=CLSS_CTL ,
            NEGATABLE
  KEYWORD CYCLE_BREAK ,
            LABEL=CLSS_CYC ,
            NEGATABLE
  KEYWORD DATA ,
            LABEL=CLSS_DAT ,
            NEGATABLE
  KEYWORD FRAME ,
            LABEL=CLSS_FRM ,
            NEGATABLE
  KEYWORD HEADER ,
            LABEL=CLSS_HDR ,
            NEGATABLE
  KEYWORD TABLE ,
            LABEL=CLSS_TBL ,
            NEGATABLE

DEFINE TYPE DISP_ITEMS
  KEYWORD INTERVAL ,
            LABEL=DISP_INT ,
            VALUE(REQUIRED,TYPE=$NUMBER)
  KEYWORD PEAK ,
	    LABEL=DISP_PEK
  KEYWORD SCALE ,
            LABEL=DISP_SCL ,
            VALUE(REQUIRED,TYPE=SCAL_ITEMS)
  KEYWORD SMOOTHING ,
	    LABEL=DISP_SMT ,
	    VALUE(TYPE=$NUMBER,DEFAULT=20)
  KEYWORD THRESHOLD ,
	    LABEL=DISP_THR ,
	    VALUE(REQUIRED,TYPE=$NUMBER)

DEFINE TYPE EXTR_ITEMS
  KEYWORD CYCLE ,
            LABEL=EXTR_CYC ,
            VALUE(REQUIRED,LIST,TYPE=$NUMBER)

DEFINE TYPE FILT_ITEMS
  KEYWORD DESTINATION_ONLY ,
	    LABEL=FILT_DST
  KEYWORD FORMAT ,
	    LABEL=FILT_FMT ,
	    VALUE(REQUIRED,TYPE=FRMT_ITEMS)
  KEYWORD MULTICAST ,
	    LABEL=FILT_MLT
  KEYWORD NODE ,
	    LABEL=FILT_NOD ,
	    VALUE(REQUIRED,LIST)
  KEYWORD PROTOCOL ,
	    LABEL=FILT_PTL ,
	    VALUE(REQUIRED,LIST,TYPE=$NUMBER)
  KEYWORD SOURCE_ONLY ,
	    LABEL=FILT_SRC

DEFINE TYPE FRMT_ITEMS
  KEYWORD ETHERNET ,
	    LABEL=FRMT_ETH
  KEYWORD IEEE_802_3 ,
	    LABEL=FRMT_802

DEFINE TYPE INTF_ITEMS
  KEYWORD CHARACTER_CELL ,
	    LABEL=INTF_CHR
  KEYWORD XWINDOWS ,
	    LABEL=INTF_X11

DEFINE TYPE RECD_ITEMS
  KEYWORD OUTPUT ,
            LABEL=RECD_OUT ,
            VALUE(REQUIRED,TYPE=$FILE)
  KEYWORD DATA ,
            LABEL=RECD_DAT ,
	    VALUE(TYPE=$NUMBER,DEFAULT=16)

DEFINE TYPE REPT_ITEMS
  KEYWORD SUMMARY ,
            LABEL=REPT_SUM

DEFINE TYPE SCAL_ITEMS
  KEYWORD FULL ,
	    LABEL=SCAL_100
  KEYWORD HALF ,
	    LABEL=SCAL_050
  KEYWORD LOGARITHMIC ,
	    LABEL=SCAL_LOG

DEFINE TYPE SCHD_ITEMS
  KEYWORD ACTIVE_INTERVAL ,
	    LABEL=SCHD_ACT ,
	    VALUE(REQUIRED,TYPE=$DELTATIME)
  KEYWORD CYCLE ,
	    LABEL=SCHD_CYC ,
	    DEFAULT ,
	    VALUE(TYPE=$NUMBER,DEFAULT=1)
  KEYWORD STANDBY_INTERVAL ,
	    LABEL=SCHD_STB ,
	    VALUE(REQUIRED,TYPE=$DELTATIME)

DEFINE TYPE STAT_ITEMS
  KEYWORD OUTPUT ,
            LABEL=STAT_OUT ,
            VALUE(REQUIRED,TYPE=$FILE)
  KEYWORD REPORT ,
            LABEL=STAT_REP ,
            VALUE(REQUIRED,TYPE=REPT_ITEMS)

DEFINE SYNTAX PLAY_STX
  IMAGE     "SYS_PROBE:REPLAY"
  NOPARAMETERS

DEFINE VERB PROBE
  IMAGE     "SYS_PROBE:PROBE"
  PARAMETER P1 ,
	    LABEL=PRB_ADAP ,
	    PROMPT="Adapter"
  QUALIFIER ANALYZE ,
            LABEL=PRB_ANAZ ,
            NONNEGATABLE ,
            VALUE(LIST,TYPE=ANAZ_ITEMS)
  QUALIFIER COLLISION_RATE ,
	    LABEL=PRB_COLL ,
	    NONNEGATABLE ,
	    VALUE(REQUIRED,TYPE=$NUMBER)
  QUALIFIER DISPLAY ,
	    LABEL=PRB_DISP ,
	    NONNEGATABLE ,
	    VALUE(LIST,TYPE=DISP_ITEMS)
  QUALIFIER EXTRACT ,
            LABEL=PRB_EXTR ,
            NONNEGATABLE ,
            VALUE(REQUIRED,TYPE=EXTR_ITEMS)
  QUALIFIER FILTER ,
	    LABEL=PRB_FILT ,
	    NONNEGATABLE ,
	    VALUE(REQUIRED,LIST,TYPE=FILT_ITEMS)
!  QUALIFIER INTERFACE ,
!	    LABEL=PRB_INTF ,
!	    NONNEGATABLE ,
!	    VALUE(REQUIRED,TYPE=INTF_ITEMS)
  QUALIFIER PLAYBACK ,
	    LABEL=PRB_PLAY ,
	    NONNEGATABLE ,
	    VALUE(TYPE=$FILE) ,
	    SYNTAX=PLAY_STX
  QUALIFIER RECORD ,
	    LABEL=PRB_RECD ,
	    NONNEGATABLE ,
	    VALUE(LIST,TYPE=RECD_ITEMS)
  QUALIFIER SCHEDULE ,
	    LABEL=PRB_SCHD ,
	    NONNEGATABLE ,
	    VALUE(REQUIRED,LIST,TYPE=SCHD_ITEMS)
  QUALIFIER STATISTICS ,
	    LABEL=PRB_STAT ,
	    NONNEGATABLE ,
	    VALUE(LIST,TYPE=STAT_ITEMS)
  QUALIFIER TABLE ,
	    LABEL=PRB_TABL ,
	    NONNEGATABLE ,
	    VALUE(TYPE=$FILE)
  QUALIFIER XDIAGNOSTIC ,
	    LABEL=PRB_XDMP ,
	    NONNEGATABLE                  ! extension - dump data structures
!
  DISALLOW  (CLSS_DAT AND NEG CLSS_FRM)
  DISALLOW  (FILT_DST AND FILT_SRC)
  DISALLOW  (FILT_NOD AND NOT PRB_TABL)
  DISALLOW  (FILT_PTL AND NOT PRB_TABL)
  DISALLOW  (PRB_ANAZ AND PRB_DISP)       ! (PRB_DISP OR PRB_INTF)
  DISALLOW  (PRB_ANAZ AND NOT PRB_PLAY)
  DISALLOW  (PRB_EXTR AND NOT PRB_PLAY)
!  DISALLOW  (PRB_INTF AND NOT PRB_PLAY)
  DISALLOW  (PRB_SCHD AND NOT SCHD_ACT)
  DISALLOW  (SCHD_CYC AND NOT SCHD_STB)
  DISALLOW  (PRB_PLAY AND (PRB_FILT OR PRB_RECD OR PRB_SCHD OR PRB_STAT))
