Vendor Questionnaire

In order to build a new vendor module, we need to get a good overview of the device / vendor. Here are some basic questions and properties whose answers need to be provided:

Protocols

- telnet, ssh portnumbers
- preferences

Login

- user prompt
- password / passcode / phrase / key
- messages
- default modes possible (disabled, enabled, config, locked)

Node credentials

- rme user / passwd
- local user / passwd
- “enable” string
- other methods

Node prompts

- hostname
- enable mode
- possibility to 'disable' or only quit to go down one level or disconnect?
- config mode
- sub config sections

Hardware

- retrieve model
- retrieve modules
- action on model verification

OS version

- retrieve version
- subversions
- action on version mismatch
- action on subversion mismatch

OS files

- location
- filename conventions
- verification

Commit

- commit status
- action on pending commits
- commit verification
- action on commit verification failures
- commit command and tagging
- action on commit failures

Rollback

- rollback options
- default rollback actions (tagging)
- rollback command and tagging
- action on rollback unavailability
- action on rollback failure

Config file

- save options (eg run to startup)
- save command and tagging
- startup / run verification commands
- action on pending startup / run verification failure
- startup options and commands - ever-changing information in the configuration (for example timestamps) that will need to be filtered out for NCCM purposes?
- examples of configuration lines where credentials are shown and need to be censored

Config download

- download config / startup file commands
- config verification criteria
- action on config verification failure
- additional actions and commands on new config (eg vlan.txt)

Config upload

- config save to file options
- config upload options
- config upload timeout
- action on config upload failure
- when to upload config automatically?

Reload

- reload readiness criteria (eg registry)
- reload command and confirmations
- reload timeout
- reload verification commands
- action on reload verification failure

Commands

- inter-command delay
- config mode verification
- config mode commands
- non-config command recognition
- action on non-config commands
- error and warning messages
- action on error messages
- action on warning messages

Default confirmation action

- timeout before confirm
- just enter or….
- response timeout
- no response actions

File transfers

- tftp, sftp, ssh, other
- commands
- action on file transfer failure
- timeouts for transfers
- action on transfer timeout
- file integrity verification (eg. MD5)
- action on file integrity failure

Sample standard 'transactions'

- Config diff, verify the running config is unchanged from last change
- login
- hardware unchanged?
- os version unchanged?
- pending commits?
- running matches startup?
- upload config
- diff config against last saved(from change, confirmed by operator)

Import commands - execute commands in config mode

- login
- hardware unchanged?
- os version unchanged?
- pending commit?
- running matches startup?
- go into config mode
- issue commands, eval for warnings and errors
- validate commit
- commit and tag
- rollback if indicated by err / policy
- save as startup

Config save - upload active config after a change for future diff/report

- login
- hardware unchanged?
- os version unchanged?
- pending commits?
- running matches startup?
- save config and upload
- tag and store in database

Startup config - download startup config to node, save as startup
Reload node - restart node using startup config
File transfer - binary (OS) file download (and upload too?)