Home
Implementation
Testing
Add-Ons
> disman API
> Smurf
> JAX
> Schedule-MIB
> Tcl Engine
Documentation
Download
Mailinglist
People



The Jasmin Project
Manual Page (Tnm::smx.n)
Tnm::smx(n)             Tnm Tcl Extension             Tnm::smx(n)

_________________________________________________________________

NAME
       Tnm::smx - Interact with a controlling SMX peer.
_________________________________________________________________

DESCRIPTION
       The  SMX protocol defined in RFC 2593 is used to interface
       script runtime systems like a  Tcl  interpreter  with  the
       language  independent  Script  MIB as defined in RFC 2592.
       The Tnm SMX support provides a way to install and  execute
       Tcl scripts on remote devices by using the SNMP management
       protocol.

       A Tcl interpreter becomes an SMX controlled runtime engine
       automatically  during  Tnm  initialization if the SMX_PORT
       and SMX_COOKIE variables described in RFC  2593  exist  in
       the  process  environment. The Tnm extension automatically
       sets up a TCP connection to  the  SMX_PORT  on  the  local
       host.  Once  the  SMX  control  connection has been estab-
       lished, the SMX protocol engine will listen for  SMX  com-
       mands.   Every  script  invoked  via the SMX start command
       will execute in its own Tcl interpreter in the  same  pro-
       cess.

EXECUTION MODEL
       A single operating system level process can execute multi-
       ple Tcl scripts under SMX control. Every script runs it is
       own  Tcl  interpreter and does not share any Tcl resources
       (variables, procedures) with  other  concurrently  running
       scripts.

           +-----------+         +-----------+
           | interp #1 |  . . .  | interp #n |
          +-----------------------------------+     script
          |      master Tcl interpreter       | <- defining
          +-----------------------------------+    profiles
          | SMX protocol implementation (Tnm) |
          +-----------------------------------+

       Tcl  interpreters  executing  scripts are all slave inter-
       preters of the application's  main  Tcl  interpreter.  All
       slave  interpreters  are safe Tcl interpreters. The master
       interpreter can therefore be used  to  establish  security
       profiles. A security profile is basically a set of aliases
       etc. which is installed  in  a  slave  interpreter  during
       startup.  Security  profiles are implemented as Tcl proce-
       dures that are loaded into the master  interpreter  during
       the initialization of the Tnm extension. The master inter-
       preter can also be used to establish  communication  paths
       between scripts executing in different Tcl interpreters.

Tnm                        January 2001                         1

Tnm::smx(n)             Tnm Tcl Extension             Tnm::smx(n)

SMX COMMAND
       The  Tnm::smx  command  can  be invoked by scripts to send
       results or log messages to the controlling SMX peer.

       Tnm::smx exit [-code code] [string]
              The Tnm::smx exit command must be used to terminate
              a script.  The optional string argument defines the
              result or error message which is sent to  the  con-
              trolling SMX peer.

              The  -code  option  can  be used to define the exit
              code which is returned to the controlling SMX peer.
              The  code  argument must be one of the values noEr-
              ror,  halted,  lifeTimeExceeded,   noResourcesLeft,
              languageError, runtimeError, invalidArgument, secu-
              rityViolation, or genericError. The exit code noEr-
              ror is used if the -code option is not present.

       Tnm::smx log message
              The  Tnm::smx  log  command writes a message to the
              logging facility provided by  the  controlling  SMX
              peer.

       Tnm::smx profiles [list]
              The  Tnm::smx profile command installs or retrieves
              the list of known runtime security  profiles.  Each
              element  in  the list identifies a runtime security
              profile.  The  Tnm::smx  profile   command   always
              returns the list of installed profiles. The list of
              known profiles is  updated  if  the  optional  list
              argument is present.

              Security profiles are implemented by Tcl procedures
              in the master interpreter with the same  name.  The
              SMX protocol implementation will automatically cre-
              ate a new slave Tcl interpreter when a  new  script
              is  started.  The  Tnm  extension calls the runtime
              security profile procedure  in  the  master  inter-
              preter  during  the  initialization  of  the  slave
              interpreter so that the master can setup the  secu-
              rity  environment  before  script execution starts.
              The name of the slave interpreter is passed to  the
              procedure  so  that the master can access the slave
              interpreter.

              The Tnm::smx profiles command may only be used by a
              master  Tcl  interpreter  which implements security
              profiles for safe interpreters that  are  executing
              scripts.  Invoking  the  command  from a safe slave
              interpreter will cause an error.

       Tnm::smx result [-notify] string
              The Tnm::smx result command writes a string to  the

Tnm                        January 2001                         2

Tnm::smx(n)             Tnm Tcl Extension             Tnm::smx(n)

              controlling  SMX peer. The SMX peer will then store
              the string in the smRunResult object of the DISMAN-
              SCRIPT-MIB  (RFC  2592).  The -notify option can be
              used to let the controlling  SMX  peer  generate  a
              smScriptResult notification.

VARIABLES
       The SMX implementation sets the following global Tcl vari-
       ables before a script is executed:

       argc           Contains a count of the number of arguments
                      (0  if none), not including the name of the
                      script file.

       argv           Contains a Tcl list whose elements are  the
                      arguments,  in order, or an empty string if
                      there are no arguments.

       argv0          Contains the script name.

SEE ALSO
       scotty(1), Tnm(n), Tcl(n)

AUTHORS
       Juergen Schoenwaelder <schoenw@ibr.cs.tu-bs.de>

Tnm                        January 2001                         3


© 2000 TU Braunschweig, NEC C&C Europe    -    Wed Sep 5 12:28:05 2001