module          max_number_in_system
------          --------------------
elp                 14

    system_attribute    values
    ----------------    ------
    condition           offline, initialising, online, broken

    user_attribute      values
    --------------      ------
    location            NULL, \
			s1, s2, s3, s4, s5, s6, s7, \
			s9, s10, s11, s12, s13, s14, s15
    type                0034
    revision            A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, \
			Q, R, S, T, U, V, W, X, Y, Z, ZZ
    req_condition       offline, online
    fault_acknowledged  no, yes
    description         "ethernet link processor"
    alias		string

    constituent         values
    -----------         ------
    controller          null 0, \
                        elp 0, elp 1, elp 2, elp 3, \
                        elp 4, elp 5, elp 6, elp 7, \
                        elp 8, elp 9, elp 10, elp 11, \
                        elp 12, elp 13
 
    state               function
    -----               --------
    not_here            if (location == NULL)
    offline             if (condition == offline && req_condition == offline)
    should_be_on        if (condition == offline && req_condition == online)
    initialising        if (condition == initialising && \
			    req_condition == online)
    online              if (condition == online && req_condition == online)
    should_be_off       if (condition != offline && req_condition == offline)
    broken		if (condition == broken && req_condition == online)

    transition      response
    ----------      --------
    unknown -> offline \
        echo "$name $number controller $name $number" >/dev/FTlog:cms
 
    unknown -> should_be_on \
        echo "$name $number controller $name $number" >/dev/FTlog:cms
 
    unknown -> initialising \
        echo "$name $number controller $name $number" >/dev/FTlog:cms
 
    unknown -> online \
        echo "$name $number controller $name $number" >/dev/FTlog:cms
 
    unknown -> should_be_off \
        echo "$name $number controller $name $number" >/dev/FTlog:cms
 
    not_here -> offline \
        echo "$name $number controller $name $number" >/dev/FTlog:cms
 
    not_here -> should_be_on \
        echo "$name $number controller $name $number" >/dev/FTlog:cms
 
    not_here -> initialising \
        echo "$name $number controller $name $number" >/dev/FTlog:cms
 
    not_here -> online \
        echo "$name $number controller $name $number" >/dev/FTlog:cms
 
    not_here -> should_be_off \
        echo "$name $number controller $name $number" >/dev/FTlog:cms
 
    offline -> should_be_on \
	/etc/cms/bin/slotctl $location set chgme on ; \
	if /etc/cms/bin/right_module $name $location $type$revision ; \
	then \
	    /etc/cms/bin/poweron $location ; \
	    sleep 7 ; \
	    /etc/cms/bin/netctl associate $name $number \
	      $location ; \
            if [ "`/etc/cms/bin/ftctl -d /dev/FTbus:ctl read io_dma`" \
              = "on" ] ; \
            then \
                if [ "`/etc/cms/bin/ftctl -d /dev/FTslot:$location test dma64`" \
                  = "passed" ] ; \
                then \
                    /etc/cms/bin/ftctl -d /dev/FTslot:$location set dma64 on ; \
                fi ; \
            fi ; \
	    /etc/cms/bin/netctl up $location; \
	else \
	    echo "$name $number condition offline <R2000d>module of required type/revision not present" >/dev/FTlog:cms; \
	fi

    should_be_on -> online \
	/etc/cms/bin/sysconfig -m $name -n $number \
	  -a fault_acknowledged -v no ; \
	/etc/cms/bin/slotctl $location set chgme off ;

    initialising -> online \
	/etc/cms/bin/sysconfig -m $name -n $number \
	  -a fault_acknowledged -v no ; \
	/etc/cms/bin/slotctl $location set chgme off ;

    online -> should_be_off \
	/etc/cms/bin/slotctl $location set chgme on ; \
	/etc/cms/bin/netctl down $location

    online -> should_be_on \
	/etc/cms/bin/slotctl $location set power off ; \
	/etc/cms/bin/slotctl $location set chgme on ; \
	/etc/cms/bin/moduleinfo -e failure -l $location ; \
	/etc/cms/bin/phonehome $name $number $location $laststate $state ;

    online -> broken \
	/etc/cms/bin/slotctl $location set chgme on ;
	
    should_be_on -> offline \
	/etc/cms/bin/slotctl $location set power off ; \
	/etc/cms/bin/slotctl $location set chgme off ;

    should_be_off -> offline \
	/etc/cms/bin/slotctl $location set power off ; \
	/etc/cms/bin/slotctl $location set chgme off ;

    should_be_off -> online \
	/etc/cms/bin/sysconfig -m $name -n $number \
	  -a fault_acknowledged -v no ; \
	/etc/cms/bin/slotctl $location set chgme off ;

    initialising -> should_be_on \
	/etc/cms/bin/slotctl $location set power off ; \
	/etc/cms/bin/slotctl $location set chgme on ; \
	/etc/cms/bin/moduleinfo -e failure -l $location ; \
	/etc/cms/bin/phonehome $name $number $location $laststate $state ;

    broken -> online \
	/etc/cms/bin/slotctl $location set chgme off ; 

    broken -> should_be_off \
	/etc/cms/bin/slotctl $location set chgme on ; \
	/etc/cms/bin/netctl down $location ;

