Cisco Support Community
Showing results for 
Search instead for 
Did you mean: 

Welcome to Cisco Support Community. We would love to have your feedback.

For an introduction to the new site, click here. And see here for current known issues.

New Member

Help with EEM TCL / CLI scripting for re-direction/wccp counters

Being new with EEM scripting I wanted to see if I was on the right track and get some help to finish my idea.

Our problem I am trying to fix is our remote sites utilize pairs of Cat3650's for some routing and WCCP redirection.  We are encountering ACL denial issues causing slow down and access issues.  The fix for the issue we remove the WCCP service groups to break peering with our wan optimizers and re-insert the configuration thus re-establishing peering and restoring service.

My idea is to use a TCL scipt on a watchdog timer to parse the "sh ip wccp | inc denied (or unassign)" output for denial and unassignable error counters.  If a counter is found I wanted to create a syslog message that would then kick off a simple EEM CLI script to remove the service groups, wait 10 seconds, then re-add the service groups.  Please point me in the right direction if I am off track as I am not sure if I can use the EEM CLI for all this or since I want to retreive specific info from the sh ip wccp output if I do need to utilize TCL.  I am also unsure if the "total denied" ascii string pulled via the "sh ip wccp | inc denied" will cause issues when attempting to just pull the counter information.

sh ip wccp | inc Denied Red

        Total Packets Denied Redirect:       0

        Total Packets Denied Redirect:       0

Script thus far :


if [catch {context_retrieve "EEM_WCCP_ERROR_COUNTER" "count"} result] {

set wccpcounter 0

} else {

set wccpcounter $result

} if [catch {cli_open} result] {

error $result

} else {

array set cli $result

} if [catch {cli_exec $cli(fd) "show ip wccp | incl Denied"} result] {

error $result

} else {

set cmd_output $result


set count ""

catch [regexp {receive ([0-9]+),} $cmd_output} ignore count]

set count

set diff [expr $count - $wccpcounter]

if {$diff != 0} {

action_syslog priority emergencies msg "WCCP counters showing incremental Denied packet counts"


if [catch {cli_close $cli(fd) $cli(tty_id)} result] {

error $result


context_save EEM_WCCP_ERROR_COUNTER count


event manager applet WCCP_COUNTER_WATCH

event syslog priority emergencies pattern "WCCP counters showing incremental Denied packet counts"

action 001 cli command "enable"

action 002 cli command "config t"

action 003 cli command "no ip wccp 61"

action 004 cli command "no ip wccp 62"

action 005 wait 10

action 006 cli command "ip wccp 61"

action 007 cli command "ip wccp 62"

action 008 wait 15

action 009 cli command "clear ip wccp"

action 010 cli command "end"

Thanks for all the help

Cisco Employee

Help with EEM TCL / CLI scripting for re-direction/wccp counters

This won't work as EEM cannot intercept its own syslog messages.  However, I'm not sure why you need this form of IPC anyway.  Why not just make the Tcl script perform the needed CLI commands?

And, yes, you could use all applets here.  But since you've written the hard stuff in Tcl already, it might be best just to add the missing calls to reconfigure WCCP to that script.