Fox Smart Products Services Library Support Company

FAQ

Home onmouseover="MM_swapImage('mail','','/images/mailboxSelected.gif',1)" onmouseout="MM_swapImgRestore()">E-mail Fox Smart Contact Fox Smart Site Map

The following is a list of the most Frequently Asked Questions regarding the Cisco Smart Update product.


1. How do I obtain a copy of CSU for evaluation purposes?

Fox Smart will be happy to provide an evaluation copy of the Cisco Smart Update Java toolkit to users who register with us. To register, please e-mail us at . Once registered, you will receive an evaluation copy of the software along with a temporary evaluation license. We will be happy to answer any questions you may have in getting the software working in your specific environment.

2. What are CSU's JDK and third-party library dependencies?

Cisco Smart Update requires a minimum of JDK 1.5 and the following third-party open source libraries to run: Customers may choose to download the third-party libraries themselves or to download a CSU distribution that comes with the third-party libraries included.

The Cisco Smart Update SDK is written in 100% pure Java and does not use any platform specific Java Native Interface (JNI) code. As such, it should run properly on any platform that supports the Java Runtime environment. Nonetheless, it is recommended that CSU SDK and your application be properly tested on the desired targeted platform to ensure no issues are found.

3. How is CSU distributed?

Cisco Smart Update comes in 4 possible distribution packages:
  • csu-1.0.jar is the main Cisco Smart Update JAR distribution. It contains the core toolkit functionality. Customers who use this distribution will be required to furnish their own required third-party JAR libraries as listed previously.
  • csu-1.0-with-dependencies.zip contains the main Cisco Smart Update JAR distribution as well as required dependent third-party libraries. The following are the third-party library versions that are included in this distribution: commons-lang.jar 2.3, commons-collections.jar 3.2, commons-logging.jar 1.1, commons-codec.jar 1.3, and dom4j.jar 1.6.1. Many prior versions of these libraries should also work if required, however, customers should check with Fox Smart if a specific version of a library is supported.
  • csu-1.0-docs.zip contains the Cisco Smart Update documentation (e.g. Javadoc). No libraries are included in this distribution.
  • csu-1.0-all.zip contains the entire Cisco Smart Update distribution including everything in the other distributions (i.e. the toolkit library, third-party libraries, and documentation).
Although we intend to make the distributions available for download via the www.foxsmart.com web site in the future, for now, please contact Fox Smart directly to obtain a distribution.

4. How do I apply a CSU license file?

In addition to the Cisco Smart Update library distribution, a valid Fox Smart CSU license file is required to activate the product.

By default, the toolkit will look in the JVM startup directory for a file called license.foxsmart. However, the license file can be renamed and/or placed in an alternate location if desired. If this is the case, the toolkit must be informed of the location and name of the license file using the JVM startup parameter FOXSMART_LICENSE_URL. This parameter must specify a valid URL to the location of the file. For example, the following startup parameter would specify that the file is located in the C:\temp directory and has the name license.foxsmart.perm:
  -DFOXSMART_LICENSE_URL="file:///C:\temp\license.foxsmart.perm"

5. How can I get CSU up and running quickly?

The following provides a quick start guide to getting CSU up and running quickly:
  1. Obtain a copy of the CSU toolkit and an evaluation license from Fox Smart.
  2. Place the csu.jar distribution and the third-party library distributions in your classpath.
  3. Ensure the license file is in the JVM startup directory.
  4. Create a test driver that connects to the router and display its running configuration.
  5. Run the test driver.
For more details on how to perform these steps, please consult Chapter 2 of the Cisco Smart Update Programmer's Guide.

6. How do I obtain and display the running configuration of a Cisco router?

The running Cisco router configuration can easily be obtained using the following approach. Note that once you obtain the configuration as a CiscoRouterConfig object, you may examine many parts of the IOS configuration by traversing through the configuration, make updates, and write those changes back to the router.
  // Create a router object
  CiscoRouter router = new CiscoRouter("hostname", "password", "enablePassword");

  // Connect and login to the router
  router.login();

  // Get the router configuration
  CiscoRouterConfig routerConfig = router.getRunningConfiguration();

  // Disconnect from the router
  router.logout();

  // Display the configuration
  System.out.println("Router configuration: " + routerConfig.getOriginalIos());

7. Does CSU come with any programming examples?

The csu-1.0-with-dependencies.zip and csu-1.0-all.zip distributions come with a JAR file in the "dist" directory called csu-1.0-examples.jar. This JAR file contains the source code and class files for several example programs. These examples are meant to provide the developer with information on how the toolkit can be used. For details about the various example programs that are included, please consult Chapter 3 of the Cisco Smart Update Programmer's Guide.

8. What logging options are included with CSU?

Cisco Smart Update uses the commons-logging API to provide useful runtime logging information. The commons-logging API provides a generic logging interface that can be used by itself or with another 3rd party logging toolkit. Customers are free to use any commons-logging implementation they wish although Fox Smart recommends using log4j. log4j is not included with CSU and can be downloaded from Apache if desired.

CSU uses the following logging levels:
  • WARN displays information when problems are encountered that are not severe enough to thrown an exception.
  • INFO displays useful runtime information such as router interaction, runtime parameters, configuration information, etc. that can be useful to monitor the toolkit's main functionality. Note that this log level (or any more detailed log level) will display router commands including sent passwords. As such, it is highly recommended not to use this debug level in a production environment.
  • DEBUG displays extra information that helps monitor the toolkit flow (e.g. key method entry and exit points).
  • TRACE displays detailed debugging information that includes raw data read from the router. This log level will produce a lot of output so it should typically only be used when debugging low level router communication issues.
The following is an example log4j.xml configuration file that can be used to log useful information to the console:
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

  <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
     <!-- Console Appender -->
     <appender name="console.appender" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
           <param name="ConversionPattern"
                  value="%d{MMM dd yyyy HH:mm:ss} [%C{1}.%M] %m%n"/>
        </layout>
     </appender>

     <!-- Fox Smart Logging Configuration -->
     <logger name="com.foxsmart" additivity="false">
        <level value="info"/>
        <appender-ref ref="console.appender"/>
     </logger>

     <!-- Root Configuration -->
     <root>
        <level value="warn"/>
        <appender-ref ref="console.appender"/>
     </root>
  </log4j:configuration>

9. Why am I getting an exception when logging into the router?

When Cisco Smart Update attempts to login to the router, it will connect with and attempt to authenticate with the router. When CSU is used for the first time, there are many reasons why an exception might be thrown when initially attempting to login to the router. The following are some possible reasons:
  • Invalid Hostname: When an IP address can't be determined for the specified hostname, a java.net.UnknownHostException will be typically be thrown. When this happens, ensure an IP address can be determined for the specified hostname. A quick way to test if the hostname is recognized is to ping the hostname on your local machine. If the hostname can't be resolved, contact your network administrator.
  • Connection Problem: If an IP address is specified or if an IP address can be successfully determined from the specified hostname, it is possible that a connection to the router can't be established. This will typically result in a java.io.IOException. Possible reasons for this type of exception could be that the IP address is not a Cisco router or the device with the specified IP address is down or does not exist. Another possible reason could be a firewall that is blocking the connection. CSU uses the telnet protocol to connect to and communicate with the router so a good test is to manually telnet to the router to ensure connectivity can be established.
  • Invalid Username or Password: If the router requires a username or password for standard access and/or an enable password for “enable” access, these passwords must be passed to the CiscoRouter class. If the standard password is incorrect, a com.foxsmart.csu.AuthenticationFailedException will be thrown. If the enable password is incorrect, a com.foxsmart.csu.InvalidEnablePasswordException will be thrown. When this happens, ensure the username and passwords are correct and try again. This can be verified by connecting directly to the router using telnet or SSH, logging in, and gaining enable access with the specified username and passwords.
  • License Exception: When CSU is run, it will ensure the license and usage is valid. This consists of a series of checks including whether the license file is valid, whether the license is expired, whether the device(s) being connected to are part of the license, etc. If any of these checks fail, a java.lang.Exception will be thrown. Note that an evaluation license will instruct the SDK to validate itself by contacting the Fox Smart web site at www.FoxSmart.com. As such, the Fox Smart web site must be network accessible or the toolkit will not function. This validation process occurs periodically (approximately once a day).

10. Can I run CSU behind a firewall?

Fox Smart evaluation licenses are validated on the Fox Smart web site approximately once per day. This requires the SDK to make an HTTP connection to www.foxsmart.com. If the application program produces a timeout exception because it can’t connect to the Fox Smart server and the reason is because a firewall is place that requires all outgoing HTTP connections to go through an HTTP proxy, the proxy information must be entered on the startup command line using startup properties. For example, the following will run an example program using a proxy host of “proxy.domain.com” and port “80”:
 C:\>java -DproxySet="true" -DproxyHost="proxy.domain.com" -DproxyPort="8080" ...
Substitute your own proxy host and port into the above command line as appropriate.

11. Why am I getting an exception when obtaining a running configuration?

When Cisco Smart Update obtains a running configuration from the router, it downloads the configuration, parses it, and creates a CiscoRouterConfig class hierarchy that represents the entire router configuration. Given the large number of Cisco router hardware types and IOS versions that exist in a network, it is possible that an unanticipated IOS configuration can be encountered which will typically result in a com.foxsmart.csu.config.InvalidConfigurationException. If this happens, it is possible that a CSU software patch will be required. If so, Fox Smart will typically request the following information to help diagnose the problem and provide a fix:
  1. The Cisco router module and hardware configuration.
  2. The output of the "show version" command on the router.
  3. The output of the "show run" command on the router.

Contact Us

Please feel free to contact us at any time by sending e-mail to . We always welcome your comments or suggestions.

Cisco Smart Update

Fox Smart's Cisco Smart Update product lets customers automate their Cisco router configuration changes through a 100% pure Java API toolkit. To learn more about this one of a kind approach to network automation, click the link below.

Stay Connected!

Fox Smart sends out periodic updates on our company, our products, and Cisco router configuration automation in general. Feel free to enter your contact information below to join our "e-mailing list". We respect your privacy and you can unsubscribe at any time.
First Name:
Last Name:
Company:
E-mail:
 
Products Services Library Support Company Site Map Terms & Conditions Privacy Policy