03-15-2013 02:30 AM
Hello
Please can someone tell me the correct syntax for this registration on IOS XR 4.2?
::cisco::eem::event_register_stat name ifstats-datarate modifier_1 Gi0/3/0/2 modifier_2 InputPacketRate entry_op gt entry_val 100 exit_comb and exit_op ne exit_val 100 exit_time_sec 60 poll_interval_sec 5
I have a very simple script as follows, which I can never get to trigger
::cisco::eem::event_register_stat name ifstats-datarate modifier_1 Gi0/3/0/2 modifier_2 InputPacketRate entry_op gt entry_val 100 exit_comb and exit_op ne exit_val 100 exit_time_sec 60 poll_interval_sec 5
namespace import ::cisco::eem::*
namespace import ::cisco::lib::*
action_syslog msg "TRAFFIC LEVEL IS HIGH"
The documentation says that the / in the interface name in modifier_1 should be changed to an _ (Gi0_3_0_2), but this does not work for me either.
I can not find any examples of the use of "ifstats-datarate" searching the docs and google. I can only find mention of it in posts on this forum where also the posters cannot get it to work. Does anyone have a working script for "ifstats-datarate" ?
RP/0/1/CPU0:BORD1#sh ver | i XR
Fri Mar 15 01:31:46.896 UTC
Cisco IOS XR Software, Version 4.2.1[Default]
RP/0/1/CPU0:BORD1#sh event manager statistics-table ifstats-datarate | i InputPacketRate
Fri Mar 15 01:32:52.775 UTC
InputPacketRate uint64 Input packets per second
Thanks
RP/0/1/CPU0:BORD1(config)#event manager policy 1.tcl username eem
RP/0/1/CPU0:BORD1(config)#commit
Fri Mar 15 01:37:42.110 UTC
RP/0/1/CPU0:Mar 15 01:37:43.766 : eem_ed_stats[191]: received msg : 130-FH_MSG_EVENT_PARSE_BUFFER ipc handle:65536
RP/0/1/CPU0:Mar 15 01:37:43.767 : eem_ed_stats[191]: fh_fd_process_server_msg ED REPLY : 131-FH_RPL_EVENT_PARSE_BUFFER
RP/0/1/CPU0:Mar 15 01:37:44.857 : eem_ed_stats[191]: received msg : 2-FH_MSG_EVENT_CREATE ipc handle:65536
RP/0/1/CPU0:Mar 15 01:37:44.858 : eem_ed_stats[191]: fh_fd_stats_event_create: re=500ac234, sid=59
RP/0/1/CPU0:Mar 15 01:37:44.859 : eem_ed_stats[191]: fh_fd_process_server_msg ED REPLY : 3-FH_RPL_EVENT_CREATE
RP/0/1/CPU0:Mar 15 01:37:45.044 : eem_ed_stats[191]: received msg : 6-FH_MSG_EVENT_REGISTER ipc handle:65536
RP/0/1/CPU0:Mar 15 01:37:45.045 : eem_ed_stats[191]: fh_fd_stats_event_register: re=500ac234, sid=59
RP/0/1/CPU0:Mar 15 01:37:45.046 : eem_ed_stats[191]: fh_fd_process_server_msg ED REPLY : 7-FH_RPL_EVENT_REGISTER
RP/0/1/CPU0:BORD1(config)#end
RP/0/1/CPU0:Mar 15 01:38:23.799 : eem_ed_stats[191]: fh_fd_process_server_msg ED REPLY : 21-FH_RPL_EVENT_DESCRIBE_ID
No. Class Type Event Type Trap Time Registered Name
1 script user statistics Off Fri Mar 15 01:37:45 2013 1.tcl
name {ifstats-datarate} modifier_1 {Gi0/3/0/2} modifier_2 {InputPacketRate}
entry_op gt entry_val {100} exit_comb and exit_op ne exit_val {100}
exit_time_sec 60 exit_time_nsec 0 poll_interval_sec 5 poll_interval_nsec 0
nice 0 queue-priority normal maxrun 20.000 scheduler rp_primary Secu none
persist_time: 3600 seconds, username: eem
RP/0/1/CPU0:BORD1#sh int g0/3/0/2 | i rate
Fri Mar 15 01:39:32.167 UTC
30 second input rate 4316000 bits/sec, 356 packets/sec
30 second output rate 4316000 bits/sec, 356 packets/sec
RP/0/1/CPU0:BORD1#sh logg
Fri Mar 15 01:39:37.072 UTC
Syslog logging: enabled (0 messages dropped, 0 flushes, 0 overruns)
Console logging: level debugging, 1357 messages logged
Monitor logging: level debugging, 200 messages logged
Trap logging: level informational, 0 messages logged
Buffer logging: level debugging, 0 messages logged
Log Buffer (307200 bytes):
03-25-2013 07:50 AM
the correct syntax for this is
::cisco::eem::event_register_stat name ifstats-datarate modifier_1 "GigabitEthernet0_3_0_2" modifier_2 "InputPacketRate" entry_op gt entry_val 100 exit_comb and exit_op le exit_val 100 exit_time_sec 60 poll_interval_sec 30
03-25-2013 07:55 AM
Thanks for the follow-up. I had a request into IOS-XR development to look at this, but they hadn't got back to me yet. I'll see if this works for the other thread on this topic.
03-25-2013 08:34 AM
I was testing on a lab GSR, but moved it to production ASR9K so I could raise a case via Cisco TAC
here is the complete script they sent me
::cisco::eem::event_register_stat name ifstats-datarate modifier_1 "TenGigE0_0_0_0" modifier_2 "InputDataRate" entry_op gt entry_val 100 exit_comb and exit_op ne exit_val 100 exit_time_sec 60 poll_interval_sec 5
namespace import ::cisco::eem::*
namespace import ::cisco::lib::*
# 1. query the information of latest triggered eem event
array set arr_einfo [event_reqinfo]
if {$_cerrno != 0} {
set result [format "component=%s; subsys err=%s; posix err=%s;\n%s" \
$_cerr_sub_num $_cerr_sub_err $_cerr_posix_err $_cerr_str]
error $result
}
set errorInfo ""
# 2. Notify Customer
set output_msg "TRAFFIC LEVEL IS HIGH"
action_syslog priority info msg $output_msg
# 3. execute the user-defined config commands
if [catch {cli_open} result] {
error $result $errorInfo
} else {
array set cli1 $result
}
if [catch {cli_exec $cli1(fd) "config t"} result] {
error $result $errorInfo
}
if [catch {cli_exec $cli1(fd) "interface TenGigE0/0/0/1.123"} result] {
error $result $errorInfo
}
if [catch {cli_exec $cli1(fd) "shutdown"} result] {
error $result $errorInfo
}
if [catch {cli_exec $cli1(fd) "commit"} result] {
error $result $errorInfo
}
if [catch {cli_exec $cli1(fd) "end"} result] {
error $result $errorInfo
}
if [catch {cli_close $cli1(fd) $cli1(tty_id)} result] {
error $result $errorInfo
}
01-21-2014 02:04 PM
Hi, anyone, knows how to write and copy to the router ??
01-21-2014 08:57 PM
I don't understand. You mean how to get this script onto the router?
04-28-2015 08:56 AM
Hi Dean, Could you help me to confirm my script?
I would like to shutdown any interface, when this interface runs out of traffic in the input rate.
::cisco::eem::event_register_stat name ifstats-datarate modifier_1 "BE246" modifier_2 "InputLoad" entry_op lt entry_val 2 exit_comb and exit_op le exit_val 2 exit_time_sec 60 poll_interval_sec 30
Thanks!
04-28-2015 09:04 AM
Hi
You just need to add some CLI commands to do something (if that is what you are asking?
if [catch {cli_open} result] {
error $result $errorInfo
} else {
array set cli1 $result
}
if [catch {cli_exec $cli1(fd) "config t"} result] {
error $result $errorInfo
}
action_syslog priority info msg $result
if [catch {cli_exec $cli1(fd) "interface BE246"} result] {
error $result $errorInfo
}
action_syslog priority info msg $result
if [catch {cli_exec $cli1(fd) "shut"} result] {
error $result $errorInfo
}
action_syslog priority info msg $result
if [catch {cli_exec if [catch {cli_exec $cli1(fd) "commit"} result] {
error $result $errorInfo
}
action_syslog priority info msg $result
04-28-2015 09:17 AM
Thanks Dean!!
I mean, if my line ::cisco::eem... it is correct, is not?
so this will be my TCL file.
****************************************************************************************************
::cisco::eem::event_register_stat name ifstats-datarate modifier_1 "BE246" modifier_2 "InputLoad" entry_op lt entry_val 2 exit_comb and exit_op le exit_val 2 exit_time_sec 60 poll_interval_sec 30
namespace import ::cisco::eem::*
namespace import ::cisco::lib::*
if [catch {cli_open} result] {
error $result $errorInfo
} else {
array set cli1 $result
}
if [catch {cli_exec $cli1(fd) "config t"} result] {
error $result $errorInfo
}
action_syslog priority info msg $result
if [catch {cli_exec $cli1(fd) "interface BE246"} result] {
error $result $errorInfo
}
action_syslog priority info msg $result
if [catch {cli_exec $cli1(fd) "shut"} result] {
error $result $errorInfo
}
action_syslog priority info msg $result
if [catch {cli_exec if [catch {cli_exec $cli1(fd) "commit"} result] {
error $result $errorInfo
}
action_syslog priority info msg $result
# 3. log a message
# Generar un log del cambio en la configuracion
# emerg|alert|crit|err|warning|notice|info|debug
set msg "Se apago la interface por pisible problema con el ISP favor de reportarlo"
action_syslog priority alert msg $msg
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide