Skip to content

Cisco IOS driver

The cisco_ios driver presents a Cisco IOS personality over SSH: a greeting, a host> / host# prompt, enable mode, and a set of show commands answered convincingly. It is the default driver and the one most NCM tooling will exercise.

On connect the device emits a greeting and the user-mode prompt:

<hostname> line 0 is now available
<hostname>>

A typical collection session: set the terminal length, enter enable mode, then pull config.

terminal length 0
enable
Password: enable123
show running-config
exit ← leaves enable mode
exit ← closes the session

enable prompts for the enable password; a correct password moves the prompt from > to #. A wrong one prints % Access denied.

CommandBehaviour
terminal length 0Silent acknowledgement (disables paging)
terminal pager 0Silent acknowledgement
enablePrompts for the enable password; enters enable mode
show versionCanned IOS 15.x version block with the device’s hostname and serial
show running-configThe full generated config, streamed zero-copy from mmap
show startup-configThe same bytes as show running-config
show inventoryCanned inventory; chassis SN matches show version’s serial
exit / quit / logout / endLeave enable mode, or close the session

Anything else returns % Invalid input detected at '^' marker.

Like real IOS, commands resolve by per-token unique prefix: sh vershow version, sh runshow running-config. Two rules make this predictable:

  • Exact matches always win. end resolves as an exit alias even though it shares its first two letters with enable.
  • Genuinely ambiguous prefixes are rejected. en is a prefix of both enable and end, so it returns % Ambiguous command rather than guessing. Type the distinguishing character (ena… or end).

Aliases that collapse to the same action (exit/quit/logout/end all close or drop a mode) are not treated as ambiguous.

Each resolved command is recorded under rcfgsim_command_duration_seconds{command="..."}. The Cisco driver’s label values are the Cmd* names: CmdShowRunningConfig, CmdEnable, CmdShowVersion, CmdUnknown, CmdAmbiguous, and the rest. See the metrics reference.

cisco_ios returns RequiresSSHAuth() == true — it authenticates at the SSH transport layer. Under --ssh-auth=driver that means Cisco devices challenge for a password while Ciena devices don’t.