cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1605
Views
5
Helpful
5
Replies

TCL script returns an error regarding "libovl"

odahlqvist
Level 4
Level 4

Hi 

I am trying a simple tcl script to make a VRF ping but are getting this in return , are running version 5.3.0, quiet new to TCL scriptning maybe i am missing something here.

#run tclsh

% foreach i {

220.200.200.15

} {[exec "ping vrf 200 $i"]}
%The executable: ping vrf 200 220.200.200.15 cannot be launched. Error: 'libovl' detected the 'fatal' condition 'No such file or directory'
No error

5 Replies 5

xthuijs
Cisco Employee
Cisco Employee

are you running the tcl inside eem on the router?

the error you are getting here means that the command "ping ..." is run on a shell and that shell doesn't know what ping is, so you may be running it in ksh or from a station that has no ping concept.

in that case you may need to open the cli first and also use cli_exec for that, an example:

proc run_cli { clist } {
    set rbuf ""

    if {[llength $clist] < 1} {
    return -code ok $rbuf
    }

    if {[catch {cli_open} result]} {
        return -code error $result
    } else {
    array set cliarr $result
    }

    if {[catch {cli_exec $cliarr(fd) "enable"} result]} {
        return -code error $result
    }

    foreach cmd $clist {
    if {[catch {cli_exec $cliarr(fd) $cmd} result]} {
            return -code error $result
    }

    append rbuf $result
    }

    if {[catch {cli_close $cliarr(fd) $cliarr(tty_id)} result]} {
        puts "WARNING: $result"
    }

    return -code ok $rbuf
}

cheers!

xander

Hi,

I am having the same problem with verifiy mpls connectivity within a mixed LAB of IOS-XE

and IOS-XR. Running a script using "exec ping mpls ipv4 ..." from tclsh is working fine on IOS-XE.

the same script fails on IOS-XR. 

The problem is that IOS-XR enters tcl sh by "#run tclsh" which is IOS-XR --> Korn shell --> TCL Shell,

so any "exec whatevercommand" is looked up in ksh instead of IOS-XR.

In XE this is different. Anything unknow or prepended with "exec" is looked up in IOS-XE.

So, how can I send "exec ping mpls..." directly to IOS-XR from within tclsh%?

the ksh equivalent for a command you can generally find via describe. for

ping mpls ipv4 it is:

lspv_ping -M 0x0 -P 1.1.1.1 -m 0x20

the -P is the address and the -m is the mask in hex 0x20 = 32:

RP/0/RSP0/CPU0:A9K-BNG#describe ping mpls ipv4 1.1.1.1/3

cheers!

xander

Many thanks, god xander. I am bloody impressed.

You saved my day.

cheers,

Rene

Hi Xander,

 

How are you? I really hope that you're doing fine!!, Please, could tell me where can I find Ksh equivalent command in case that I couldn't do that with "describe"? (I have ios xr 6.2.3).

 

Thank you very much

REgards