Create Date: Feb 15 2013 4:04PM
I have been doing some testing with a customer who has Siemens OpenStage IP phones. I have looked at the various LLDP UPM scripts that are on here and in the Extreme documentation and I have hit this issue with LLDP detecting a device twice (UPM device-detect) and then 180-seconds later the 1st of the two devices being undetected. This then causes the UPM device-undetect script to run which removes the voice VLAN from the interface.
The UPM script has a check for a device being detected and then configures LLDP to push the LLDP med voice & voice-application policies as well as add the voice VLAN to the interface. The same UPM script also checks for a device being undetected and then removes the LLDP commands and deletes the voice VLAN from the port. This one script is attached to both the device-detect and device-undetect events.
Due to this double detection thing the undetect of the 1st device is causing issues. I have since tested this with Mitel & Cisco IP phones that have LLDP and get the same behaviour with the double detect.
UPM Script is as follows and is copied from the scripts available on here:
create upm profile GenericVoIPLLDPDetect
#@VariableFieldLabel "If this script encounters errors, do you wish to abort or ignore?"
set var clierrormode abort
#@VariableFieldLabel "Voice VLAN Name (default = voice)"
set var voicevlan voice
#@VariableFieldLabel "Enable SNMP Traps on LLDP Events (true or false)"
set var enabletrap false
#@VariableFieldLabel "Differentiated Services Code Point Value for RTP (default = 46)"
set var dscpRTP 46
#@VariableFieldLabel "Differentiated Services Code Point Value for Signaling (default = 40)"
set var dscpSignaling 40
#@MetaDataEnd
#############################################################################
# Generic VoIP LLDP Device Provisioning
#############################################################################
create log entry "Starting Generic VoIP LLDP Device Provisioning"
if (!$match($clierrormode,ignore)) then
configure cli mode scripting ignore-error
create log entry "CLI mode set for Ignore on Error"
else
configure cli mode scripting abort-on-error
create log entry "CLI mode set for Abort on Error"
endif
#############################################################################
# Determine if "Device Detect" on Port
#############################################################################
if (!$match($EVENT.NAME,DEVICE-DETECT)) then
create log entry "LLDP Device Detected on Port"
#############################################################################
# Add Port to Voice VLAN Using Tagged Addressing
#############################################################################
configure vlan $voicevlan add ports $EVENT.USER_PORT tagged
#############################################################################
# Determine SNMP Trap Settings
#############################################################################
if (!$match($enabletrap,true)) then
create log entry "Enabling SNMP Traps for LLDP on port"
enable snmp traps lldp ports $EVENT.USER_PORT
enable snmp traps lldp-med ports $EVENT.USER_PORT
else
create log entry "Disabling SNMP Traps for LLDP on port"
disable snmp traps lldp ports $EVENT.USER_PORT
disable snmp traps lldp-med ports $EVENT.USER_PORT
endif
#############################################################################
# Configure Port for Link Layer Discovery Protocol (LLDP)
#############################################################################
create log entry "Configuring LLDP on port"
configure lldp ports $EVENT.USER_PORT advertise vendor-specific med capabilities
configure lldp ports $EVENT.USER_PORT advertise vendor-specific dot1 vlan-name vlan $voicevlan
configure lldp ports $EVENT.USER_PORT advertise vendor-specific med policy application voice vlan $voicevlan dscp $dscpRTP
configure lldp ports $EVENT.USER_PORT advertise vendor-specific med policy application voice-signaling vlan $voicevlan dscp $dscpSignaling
#############################################################################
# Determine if "Device Undetect" on Port
#############################################################################
else if (!$match(EVENT.NAME,DEVICE-UNDETECT) && $match($EVENT.DEVICE_IP,0.0.0.0)) then
create log entry "LLDP Device Undected on Port"
if (!$match($enabletrap,true)) then
create log entry "Disabling SNMP Traps for LLDP on port"
disable snmp traps lldp ports $EVENT.USER_PORT
disable snmp traps lldp-med ports $EVENT.USER_PORT
endif
#############################################################################
# Reset LLDP Configuration on Port to Default
#############################################################################
create log entry "Unconfiguring LLDP on port"
unconfigure lldp ports $EVENT.USER_PORT
#############################################################################
# Delete Voice VLAN from port
#############################################################################
configure vlan $voicevlan delete ports $EVENT.USER_PORT
#############################################################################
# Spurious Event on IP Address 0.0.0.0 - Do Nothing
#############################################################################
create log entry "Do Nothing 0.0.0.0"
create log entry $EVENT.TIME
endif
endif
create log entry "End Generic VoIP LLDP Device Provisioning"
disable cli scripting
.
#
configure upm event device-detect profile GenericVoIPLLDPDetect ports 1:1
configure upm event device-undetect profile GenericVoIPLLDPDetect ports 1:1
(from Andrew_Butterworth)