#!/bin/sh
# LLDP test software F MEYER 10.02.10  crms00206598 
# Replace new location part alexca 28.06.10  crms00241455 
# No error message for lldp command in some status jasonza 08.07.10
# lldp improvement jasonaz 2010.09.29 crms00263068
# embedded command "lldp set pw_value" not take effect jasonaz 2010.11.09 crms00271586
# enable/disable LLDP related functions  jasonaz  2010.11.12 crms00273631

cli="/usr/bin/CLISettings"

stringPowerPriority=LLDPCFG_POWER_PRIORITY #local
stringLldpcfgPowerValue=LLDPCFG_POWER_VALUE #local
stringLldpcfgPowerAccepted=LLDPCFG_POWER_ACCEPTED
stringLldpcfgPowerRequested=LLDPCFG_POWER_REQUESTED

#crms00241455 alexca+
#stringLldpcfgLocalisationType=LLDPCFG_LOCALISATION_TYPE
#stringLldpcfgLocalisationValue=LLDPCFG_LOCALISATION_VALUE
stringLldpcfgLocalisationCoord=LLDPCFG_COORDINATE_BASED_LOCATION
stringLldpcfgLocalisationCivic=LLDPCFG_CIVIC_ADDRESS_LCI
stringLldpcfgLocalisationElin=LLDPCFG_ECS_ELIN
#crms00241455 alexca-

stringLldpcfgAssetid=LLDPCFG_ASSETID

stringFabSerialNumber=FAB_SERIAL_NUMBER
stringFabPhoneModel=FAB_PHONE_MODEL
#crms00263068 jasonaz+
stringFabHwVersion=FAB_PCMS
stringFabSwVersion=SOFTWARE_VERSION
stringFabFwVersion=SOFTWARE_VERSION
#crms00263068 jasonaz-
stringEnetcfgVlanEnable=ENETCFG_VLAN_ENABLE
stringEnetcfgVlan=ENETCFG_VLAN
#crms00273631 jasonaz+
stringLldpcfgVlanEnabled=LLDPCFG_VLAN_ENABLED
stringLldpcfgPowerEnabled=LLDPCFG_POWER_ENABLED
stringLldpcfgInventoryEnabled=LLDPCFG_INVENTORY_ENABLED
stringLldpcfgLocalizationEnabled=LLDPCFG_LOCALIZATION_ENABLED
#crms00273631 jasonaz-

Usage()
{
	echo "LLDP configuration and information showing"
	echo "==================================================================================="
	echo "Usage    |    option    |    value   | return value"
	echo "---------+--------------+------------+---------------------------------------------"
#crms00273631 jasonaz+	
	echo "lldp     |              |            | vlan_en: ON | OFF"
	echo "         |              |            | power_en: ON | OFF"
	echo "         |              |            | inventory_en: ON | OFF"
	echo "         |              |            | localization_en: ON | OFF"
	echo "         |              |            | vlan: ON | OFF"
#crms00273631 jasonaz-	
	echo "         |              |            | vid: x"
	#echo "         |              |            | power: ON | OFF"
	echo "         |              |            | pw_prior: 1| 2 | 3, critical | high| low"
#crms00271586 jasonaz+
	#echo "         |              |            | pw_value: x"
	#echo "         |              |            | pw_accepted: x"
#crms00271586 jasonaz-
	echo "         |              |            | pw_requested: x"
	#crms00241455 alexca+
	#echo "         |              |            | localisation_type: x"
	#echo "         |              |            | localisation_value: x"
	echo "         |              |            | localisation_coordinate: x"
	echo "         |              |            | localisation_civic: x"
	echo "         |              |            | localisation_elin: x"
	#crms00241455 alexca-
	#echo "         |              |            | inventory:ON | OFF"
	echo "         |              |            | phone_model: x"
	echo "         |              |            | hd_ver: x"
	echo "         |              |            | sw_ver: x"
#crms00263068 jasonaz+
	echo "         |              |            | fw_ver: x"
	echo "         |              |            | sn: x"
	echo "         |              |            | mfg_name: x"
	echo "         |              |            | mod_name: x"
#crms00263068 jasonaz-
	echo "         |              |            | aid: x"
	#echo "         |              |            | tx packet(s) : x"
	#echo "         |              |            | rx packet(s) : x"
	echo "---------+--------------+------------+---------------------------------------------"
	echo "lldp     | set pw_value | 0 -> 130   | OK/KO "
	echo "         |              |            | set power value Input val. from 0 to 13 W"
	echo "         |              |            | step 0.1W"
	echo "---------+--------------+------------+---------------------------------------------"
	echo "lldp     | set pw_prior |   1|2|3    | OK/KO"
	echo "         |              |            | Input val 1 critical"
	echo "         |              |            |           2 high"
	echo "         |              |            |           3 low"
#crms00273631 jasonaz+	
	echo "---------+--------------+------------+---------------------------------------------"
	echo "lldp     | set vlan     |   on|off   | OK/KO"
	echo "lldp     | set power    |   on|off   | OK/KO"
	echo "lldp     | set inventory|   on|off   | OK/KO"
	echo "lldp     | set localization     |   on|off   | OK/KO"
#crms00273631 jasonaz-	
	echo "==================================================================================="
}

powerPrior()
{
	#echo "lldp set pw_prior"
	if [ $# -eq 3 ]
	then
		if [ $3 == "0" ]
		then
			eval "$cli set LOCAL $stringPowerPriority 0"
                elif [ $3 == "1" ]
                then
                        eval "$cli set LOCAL $stringPowerPriority 1" 
		elif [ $3 == "2" ]
		then
			eval "$cli set LOCAL $stringPowerPriority 2"
		elif [ $3 == "3" ]
		then
			eval "$cli set LOCAL $stringPowerPriority 3"
		else
			Usage
			exit_ko
	        fi
#crms00221451 jasonaz+
        else
                Usage
                exit_ko
#crms00221451 jasonaz-
        fi
}

powerValue()
{
	#echo "lldp set pw_value $3 "
	if [ $# -eq 3 ]
	then
		pwr="$(echo $3 | sed 's/\.//g')" #extract the point
		val="`expr "$pwr" "<" "130"`"
		#echo "val= $val"
		if [ $val == "1" ]
		then
#crms00271586 jasonaz+
			eval "$cli set LOCAL $stringLldpcfgPowerRequested $3"
#crms00271586 jasonaz-
		else
			Usage
			exit_ko
 	        fi
#crms00221451 jasonaz+
        else
                Usage
                exit_ko
#crms00221451 jasonaz-

         fi
}

#crms00273631 jasonaz+
vlanSet()
{
        #echo "lldp set vlan on/off "
	if [ $# -eq 3 ]
	then
		
		if [ $3 == "on" ]
		then
			eval "$cli set LOCAL $stringLldpcfgVlanEnabled true"
		elif [ $3 == "off" ]
		then
		        eval "$cli set LOCAL $stringLldpcfgVlanEnabled false"
		else
			Usage
			exit_ko
 	        fi
        else
                Usage
                exit_ko

         fi
}
powerSet()
{
        #echo "lldp set power on/off "
	if [ $# -eq 3 ]
	then
		
		if [ $3 == "on" ]
		then
			eval "$cli set LOCAL $stringLldpcfgPowerEnabled true"
		elif [ $3 == "off" ]
		then
		        eval "$cli set LOCAL $stringLldpcfgPowerEnabled false"
		else
			Usage
			exit_ko
 	        fi
        else
                Usage
                exit_ko

         fi
}
inventorySet()
{
        #echo "lldp set inventory on/off "
	if [ $# -eq 3 ]
	then
		
		if [ $3 == "on" ]
		then
			eval "$cli set LOCAL $stringLldpcfgInventoryEnabled true"
		elif [ $3 == "off" ]
		then
		        eval "$cli set LOCAL $stringLldpcfgInventoryEnabled false"
		else
			Usage
			exit_ko
 	        fi
        else
                Usage
                exit_ko

         fi
}
localizationSet()
{
        #echo "lldp set localization on/off "
	if [ $# -eq 3 ]
	then
		
		if [ $3 == "on" ]
		then
			eval "$cli set LOCAL $stringLldpcfgLocalizationEnabled true"
		elif [ $3 == "off" ]
		then
		        eval "$cli set LOCAL $stringLldpcfgLocalizationEnabled false"
		else
			Usage
			exit_ko
 	        fi
        else
                Usage
                exit_ko

         fi
}

#crms00273631 jasonaz-
lldp_info()
{
#crms00273631 jasonaz+
        #vlan_en:  ON | OFF
	vlan_en=`$cli get LOCAL $stringLldpcfgVlanEnabled`
	if [ $vlan_en == "true" ]
	then
	    echo "vlan_en: ON"
	else
	    echo "vlan_en: OFF"
	fi
	#power_en:  ON | OFF
	power_en=`$cli get LOCAL $stringLldpcfgPowerEnabled`
	if [ $power_en == "true" ]
	then
	    echo "power_en: ON"
	else
	    echo "power_en: OFF"
	fi
	#inventory_en: ON | OFF
	invt_en=`$cli get LOCAL $stringLldpcfgInventoryEnabled`
	if [ $invt_en == "true" ]
	then
	    echo "inventory_en: ON"
	else
	    echo "inventory_en: OFF"
	fi
	#localization_en: ON | OFF
	localization_en=`$cli get LOCAL $stringLldpcfgLocalizationEnabled`
	if [ $localization_en == "true" ]
	then
	    echo "localization_en: ON"
	else
	    echo "localization_en: OFF"
	fi
#crms00273631 jasonaz-
	#vlan: ON | OFF
#crms00271586 jasonaz+
	echo "vlan: `$cli get LLDP $stringEnetcfgVlanEnable`"
	#vid: x
	echo "vid: `$cli get LLDP $stringEnetcfgVlan`"
#crms00271586 jasonaz-
	#power: ON | OFF

	#pw_prior: 1| 2 | 3, critical | high| low
#crms00263068 jasonaz+
	echo "pw_prior: `$cli get CURRENT $stringPowerPriority`"
	#pw_value: x
	#echo "pw_value: `$cli get CURRENT $stringLldpcfgPowerValue`"
	#PowerAccepted: x
	#echo "pw_accepted: `$cli get CURRENT $stringLldpcfgPowerAccepted`"
#crms00263068 jasonaz-
	#PowerRequested x
	echo "pw_requested: `$cli get CURRENT $stringLldpcfgPowerRequested`"

	#crms00241455 alexca+
	#Localisation Type
	#echo "localisation_type: `$cli get CURRENT $stringLldpcfgLocalisationType`"
	#Localisation Value
	#echo "localisation_value: `$cli get CURRENT $stringLldpcfgLocalisationValue`"
	#Localisation Coordinate
	echo "localisation_coordinate: `$cli get CURRENT $stringLldpcfgLocalisationCoord`"
	#Localisation Civic
	echo "localisation_civic: `$cli get CURRENT $stringLldpcfgLocalisationCivic`"
	#Localisation ELIN
	echo "localisation_elin: `$cli get CURRENT $stringLldpcfgLocalisationElin`"
	#crms00241455 alexca-

	#inventory:ON | OFF

	#Phone Model: x
	echo "phone_model: `$cli get CURRENT $stringFabPhoneModel`"
	#hd_ver: x
	echo "hd_ver: `$cli get CURRENT $stringFabHwVersion`"
	#sw_ver: x
	echo "sw_ver: `$cli get CURRENT $stringFabSwVersion`"

	#fw_ver: x
#crms00263068 jasonaz+
	echo "fw_ver: `$cli get CURRENT $stringFabFwVersion`"

	#sn: x
        echo "sn: `$cli get CURRENT $stringFabSerialNumber`"

	#mfg_name: x
        echo "mfg_name: Alcatel-Lucent Enterprise"
#crms00263068 jasonaz-
	#aid: x
	echo "aid: `$cli get CURRENT $stringLldpcfgAssetid`"
	#tx packet(s) : x

	#rx packet(s) : x
}

exit_ko()
{
	echo "KO"
	exit 1
}

exit_ok()
{
	echo "OK"
	exit 0
}

[ -x $cli ] || { echo "Cannot run $cli"; exit_ko;}
[ $# -ne 0 ] || {  lldp_info ; exit_ok;}


if [ $1 == "set" ] 
then
	if [ $2 == "pw_value" ]
then
		powerValue $*
	elif [ $2 == "pw_prior" ] 
	then
		powerPrior $*
#crms00273631 jasonaz+
        elif [ $2 == "vlan" ]
	then
	        vlanSet $*
	elif [ $2 == "power" ]
	then
	        powerSet $*
	elif [ $2 == "inventory" ]
	then
	        inventorySet $*
	elif [ $2 == "localization" ]
	then
	        localizationSet $*
#crms00273631 jasonaz-		
	else
		echo "Unsupported Operation"
		Usage
		exit_ko
	fi	
	exit_ok
else
	echo "Unsupported Operation"
	Usage
	exit_ko
fi	



