Table Of Contents
CSM XML Document Type Definition
CSM XML Document Type Definition
The CSM XML Document Type Definition (DTD) is as follows:
* cisco_csm.dtd - XML DTD for CSM 3.1
* January 2002 Paul Mathison
* Copyright (c) 2002 by cisco Systems, Inc.
Each element refers to a particular IOS CLI command.
Each attribute refers to a command parameter.
Except where noted, all "name" attributes are strings of length
1 to 15, with no whitespace.
IP address and mask attributes use standard "x.x.x.x" format.
*************************************************************
Elements and attributes required by various other elements
*************************************************************
<!ELEMENT inservice EMPTY>
sense (yes | no) #IMPLIED
<!ELEMENT serverfarm_ref EMPTY>
sense (yes | no) #IMPLIED
*************************************************************
Elements and attributes required for vlan
*************************************************************
<!ELEMENT vlan_address EMPTY>
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
gateway uses standard x.x.x.x format
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
gateway NMTOKEN #REQUIRED
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
Maximum of 7 gateways per vlan
Maximum of 4095 routes per vlan
Maximum of 255 aliases per vlan
Global maximum of 255 unique vlan_addresses
Global maximum of 255 vlan gateways (including routed gateways)
<!ELEMENT vlan (vlan_address?, gateway*, route*, alias*)>
sense (yes | no) #IMPLIED
type (client | server) #REQUIRED
*************************************************************
Elements and attributes required for probe
*************************************************************
value is between 2 and 65535 (default is 300)
<!ELEMENT probe_failed EMPTY>
sense (yes | no) #IMPLIED
value is between 2 and 65535 (default is 120)
<!ELEMENT probe_interval EMPTY>
sense (yes | no) #IMPLIED
value is between 0 and 65535 (default is 3)
<!ELEMENT probe_retries EMPTY>
sense (yes | no) #IMPLIED
value is between 1 and 65535 (default 10)
<!ELEMENT probe_open EMPTY>
sense (yes | no) #IMPLIED
value is between 1 and 65535 (default 10)
<!ELEMENT probe_receive EMPTY>
sense (yes | no) #IMPLIED
string is of length 1 to 64
<!ELEMENT probe_domain EMPTY>
sense (yes | no) #IMPLIED
<!ELEMENT probe_address EMPTY>
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
<!ELEMENT probe_expect_address EMPTY>
<!ATTLIST probe_expect_address
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
expression is a string of length 1 to 200
<!ELEMENT probe_header EMPTY>
sense (yes | no) #IMPLIED
expression CDATA #REQUIRED
user is a string of length 1 to 15
password is a string of length 1 to 15
<!ELEMENT probe_credentials EMPTY>
<!ATTLIST probe_credentials
sense (yes | no) #IMPLIED
url is a string of length 1 to 200
<!ELEMENT probe_request EMPTY>
sense (yes | no) #IMPLIED
method (get | head) #REQUIRED
min_code is between 0 and 999
max_code default is match min_code
<!ELEMENT probe_expect_status EMPTY>
<!ATTLIST probe_expect_status
sense (yes | no) #IMPLIED
min_code NMTOKEN #REQUIRED
max_code NMTOKEN #IMPLIED
Maximum of 255 probe_headers per http_probe
<!ELEMENT http_probe (probe_failed?, probe_interval?, probe_retries?,
probe_open?, probe_receive?, probe_request?,
probe_credentials?, probe_header*, probe_expect_status*)
Maximum of 255 probe_expect_addresses per dns_probe
<!ELEMENT dns_probe (probe_failed?, probe_interval?, probe_retries?,
probe_receive?, probe_domain?, probe_expect_address*)
<!ELEMENT icmp_probe (probe_failed?, probe_interval?, probe_retries?,
probe_receive?, probe_address?)
<!ELEMENT tcp_probe (probe_failed?, probe_interval?, probe_retries?,
<!ELEMENT smtp_probe (probe_failed?, probe_interval?, probe_retries?,
probe_open?, probe_receive?, probe_expect_status*)
<!ELEMENT telnet_probe (probe_failed?, probe_interval?, probe_retries?,
probe_open?, probe_receive?, probe_expect_status*)
<!ELEMENT ftp_probe (probe_failed?, probe_interval?, probe_retries?,
probe_open?, probe_receive?, probe_expect_status*)
<!ELEMENT probe (http_probe | dns_probe | icmp_probe | tcp_probe |
smtp_probe | telnet_probe | ftp_probe)
sense (yes | no) #IMPLIED
type (http | dns | icmp | tcp
| smtp | telnet | ftp) #REQUIRED
*************************************************************
Elements and attributes required for natpool
*************************************************************
Global maximum of 255 natpool addresses
sense (yes | no) #IMPLIED
first_ip NMTOKEN #REQUIRED
last_ip NMTOKEN #REQUIRED
*************************************************************
Elements and attributes required by maps
*************************************************************
url is a string of length 1 to 200
<!ELEMENT url_rule EMPTY>
sense (yes | no) #IMPLIED
name is a string of length 1 to 63
expression is a string of length 1 to 127
<!ELEMENT cookie_rule EMPTY>
sense (yes | no) #IMPLIED
expression CDATA #REQUIRED
name is a string of length 1 to 63
expression is a string of length 1 to 127
<!ELEMENT header_rule EMPTY>
sense (yes | no) #IMPLIED
expression CDATA #REQUIRED
min_code and max_code are between 100 and 599
threshold is between 1 and 4294967295, no effect for count action
reset is between 0 and 4294967295 (0 means no reset)
<!ELEMENT retcode_rule EMPTY>
sense (yes | no) #IMPLIED
min_code NMTOKEN #REQUIRED
max_code NMTOKEN #REQUIRED
action (count | log | remove) #REQUIRED
threshold NMTOKEN #REQUIRED
Maximum of 1023 url_rules per map
<!ELEMENT url_map (url_rule*)>
sense (yes | no) #IMPLIED
Maximum of 5 cookie_rules per map
<!ELEMENT cookie_map (cookie_rule*)>
sense (yes | no) #IMPLIED
Maximum of 5 header_rules per map
<!ELEMENT header_map (header_rule*)>
sense (yes | no) #IMPLIED
Maximum of 100 retcodes (not ranges) per map
<!ELEMENT retcode_map (retcode_rule*)>
sense (yes | no) #IMPLIED
*************************************************************
Elements and attributes required for redirect_server
*************************************************************
value is between 1 and 65535
<!ELEMENT ssl_port EMPTY>
sense (yes | no) #IMPLIED
string is of length 1 to 127
<!ELEMENT redirect_relocate EMPTY>
<!ATTLIST redirect_relocate
sense (yes | no) #IMPLIED
string is of length 1 to 127
<!ELEMENT redirect_backup EMPTY>
<!ATTLIST redirect_backup
sense (yes | no) #IMPLIED
<!ELEMENT redirect_server (ssl_port?, redirect_relocate?, redirect_backup?,
<!ATTLIST redirect_server
sense (yes | no) #IMPLIED
*************************************************************
Elements and attributes required for real_server
*************************************************************
value is between 1 and 100
sense (yes | no) #IMPLIED
value is between 1 and 4294967295
<!ELEMENT minconns EMPTY>
sense (yes | no) #IMPLIED
value is between 1 and 4294967295
<!ELEMENT maxconns EMPTY>
sense (yes | no) #IMPLIED
port is between 0 and 65535 (0 means no port translation)
Global maximum of 4095 real_servers
<!ELEMENT real_server (weight?, minconns?, maxconns?, inservice?)>
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
*************************************************************
Elements and attributes required for serverfarm
*************************************************************
<!ELEMENT retcode_map_ref EMPTY>
<!ATTLIST retcode_map_ref
sense (yes | no) #IMPLIED
retries is between 0 and 65534
failed is between 0 and 65535
sense (yes | no) #IMPLIED
retries NMTOKEN #REQUIRED
<!ELEMENT failaction EMPTY>
sense (yes | no) #IMPLIED
<!ELEMENT probe_ref EMPTY>
sense (yes | no) #IMPLIED
<!ELEMENT natpool_ref EMPTY>
sense (yes | no) #IMPLIED
<!ELEMENT server_nat EMPTY>
sense (yes | no) #IMPLIED
value is between 0 and 65533
sense (yes | no) #IMPLIED
hash_ip_type and ipmask valid only when value = hash_ip
<!ELEMENT predictor EMPTY>
sense (yes | no) #IMPLIED
value (roundrobin | leastconns |
hash_ip | hash_url | forward) #REQUIRED
hash_ip_type (source | destination | both) "both"
ipmask NMTOKEN "255.255.255.255"
<!ELEMENT serverfarm (predictor?, natpool_ref?, server_nat?, health?,
bind_id?, retcode_map_ref?, failaction?,
redirect_server*, real_server*, probe_ref*)
sense (yes | no) #IMPLIED
*************************************************************
Elements and attributes required for sticky_group
*************************************************************
timeout is between 1 and 65535
ipmask required for type=ip
cookie is a string of length 1 to 63, required for type=cookie
<!ELEMENT sticky_group EMPTY>
sense (yes | no) #IMPLIED
type (ip | cookie | ssl) #REQUIRED
*************************************************************
Elements and attributes required for policy
*************************************************************
<!ELEMENT url_map_ref EMPTY>
sense (yes | no) #IMPLIED
<!ELEMENT cookie_map_ref EMPTY>
sense (yes | no) #IMPLIED
<!ELEMENT header_map_ref EMPTY>
sense (yes | no) #IMPLIED
Reference to an IOS standard IP access list
Specify either the id (range 1 to 99) or name
name is a string of length 1 to 200
<!ELEMENT client_group_ref EMPTY>
<!ATTLIST client_group_ref
sense (yes | no) #IMPLIED
<!ELEMENT sticky_group_ref EMPTY>
<!ATTLIST sticky_group_ref
sense (yes | no) #IMPLIED
value is between 0 and 63
sense (yes | no) #IMPLIED
<!ELEMENT policy (serverfarm_ref?, client_group_ref?, sticky_group_ref?,
dscp?, url_map_ref?, cookie_map_ref?, header_map_ref?)
sense (yes | no) #IMPLIED
*************************************************************
Elements and attributes required for vserver
*************************************************************
protocol is between 0 and 255 (0 means any)
port is between 0 and 65535 (0 means any)
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
ipmask NMTOKEN "255.255.255.255"
protocol NMTOKEN #REQUIRED
service (none | ftp | rtsp) "none"
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
ipmask NMTOKEN "255.255.255.255"
timeout is between 1 and 65535
group is between 0 and 255 (if nonzero, refers to an ip sticky_group)
sense (yes | no) #IMPLIED
timeout NMTOKEN #REQUIRED
ipmask NMTOKEN "255.255.255.255"
<!ELEMENT policy_ref EMPTY>
sense (yes | no) #IMPLIED
begin and end are strings, 0-length ok
total length of begin and end should not exceed 200
<!ELEMENT url_hash EMPTY>
sense (yes | no) #IMPLIED
value is between 2 and 4095
sense (yes | no) #IMPLIED
value is between 2 and 65535
sense (yes | no) #IMPLIED
value is between 1 and 65535
sense (yes | no) #IMPLIED
<!ELEMENT replicate_csrp EMPTY>
sense (yes | no) #IMPLIED
value (sticky | connection) #REQUIRED
<!ELEMENT advertise EMPTY>
sense (yes | no) #IMPLIED
value (always | active) #REQUIRED
<!ELEMENT persistent EMPTY>
sense (yes | no) #IMPLIED
value is between 1 and 4000
<!ELEMENT parse_length EMPTY>
sense (yes | no) #IMPLIED
string is of length 1 to 127
sense (yes | no) #IMPLIED
Maximum of 1023 domains per vserver
<!ELEMENT vserver (virtual?, vlan_id?, idle?, pending?, replicate_csrp?,
advertise?, persistent?, parse_length?, inservice?,
url_hash?, policy_ref*, domain*,
serverfarm_ref?, sticky?, client*)
sense (yes | no) #IMPLIED
*************************************************************
Elements and attributes required for dfp
*************************************************************
port is between 1 and 65535
<!ELEMENT dfp_manager EMPTY>
sense (yes | no) #IMPLIED
port is between 1 and 65535
timeout is between 0 and 65535
retry is between 0 and 65535 (must specify timeout)
interval is between 1 and 65535 (must specify retry)
<!ELEMENT dfp_agent EMPTY>
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
password is a string of length 1 to 64
timeout is between 0 and 65535
<!ELEMENT dfp (dfp_manager?, dfp_agent*)>
sense (yes | no) #IMPLIED
*************************************************************
Elements and attributes required for udp_capp
*************************************************************
secret is a string of length 1 to 32
<!ELEMENT capp_options EMPTY>
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
value is between 1 and 65535
<!ELEMENT capp_port EMPTY>
sense (yes | no) #IMPLIED
<!ELEMENT capp_secure EMPTY>
sense (yes | no) #IMPLIED
Maximum of 16 capp_options
Default capp_port is 5002
<!ELEMENT udp_capp (capp_port?, capp_secure?, capp_options*)>
sense (yes | no) #IMPLIED
*************************************************************
Elements and attributes required for ft
*************************************************************
<!ELEMENT ft_preempt EMPTY>
sense (yes | no) #IMPLIED
value is between 1 and 254
<!ELEMENT ft_priority EMPTY>
sense (yes | no) #IMPLIED
value is between 1 and 65535
<!ELEMENT ft_failover EMPTY>
sense (yes | no) #IMPLIED
value is between 1 and 65535
<!ELEMENT ft_heartbeat EMPTY>
sense (yes | no) #IMPLIED
group is between 1 and 254
vlan_id is between 2 and 4095, and must *not* match id of
existing client or server vlan configured for csm_module
Default ft_preempt is off
Default ft_priority is 10
Default ft_heartbeat is 1
<!ELEMENT ft (ft_preempt?, ft_priority?, ft_failover?, ft_heartbeat?)>
sense (yes | no) #IMPLIED
vlan_id NMTOKEN #REQUIRED
*************************************************************
Elements and attributes required for static_nat
*************************************************************
<!ELEMENT static_real EMPTY>
sense (yes | no) #IMPLIED
ipaddress NMTOKEN #REQUIRED
ipmask NMTOKEN "255.255.255.255"
ipaddress is required for type=ip
Global maximum of 16383 static_reals
<!ELEMENT static_nat (static_real*)>
sense (yes | no) #IMPLIED
type (drop | ip | virtual) #REQUIRED
ipaddress NMTOKEN #IMPLIED
*************************************************************
root definition for csm_module
*************************************************************
slot is between 1 and MAXSLOT (depends on chassis)
Maximum of 1023 cookie_maps
Maximum of 1023 header_maps
Maximum of 1023 retcode_maps
Maximum of 4095 serverfarms
Maximum of 255 sticky_groups (including those id=0 groups created
<!ELEMENT csm_module (vlan*, probe*, natpool*, url_map*, cookie_map*,
header_map*, retcode_map*, serverfarm*, sticky_group*,
policy*, vserver*, dfp?, udp_capp?, ft?, static_nat*)
sense (yes | no) #IMPLIED
*************************************************************
*************************************************************
error_tolerance is a 32-bit value, specified
in hex or decimal, which acts as a bitmask
for specifying which error types should be
ignored. TBD: define error types
<!ELEMENT config (csm_module)>
error_tolerance NMTOKEN #IMPLIED
TBD: error response, error strictness attribute