#
# C5921V FAQ
# 
#
# Copyright (c) 2015-2016 by Cisco Systems, Inc.
# All rights reserved. 
#


------------------------------------------------------------
Terms
------------------------------------------------------------

Customer, is the end user of the system provided by the 
   Integrator.  

Integrator, is the engineering personnel responsible for
   integrating the software router application with Linux
   and other system collateral.  

Software Router, is a special version of IOS built into
   a Linux application.  


------------------------------------------------------------
Overview FAQs 
------------------------------------------------------------

Q: What type of product is the software router?   
A: The Cisco 5921V ESR is an x86 32-bit Linux application 
   which provides Cisco IOS routing capability. It runs on
   the  host hardware and Linux operating system provided
   by an Integrator.  


Q: Are there any hardware options or features that are required
   for the Cisco 5921V ESR application? 
A: There are no hardware requirements. This is a Linux software
   application. The Integrator is responsible for providing the
   hardware.  


Q: When selecting the platform, what are the hardware 
   requirements?  
A: From the Cisco 5921V ESR perspective, the CPU must be of the 
   Intel x86 compatible family with minimum 512 Mbyte RAM. 
   In addition, the distribution of Linux selected may impose
   more requirements.  


Q: What Linux distributions are supported?   
A: There are no Linux restrictions as the Integrator is 
   responsible for building the system and verifying its
   functionality. Cisco has tested on Ubuntu, Fedora, CentOS,
   OpenWRT. Cisco has also tested in desktop configurations
   and embedded configurations.    

   See http://en.wikipedia.org/wiki/Linux_distribution


Q: What are the baseline Linux requirements?  
A: The selected Linux kernel must be 2.6.32 or greater. While the 
   software application is a 32-bit application, it will work on a 
   64-bit Linux system provided the 32-bit libraries are installed.


Q: What are the Cisco 5921V ESR application Linux dependencies? 
A: Standard Linux tools can be used to display dependencies. 
   Cisco 5921V ESR application specific shared library "libdyncs.so"
   is provided as part of the Cisco 5921V applicatoin package.
   Both Cisco 5921V ESR application and "libdyncs.so" library must
   be present in the same directory. "libdyncs.so" must be exported
   using "export LD_LIBRARY_PATH=<path_of_cisco_5921_ESR_app>"
   An example from Cent is shown below: 

   $ export LD_LIBRARY_PATH=/opt/cisco/c5921

   $ ldd c5921i86v-universalk9-ms.SSA
        linux-gate.so.1 =>  (0x008af000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00621000)
        libdl.so.2 => /lib/libdl.so.2 (0x0091a000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00a03000)
        librt.so.1 => /lib/tls/librt.so.1 (0x00905000)
        libdyncs.so => /opt/cisco/c5921/libdyncs.so (0x00fd3000)
        libm.so.6 => /lib/libm.so.6 (0x0038e000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00c8e000)
        libc.so.6 => /lib/libc.so.6 (0x00174000)
        /lib/ld-linux.so.2 (0x00bcc000)

   $ ldd swrvcon
        linux-gate.so.1 =>  (0x00cfd000)
        libc.so.6 => /lib/libc.so.6 (0x004e5000)
        /lib/ld-linux.so.2 (0x00a2f000)
	
   $ ldd swr_reload
        linux-gate.so.1 =>  (0x00b76000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00e16000)
        libc.so.6 => /lib/libc.so.6 (0x0079a000)
        /lib/ld-linux.so.2 (0x0052f000)
      
   Internet search "linux ldd" for further details. 


Q: Can the Cisco 5921V ESR application run in the foreground
   as well as the background?  
A: Yes, both modes are supported. The Integrator would determine
   which is appropriate depending upon requirements.   


Q: When the Cisco 5921V ESR application is initiated for the 
   first time, does it go through the IOS initial configuration
   process?
A: Yes, the Integrator will be prompted to enter the initial 
   configuration dialog:
             --- System Configuration Dialog ---

   Would you like to enter the initial configuration dialog? [yes/no]: 


Q: What is the IOS feature baseline? 
A: The Cisco 5921V ESR application is built from the T Train.
   It is equivalent to 15.6 in features.  Note that some features
   that are included in the 15.6 feature list may not be
   included, or supported at this time. See Cisco Feature Navigator
   at http://tools.cisco.com/ITDIT/CFN/jsp/index.jsp for supported
   features.


Q: In IOS terms, what is the image name of the IOS Linux
   application?
A: c5921i86v-universalk9-ms  


Q: What other Cisco C5921V ESR application exist, if any? 
A: There are two additional applications.  
     (i) swrvcon is an optional application that provides
         virtual access to the IOS console (CLI).
     (ii) swr_reload is an application that provides
          a launch option for Barramundi and reloads SWR
          if it becomes inoperable. 
   
Q: Are IOS features configured via CLI commands?    
A: Yes.  The IOS CLI is available from the console window or 
   the virtual console application, swrvcon.  Once the 
   configuration has been modified it can be saved via the
   standard IOS commands.  The configuration is saved within 
   the Linux file system based upon the designated router ID. 


Q: My single board computer has a spare serial port.  Can 
   the SWR be used to make this port an AUX port for 
   connection to a modem?
A: No, serial ports are not supported. The Cisco 5921V ESR
   only supports Ethernet interfaces. 


Q: Is it possible to share the Ethernet interfaces between
   Linux and the Cisco 5921V ESR application?
A: This is not supported.  An interface should either be
   managed by the software router application or by Linux,
   never by both. Any interface that is not assigned to 
   the Cisco 5921V ESR application are available to Linux.  
   Do not assign an IP address in Linux to a physical interface 
   that is managed by the Cisco 5921V ESR.

Q: My single board computer has a USB port.  Can this be used
   this in conjunction with an eToken device?  
A: Yes, when Linux is used to manage the eToken.  IOS eToken 
   commands and functionality can not be used for Linux eTokens.   

   Internet search "linux etoken" for further details. 


Q: When needing to install a new Cisco 5921V ESR application, is
   the new image or application FTPed to IOS as typically done
   with other IOS products? 
A: No, as a Linux application, the Integrator would simply need 
   to stop the application, then copy the new Cisco 5921V ESR 
   files over the previous.


Q: There are three Linux applications in the Cisco 5921V ESR
   distribution.  When updating the system can one application
   be upgraded and the others remain?
A: No.  The three applications and shared library are considered 
   a single package and should all be installed and upgraded
   as a group.


Q: If the selected processor supports hardware assisted encryption,
   can the Cisco 5921V ESR application make use of this to 
   increase encryption performance?  
A: No, the Cisco 5921V ESR application only supports the software 
   based encryption built into the application.


Q: What kind of performance can one expect from the Cisco 5921V ESR
   application? 
A: The achievable performance is dependent upon several factors.
   The most important will be the CPU features such as processor speed, 
   cache, and memory. Enabled IOS features will also impact performance, 
   i.e.  encryption, access control lists, tunneling, NAT, and firewall.


Q: Does the software router application take advantage of multi-core
   processors? 
A: Yes.  The application does have multiple threads, so Linux 
   may schedule them on different cores.  The application itself
   does not modify the CPU affinity.  The system Integrator is 
   free to decide whether to alter how Linux assigns applications
   to the various cores and threads on their platform.

   Internet search "linux multicore scheduling" for further details.


Q: Can we run Cisco C5921V image on Baremetal?
   No. this c5921i86v-universalk9-ms image will only runs on virtual machine.  

------------------------------------------------------------
Support FAQs
------------------------------------------------------------

Q: The IOS show process command displays a long list of IOS tasks,
   but these tasks to not show up in the Linux top display. Why?
A: The Cisco 5921V ESR application run the entire IOS image as a 
   single Linux process.

Q: When the software application is initiated from the command line
   with a new router ID parameter, the previously saved configuration is
   not found. Why?
A: The router ID parameter is used by the Cisco 5921V ESR application
   to uniquely manage various files. The nvram data is stored in a file
   based upon the router ID, so when the router ID is changed, the 
   associated nvram file is expected.
   Example nvram filename for router ID 100: nvram_00100.

Q: All of my interfaces show up as 10Mbps Ethernet even though I have 
   10/100/1000 interfaces in my system. Am I really limited to 10Mbit/s?
A: No. If you are using RAW interfaces, the monitor-state option in 
   SWROPTIONS file needs to be in TRUE state to get the interface speed 
   setting from Linux to IOS.  If you use TAP interface, the default 10 Mbps 
   speed only will show up in IOS even though your underlying physical adaptor
   is  100/1000 Mbps. This is the limitation for TAP in showing up as 10 Mbps 
   default value but in reality this interface can carry more than 10 Mbps 
   based on the underlying physical adaptor.
   
Q: All of my interfaces show "duplex half" even though the interfaces on 
   my system are full duplex. Am I really limited to half duplex operation?
A: No, you aren't limited to half duplex operation. IOS interfaces might not 
   be mapped to any  Linux interfaces and/or the monitor-state in SWROPTIONS 
   file might not be set to True. This might be the reason that your IOS 
   interfaces are showing as default half-duplex. 

Q: "Show interface" always shows the hardware as "AmdP2" despite the
   manufacturer of the adaptor. Why?
A: "AmdP2" is the name of the driver used at the logical level by the
   SWR application. The underlying interface is not queried by IOS,
   so the actual hardware type is not displayed.

Q: I cannot copy files as on other Cisco routers to devices like 
   "flash:" or "disk:". When I issue "dir all" in IOS, I see "unix:".
   What is this?
A: Since there is no flash or hard drive dedicated to IOS as on Cisco 
   hardware routers, by default, only a Unix file system is available to the SWR
   application. Therefore, "unix:" was created to allow reading/writing
   of files to the unix filesystem from IOS. "unix:" is mapped to the
   current working directory where the SWR application was launched.
   Refer to SWROPTIONS.example.txt for more information.

Q: Cisco 5921V ESR application fails to launch due to unknown shared
   library "libdyncs.so"
A: "libdyncs.so" shared librar is provided as part of Csico ESR 5921V 
   application package. Both "libdyncs.so" and Cisco 5921V ESR application must be
   present in the same directory. Shared library "libdyncs.so" must be exported
   by using "export LD_LIBRARY_PATH=<path_of_c5921_application>"

------------------------------------------------------------
Configuration and Installation FAQs
------------------------------------------------------------

Q: Must the Cisco 5921V ESR applications be managed by root or
   can the files be managed in other directories?
A: Cisco 5921V ESR does not require root management but it does 
   require sudo privilege to execute when not root.

   Internet search "linux sudo" for further details. 


Q: From the Linux perspective, do the Linux logging facilities
   continue to function?  
A: Absolutely, the Linux variable data directory, /var, remains
   intact.  The standard Linux /var files can be reviewed to
   gather system information.   It is also important to note that
   standard Linux utilities and tools continue to be available to
   facilitate file rotation, reporting, etc.  The /var/log directory
   may be most useful.     
   It is also possible to configure IOS to redirect logging and 
   debug information to the Linux syslog on the local machine using 
   the Tap interface or to a remote host.

   Internet search "linux variable log files" for further details. 


Q: Can I use the Cisco 5921V ESR in virtualized environments?
A: Yes.

Q: When speed/duplex cli will be available for an interface?
A: The speed/duplex cli will be available , only when an interface is 
   mapped in SWROPTIONS as well as push-mon-int flag is set to true.

Q: What happens if push-mon-int variable is set for tap interface?
A: The push-mon-int variable would be ignored for tap interface.

Q:What is expected behavior on various values of push-mon-int and monitor-state?
A:The following are the various combinations of push-mon-int and monitor-state ,
  a)push-mon-int=true and monitor-state=true/not given
      The speed and duplex cli will be available, and changes will
      be pushed to linux side.
  b)push-mon-int=true and monitor-state=false
      The speed and duplex cli will be available, but changes 
      will not be pushed to linux side
  c)push-mon-int=false/not given and monitor-state=false
      The speed and duplex cli itself will not be available. 
  d)push-mon-int=false/not given and monitor-state = true/not given
      The speed and duplex cli will not be available under 
      particular interface.Other interface characteristics like MAC changes
      shall be pushed to linux side.

Q: What happens when node-lock-type keyword is not present in SWROPTIONS file?
A: It will take the default value as "machine"

Q: Can I use the node-lock-type keyword in Virtualized environments?
A: Virtualized environments support only node-lock-type 'machine', which is
   default.  For any other node-lock-type values, it will throw an error and
   exit.

Q: Can I use node-lock-type=storage on machine which supports LVM filesystem?
A: No. We can use only node-lock-type=machine.
