Catalyst 6500 Series Switch Content Switching Module (CSM) Installation and Configuration Note, Software Release 4.2(x)
CSM XML Document Type Definition
Downloads: This chapterpdf (PDF - 611.0KB) The complete bookPDF (PDF - 3.59MB) | Feedback

CSM XML Document Type Definition

Table Of Contents

CSM XML Document Type Definition


CSM XML Document Type Definition


You can use this Document Type Definition (DTD) to configure the CSM as described in the "Configuring the XML Interface" section on page 8-27.


Note The document type (!DOCTYPE) declaration is not used in the CSM XML DTD.


The CSM XML DTD is as follows:

<!--
/*
 *  cisco_csm.dtd - XML DTD for CSM 4.2	
 *
 *  January 2005  Paul Mathison
 *
 *  Copyright (c) 2002, 2003-2005 by cisco Systems, Inc.
 *  All rights reserved
 */
-->

<!--
  Notes:
  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>
<!ATTLIST inservice
  sense (yes | no) #IMPLIED
>

<!ELEMENT inservice_standby EMPTY>
<!ATTLIST inservice_standby
  sense (yes | no) #IMPLIED
>

<!--
  backup_name is a string of length 1 to 15
  backup_sticky default is "no"
-->
<!ELEMENT serverfarm_ref EMPTY>
<!ATTLIST serverfarm_ref
  sense         (yes | no) #IMPLIED
  name          CDATA      #REQUIRED
  backup_name   CDATA      #IMPLIED
  backup_sticky (yes | no) #IMPLIED
>

<!--
  value is between 1 and 4294967295
-->
<!ELEMENT maxconns EMPTY>
<!ATTLIST maxconns
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  id is between 1 and 255
-->
<!ELEMENT reverse_sticky EMPTY>
<!ATTLIST reverse_sticky
  sense (yes | no) #IMPLIED
  id    NMTOKEN    #REQUIRED
>

<!--
*************************************************************
  Elements and attributes required for env_variable
*************************************************************
-->

<!--
  name is a string of length 1 to 31
  expression is a string of length 0 to 127
-->
<!ELEMENT env_variable EMPTY>
<!ATTLIST env_variable
  sense      (yes | no) #IMPLIED
  name       CDATA      #REQUIRED
  expression CDATA      #REQUIRED
>

<!--
*************************************************************
  Elements and attributes required for owner
*************************************************************
-->
<!--
*************************************************************
  Elements and attributes required for owner_conn.
  This is READ ONLY
*************************************************************
-->

<!ELEMENT owner_conn EMPTY>
<!ATTLIST owner_conn
  connection     	NMTOKEN    #IMPLIED
  total_conns 		NMTOKEN    #IMPLIED
  max_conns_dropped    NMTOKEN    #IMPLIED
>


<!--
  string is of length 1 to 200
-->
<!ELEMENT billing_info EMPTY>
<!ATTLIST billing_info
  sense  (yes | no) #IMPLIED
  string CDATA      #REQUIRED
>

<!--
  string is of length 1 to 200
-->
<!ELEMENT contact_info EMPTY>
<!ATTLIST contact_info
  sense  (yes | no) #IMPLIED
  string CDATA      #REQUIRED
>

<!ELEMENT owner (maxconns?, billing_info?, contact_info?, owner_conn?)>
<!ATTLIST owner
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
*****************************************************************
  Elements and attributes required for xml_vlan. This is READ ONLY.
*****************************************************************
-->
<!ELEMENT xml_vlan EMPTY>
<!ATTLIST xml_vlan
  id        NMTOKEN    #IMPLIED
  ipaddress NMTOKEN    #IMPLIED
>

<!--
*******************************************************************
  Elements and attributes required for xml_client. This is READ ONLY.
*******************************************************************
-->
<!ELEMENT xml_client EMPTY>
<!ATTLIST xml_client
  list 		NMTOKEN 	#IMPLIED
>

<!--
*******************************************************************
  Elements and attributes required for xml_connections.
  This is READ ONLY.
*******************************************************************
-->
<!ELEMENT xml_connections EMPTY>
<!ATTLIST xml_connections 
  current 		NMTOKEN 	#REQUIRED
  total 		NMTOKEN 	#REQUIRED
  failed 		NMTOKEN 	#REQUIRED
  security_failed 	NMTOKEN 	#REQUIRED
  total_requests 	NMTOKEN 	#REQUIRED
  failed_requests 	NMTOKEN 	#REQUIRED
>

<!--
*******************************************************************
  Elements and attributes required for xml_stats.
  This is READ ONLY.
*******************************************************************
-->

<!ELEMENT xml_stats (xml_vlan?, xml_client?, xml_connections?)>
<!ATTLIST xml_stats 
  status 	CDATA 		#REQUIRED
  port 		NMTOKEN 	#REQUIRED 
>

<!--
*************************************************************
  Elements and attributes required for vlan
*************************************************************
-->

<!ELEMENT vlan_address EMPTY>
<!ATTLIST vlan_address
  sense     (yes | no) #IMPLIED
  ipaddress NMTOKEN    #REQUIRED
  ipmask    NMTOKEN    #REQUIRED
>

<!ELEMENT gateway EMPTY>
<!ATTLIST gateway
  sense     (yes | no) #IMPLIED
  ipaddress NMTOKEN    #REQUIRED
>

<!--
  gateway uses standard x.x.x.x format
-->
<!ELEMENT route EMPTY>
<!ATTLIST route
  sense     (yes | no) #IMPLIED
  ipaddress NMTOKEN    #REQUIRED
  ipmask    NMTOKEN    #REQUIRED
  gateway   NMTOKEN    #REQUIRED
>

<!ELEMENT alias EMPTY>
<!ATTLIST alias
  sense     (yes | no) #IMPLIED
  ipaddress NMTOKEN    #REQUIRED
  ipmask    NMTOKEN    #REQUIRED
>

<!--
  id is between 2 and 4094
  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*)>
<!ATTLIST vlan
  sense (yes | no)        #IMPLIED
  id    NMTOKEN           #REQUIRED
  type  (client | server) #REQUIRED
>

<!--
*************************************************************
  Elements and attributes required for script_file, script_task
  and script
*************************************************************
-->

<!--
  url is a string of length 1 to 200
-->
<!ELEMENT script_file EMPTY>
<!ATTLIST script_file
  sense        (yes | no)    #IMPLIED
  url          CDATA         #REQUIRED
>

<!--
  id is between 1 and 100
  name is a string of length 1 to 31
  arguments is a string of length 0 to 199
  num_runns, last_exit_code, status_string, start_time,
  end_time,  last_error_line, last_error,
  last_error_info are READ ONLY fields 

-->
<!ELEMENT script_task EMPTY>
<!ATTLIST script_task
  sense            (yes | no) #IMPLIED
  id               NMTOKEN    #REQUIRED
  name             CDATA      #REQUIRED
  arguments        CDATA      #IMPLIED
  num_runs         NMTOKEN    #IMPLIED
  last_exit_code   NMTOKEN    #IMPLIED
  status_string    CDATA      #IMPLIED
  start_time       CDATA      #IMPLIED
  end_time         CDATA      #IMPLIED
  last_error_line  NMTOKEN    #IMPLIED
  last_error       CDATA      #IMPLIED
  last_error_info  CDATA      #IMPLIED  
>

<!--
  This is READ ONLY.
-->
<!ELEMENT script EMPTY>
<!ATTLIST script
  name         CDATA         #IMPLIED
  url          CDATA         #IMPLIED
  size         NMTOKEN       #IMPLIED
  load_time    CDATA         #IMPLIED
  code         CDATA         #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for probe
*************************************************************
-->

<!--
  value is between 2 and 65535 (default is 300)
-->
<!ELEMENT probe_failed EMPTY>
<!ATTLIST probe_failed
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  value is between 2 and 65535 (default is 120)
-->
<!ELEMENT probe_interval EMPTY>
<!ATTLIST probe_interval
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  value is between 0 and 65535 (default is 3)
-->
<!ELEMENT probe_retries EMPTY>
<!ATTLIST probe_retries
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  value is between 1 and 65535 (default 10)
-->
<!ELEMENT probe_open EMPTY>
<!ATTLIST probe_open
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  value is between 1 and 65535 (default 10)
-->
<!ELEMENT probe_receive EMPTY>
<!ATTLIST probe_receive
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  value is between 1 and 65535
-->
<!ELEMENT probe_port EMPTY>
<!ATTLIST probe_port
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  string is of length 1 to 64
-->
<!ELEMENT probe_domain EMPTY>
<!ATTLIST probe_domain
  sense  (yes | no) #IMPLIED
  string CDATA      #REQUIRED
>

<!ELEMENT probe_address EMPTY>
<!ATTLIST probe_address
  sense     (yes | no) #IMPLIED
  ipaddress NMTOKEN    #REQUIRED
  mode      (transparent | routed) "transparent"
>

<!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>
<!ATTLIST probe_header
  sense      (yes | no) #IMPLIED
  name       CDATA      #REQUIRED
  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
  user     CDATA      #REQUIRED
  password CDATA      ""
>

<!--
  url is a string of length 1 to 200
-->
<!ELEMENT probe_request EMPTY>
<!ATTLIST probe_request
  sense  (yes | no)   #IMPLIED
  method (get | head) #REQUIRED
  url    CDATA        "/"
>

<!--
  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
>

<!--
  name is a string of length 1 to 31
  arguments is a string of length 0 to 199
-->
<!ELEMENT script_ref EMPTY>
<!ATTLIST script_ref
  sense     (yes | no) #IMPLIED
  name      CDATA      #REQUIRED
  arguments CDATA      #IMPLIED
>

<!--
  secret is a string of length 1 to 32
-->
<!ELEMENT probe_secret EMPTY>
<!ATTLIST probe_secret
  sense  (yes | no) #IMPLIED
  secret CDATA      #REQUIRED
>

<!--
  Maximum of 255 probe_headers per http_probe
  probe_address must use mode "routed"
-->
<!ELEMENT http_probe (probe_failed?, probe_interval?, probe_retries?,
                      probe_open?, probe_receive?, probe_port?, probe_address?,
                      probe_request?, probe_credentials?, probe_header*,
                      probe_expect_status*)
>

<!--
  Maximum of 255 probe_expect_addresses per dns_probe
  probe_address must use mode "routed"
-->
<!ELEMENT dns_probe (probe_failed?, probe_interval?, probe_retries?,
                     probe_receive?, probe_port?, probe_address?, probe_domain?,
                     probe_expect_address*)
>

<!--
  probe_address must use mode "transparent"
-->
<!ELEMENT icmp_probe (probe_failed?, probe_interval?, probe_retries?,
                      probe_receive?, probe_address?)
>

<!ELEMENT tcp_probe (probe_failed?, probe_interval?, probe_retries?,
                     probe_open?, probe_port?)
>

<!ELEMENT udp_probe (probe_failed?, probe_interval?, probe_retries?,
                     probe_receive?, probe_port?)
>

<!ELEMENT smtp_probe (probe_failed?, probe_interval?, probe_retries?,
                      probe_open?, probe_receive?, probe_port?,
                      probe_expect_status*)
>

<!ELEMENT telnet_probe (probe_failed?, probe_interval?, probe_retries?,
                        probe_open?, probe_receive?, probe_port?,
                        probe_expect_status*)
>

<!ELEMENT ftp_probe (probe_failed?, probe_interval?, probe_retries?,
                     probe_open?, probe_receive?, probe_port?,
                     probe_expect_status*)
>

<!ELEMENT script_probe (probe_failed?, probe_interval?, probe_retries?,
                        probe_open?, probe_receive?, probe_port?, script_ref?)
>

<!--
  probe_address must use mode "routed"
-->
<!ELEMENT kalap_udp_probe (probe_failed?, probe_interval?, probe_retries?,
                           probe_receive?, probe_port?, probe_address?,
                           probe_secret?)
>

<!--
  probe_address must use mode "routed"
-->
<!ELEMENT kalap_tcp_probe (probe_failed?, probe_interval?, probe_retries?,
                           probe_open?, probe_receive?, probe_port?,
                           probe_address?, probe_secret?)
>

<!ELEMENT probe (http_probe | dns_probe | icmp_probe | tcp_probe | udp_probe |
                 smtp_probe | telnet_probe | ftp_probe | script_probe |
                 kalap_udp_probe | kalap_tcp_probe)
>
<!ATTLIST probe
  sense (yes | no)                #IMPLIED
  name  CDATA                     #REQUIRED
  type  (http | dns | icmp | tcp | udp |
         smtp | telnet | ftp | script |
         kal-ap-udp | kal-ap-tcp)   #REQUIRED
>

<!--
*************************************************************
  Elements and attributes required for natpool
*************************************************************
-->

<!--
  Global maximum of 255 natpool addresses
-->
<!ELEMENT natpool EMPTY>
<!ATTLIST natpool
  sense    (yes | no) #IMPLIED
  name     CDATA      #REQUIRED
  first_ip NMTOKEN    #REQUIRED
  last_ip  NMTOKEN    #REQUIRED
  ipmask   NMTOKEN    #REQUIRED
>

<!--
*************************************************************
  Elements and attributes required by maps
*************************************************************
-->

<!--
  url is a string of length 1 to 200
  method is a string of length 1 to 15 (e.g. GET)
-->
<!ELEMENT url_rule EMPTY>
<!ATTLIST url_rule
  sense  (yes | no) #IMPLIED
  url    CDATA      #REQUIRED
  method CDATA      #IMPLIED
>

<!--
  name is a string of length 1 to 63
  expression is a string of length 1 to 127
-->
<!ELEMENT cookie_rule EMPTY>
<!ATTLIST cookie_rule
  sense      (yes | no) #IMPLIED
  name       CDATA      #REQUIRED
  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>
<!ATTLIST header_rule
  sense      (yes | no) #IMPLIED
  name       CDATA      #REQUIRED
  expression CDATA      #REQUIRED
  type       (match | insert) "match"
>

<!--
  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>
<!ATTLIST retcode_rule
  sense     (yes | no)             #IMPLIED
  min_code  NMTOKEN                #REQUIRED
  max_code  NMTOKEN                #REQUIRED
  action    (count | log | remove) #REQUIRED
  threshold NMTOKEN                #REQUIRED
  reset     NMTOKEN                "0"
>

<!--
  domain is a string of length 1 to 127
-->
<!ELEMENT dns_rule EMPTY>
<!ATTLIST dns_rule
  sense  (yes | no) #IMPLIED
  domain CDATA      #REQUIRED
>

<!--
  Maximum of 1023 url_rules per map
-->
<!ELEMENT url_map (url_rule*)>
<!ATTLIST url_map
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  Maximum of 5 cookie_rules per map
-->
<!ELEMENT cookie_map (cookie_rule*)>
<!ATTLIST cookie_map
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  Maximum of 5 header_rules per map
-->
<!ELEMENT header_map (header_rule*)>
<!ATTLIST header_map
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  Maximum of 100 retcodes (not ranges) per map
-->
<!ELEMENT retcode_map (retcode_rule*)>
<!ATTLIST retcode_map
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  Maximum of 16 dns_rules per map
-->
<!ELEMENT dns_map (dns_rule*)>
<!ATTLIST dns_map
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
*************************************************************
  Elements and attributes required for redirect_server
*************************************************************
-->

<!--
  value is between 1 and 65535
-->
<!ELEMENT ssl_port EMPTY>
<!ATTLIST ssl_port
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  string is of length 1 to 127
-->
<!ELEMENT redirect_relocate EMPTY>
<!ATTLIST redirect_relocate
  sense  (yes | no)  #IMPLIED
  string CDATA       #REQUIRED
  code   (301 | 302) "302"
>

<!--
  string is of length 1 to 127
-->
<!ELEMENT redirect_backup EMPTY>
<!ATTLIST redirect_backup
  sense  (yes | no)  #IMPLIED
  string CDATA       #REQUIRED
  code   (301 | 302) "302"
>

<!ELEMENT redirect_server (ssl_port?, redirect_relocate?, redirect_backup?,
                           inservice?)
>
<!ATTLIST redirect_server
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
*************************************************************
  Elements and attributes required for named_real_server
*************************************************************
-->

<!--
  string is of length 0 to 63
-->
<!ELEMENT location EMPTY>
<!ATTLIST location
  sense  (yes | no) #IMPLIED
  string CDATA      #REQUIRED
>

<!ELEMENT real_address EMPTY>
<!ATTLIST real_address
  sense     (yes | no) #IMPLIED
  ipaddress NMTOKEN    #REQUIRED
>

<!ELEMENT named_real_server (real_address?, location?)>
<!ATTLIST named_real_server
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
********************************************************
 Elements and attributes required for state element.
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT state EMPTY>
<!ATTLIST state 
value (outofservice | operational | standby | outofmemory |
backup_sfarm | init | zombie | closing | estab | synclient |
synserver | synboth | finclient | finserver | failed |
ready_to_test | testing | maxconns | dfp_throttled | 
probe_failed | probe_testing | health_failed | 
retcode_failed | pending | success |
active | unknown | outofsync | not_connected |
  trying_to_connect | connecting | connected | 
  security_error )   #IMPLIED
>

<!--
**************************************************************
 Elements and attributes required for connections_hits element.
 This is READ ONLY. 
**************************************************************
-->

<!ELEMENT connections_hits EMPTY>
<!ATTLIST connections_hits 
  value   NMTOKEN   #IMPLIED
>

<!--
**************************************************************
 Elements and attributes required for sticky_entry element.
 This is READ ONLY. 
**************************************************************
-->

<!--
id is between 1 and 255 
timeout is between 1 and 65535
ipmask required for ip types
cookie is a string of length 1 to 63, req for type=cookie or  cookie_insert 
header is a string of length 1 to 63, req for type=header
ip, cookie_hash1, cookie_hash2, ssl_hash1, ssl_hash2, 
header_hash1 and  header_hash2 are READ ONLY fields.
-->

<!ELEMENT sticky_entry (sticky_offset?, cookie_secondary?, 
                       static_sticky?, real_server?)>

<!ATTLIST sticky_entry
  id      		NMTOKEN             #REQUIRED
  timeout 		NMTOKEN             "1440"
  type    (ip | cookie | ssl |
          ip_src | ip_dest | ip_src_dest |
          cookie_insert | header) #REQUIRED
  ipmask  		NMTOKEN             #IMPLIED
  cookie  		CDATA               #IMPLIED
  header  		CDATA       	  #IMPLIED
  ip              NMTOKEN   	        #IMPLIED
  cookie_hash1   	NMTOKEN             #IMPLIED
  cookie_hash2   	NMTOKEN             #IMPLIED
  ssl_hash1       NMTOKEN             #IMPLIED
  ssl_hash2       NMTOKEN             #IMPLIED
  header_hash1  	NMTOKEN             #IMPLIED
  header_hash2  	NMTOKEN             #IMPLIED
>



<!--
*************************************************************
  Elements and attributes required for module_connection_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT module_connection_stats EMPTY>
<!ATTLIST module_connection_stats 
  created     NMTOKEN    #IMPLIED
  destroyed   NMTOKEN    #IMPLIED
  current     NMTOKEN    #IMPLIED
  time_out    NMTOKEN    #IMPLIED
  failed      NMTOKEN    #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for 
  server_initiated_connection_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT server_initiated_connection_stats EMPTY>
<!ATTLIST server_initiated_connection_stats 
  created      NMTOKEN    #IMPLIED
  current      NMTOKEN    #IMPLIED
  failed       NMTOKEN    #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for l4_lb_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT l4_lb_stats EMPTY>
<!ATTLIST l4_lb_stats 
  decisions    NMTOKEN        #IMPLIED
  drops        NMTOKEN        #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for l7_lb_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT l7_lb_stats EMPTY>
<!ATTLIST l7_lb_stats 
  decisions                        NMTOKEN        #IMPLIED
  total_drops                      NMTOKEN        #IMPLIED
  max_parse_length_reached_drops   NMTOKEN        #IMPLIED
  cookie_out_of_mem_drops          NMTOKEN        #IMPLIED
  config_version_mismatch_drops    NMTOKEN        #IMPLIED
  bas_ssl2_format_drops            NMTOKEN        #IMPLIED       
>

<!--
*************************************************************
  Elements and attributes required for l4_l7_lb_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT l4_l7_lb_stats EMPTY >
<!ATTLIST l4_l7_lb_stats 
  no_policy_drops          NMTOKEN    #IMPLIED
  no_policy_match_drops    NMTOKEN    #IMPLIED
  no_real_drops            NMTOKEN    #IMPLIED
  acl_denied_drops         NMTOKEN    #IMPLIED
  server_initiated_drops   NMTOKEN    #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for checksum_failures_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT checksum_failures_stats EMPTY>
<!ATTLIST checksum_failures_stats 
  ip     NMTOKEN     #IMPLIED
  tcp    NMTOKEN     #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for redirect_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT redirect_stats EMPTY>
<!ATTLIST redirect_stats
  connections    NMTOKEN    #IMPLIED
  drops          NMTOKEN    #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for ftp_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT ftp_stats EMPTY>
<!ATTLIST ftp_stats 
connections     NMTOKEN     #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for tx_frame_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT tx_frame_stats EMPTY>
<!ATTLIST tx_frame_stats 
  unicast             NMTOKEN #IMPLIED
  multicast           NMTOKEN #IMPLIED
  broadcast           NMTOKEN #IMPLIED
  underflow_errors    NMTOKEN #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for rx_frame_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT rx_frame_stats EMPTY>
<!ATTLIST rx_frame_stats 
  unicast          NMTOKEN     #IMPLIED
  multicast        NMTOKEN     #IMPLIED
  broadcast        NMTOKEN     #IMPLIED
  overflow_errors  NMTOKEN     #IMPLIED
  crc_errors       NMTOKEN     #IMPLIED
>


<!--
*************************************************************
  Elements and attributes required for mac_frames_stats.
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT mac_frames_stats (tx_frame_stats?, rx_frame_stats?)>


<!--
*************************************************************
  Elements and attributes required for stats. 
  This is READ ONLY.
*************************************************************
-->

<!ELEMENT stats(module_connection_stats?,
server_initiated_connection_stats?,l4_lb_stats?, l7_lb_stats?,
l4_l7_lb_stats?, checksum_failure_stats?, redirect_stats?, 
ftp_stats?, mac_frames_stats?)>


<!--
*************************************************************
  Elements and attributes required for real_server
*************************************************************
-->

<!--
  value is between 0 and 100
-->
<!ELEMENT weight EMPTY>
<!ATTLIST weight
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  value is between 1 and 4294967295
-->
<!ELEMENT minconns EMPTY>
<!ATTLIST minconns
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  value is between 2 and 254 (default is 254)
-->
<!ELEMENT load_threshold EMPTY>
<!ATTLIST load_threshold
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  tag is a string of length 0 to 32
-->
<!ELEMENT real_probe_ref EMPTY>
<!ATTLIST real_probe_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
  tag   CDATA      #IMPLIED
>

<!--
  either ipaddress or named_real_server_ref is required
  port is between 0 and 65535 (0 means no port translation)
-->
<!ELEMENT real_server_backup EMPTY>
<!ATTLIST real_server_backup
  sense                 (yes | no) #IMPLIED
  ipaddress             NMTOKEN    #IMPLIED
  named_real_server_ref CDATA      #IMPLIED
  port                  NMTOKEN    "0"
>

<!--
  either ipaddress or named_real_server_ref is required
  port is between 0 and 65535 (0 means no port translation)
  Global maximum of 4095 real_servers
-->
<!ELEMENT real_server (weight?, minconns?, maxconns?, load_threshold?,
                       real_probe_ref?, real_server_backup?, inservice?,
                       inservice_standby?, serverfarm_ref?, state?,
                       connections_hits?)
>
<!ATTLIST real_server
  sense                 (yes | no) #IMPLIED
  ipaddress             NMTOKEN    #IMPLIED
  named_real_server_ref CDATA      #IMPLIED
  port                  NMTOKEN    "0"
>

<!--
********************************************************
 Elements and attributes required for num_reals element 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT num_reals EMPTY>
<!ATTLIST num_reals 
  value 	NMTOKEN 	#IMPLIED
>

<!--
********************************************************
 Elements and attributes required for num_redirect element 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT num_redirect EMPTY>
<!ATTLIST num_redirect 
  value 	NMTOKEN 	#IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for serverfarm
*************************************************************
-->

<!ELEMENT retcode_map_ref EMPTY>
<!ATTLIST retcode_map_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  retries is between 0 and 65534
  failed is between 0 and 65535
-->
<!ELEMENT health EMPTY>
<!ATTLIST health
  sense     (yes | no) #IMPLIED
  retries   NMTOKEN    #REQUIRED
  failed    NMTOKEN    #REQUIRED
>

<!ELEMENT failaction EMPTY>
<!ATTLIST failaction
  sense (yes | no)         #IMPLIED
  value (purge | reassign) #REQUIRED
>

<!ELEMENT probe_ref EMPTY>
<!ATTLIST probe_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!ELEMENT natpool_ref EMPTY>
<!ATTLIST natpool_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!ELEMENT server_nat EMPTY>
<!ATTLIST server_nat
  sense (yes | no) #IMPLIED
>

<!--
  value is between 0 and 65533
-->
<!ELEMENT bind_id EMPTY>
<!ATTLIST bind_id
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  hash_ip_type and ipmask valid only when value = hash_ip
-->
<!ELEMENT predictor EMPTY>
<!ATTLIST predictor
  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 dns_predictor EMPTY>
<!ATTLIST dns_predictor
  sense        (yes | no)                     #IMPLIED
  value        (roundrobin | ordered-list |
                leastload | hash_domain |
                hash_ip | hash_ip_domain)     #REQUIRED
>

<!ELEMENT serverfarm (predictor?, natpool_ref?, server_nat?, health?,
                      bind_id?, retcode_map_ref?, failaction?,
redirect_server*, real_server*, probe_ref*,
num_reals?, num_redirect?)
>
<!ATTLIST serverfarm
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  real_server "port" attribute is ignored
-->
<!ELEMENT dns_serverfarm (dns_predictor?, real_server*, num_reals?)>
<!ATTLIST dns_serverfarm
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
  type  (dns-vip | dns-ns) #REQUIRED
>

<!--
*************************************************************
  Elements and attributes required for sticky_group
*************************************************************
-->

<!--
  src_ip and dest_ip are necessary for IP-based sticky_groups
  expression is necessary for SSL, cookie, and header-based sticky_groups
  expression is a string of length 0 to 127
-->
<!ELEMENT static_sticky EMPTY>
<!ATTLIST static_sticky
  sense      (yes | no) #IMPLIED
  real_ip    NMTOKEN    #REQUIRED
  expression NMTOKEN    #IMPLIED
  src_ip     NMTOKEN    #IMPLIED
  dest_ip    NMTOKEN    #IMPLIED
>

<!--
  This only applies to cookie and header-based sticky_groups
  offset is between 0 and 3999
  length is between 1 and 4000
-->
<!ELEMENT sticky_offset EMPTY>
<!ATTLIST sticky_offset
  sense (yes | no) #IMPLIED
  offset NMTOKEN   #REQUIRED
  length NMTOKEN   #REQUIRED
>

<!--
  This only applies to cookie-based sticky_groups
  name is a string of length 1 to 63
-->
<!ELEMENT cookie_secondary EMPTY>
<!ATTLIST cookie_secondary
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  id is between 1 and 255
  timeout is between 1 and 65535
  ipmask required for ip types
  cookie is a string of length 1 to 63, req for type=cookie or cookie_insert
  header is a string of length 1 to 63, req for type=header
  "ip" and "num_conns" are READ ONLY fields.
-->
<!ELEMENT sticky_group (sticky_offset?, cookie_secondary?, 
                        static_sticky?, real_server?)>
<!ATTLIST sticky_group
  sense   	(yes | no)          #IMPLIED
  id      	NMTOKEN             #REQUIRED
  timeout 	NMTOKEN             "1440"
  type    (ip | cookie | ssl |
           ip_src | ip_dest | ip_src_dest |
           cookie_insert | header) #REQUIRED
  ipmask  	NMTOKEN             #IMPLIED
  cookie  	CDATA               #IMPLIED
  header  	CDATA               #IMPLIED
  ip      	NMTOKEN             #IMPLIED
  num_conns 	NMTOKEN  	     #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for policy
*************************************************************
-->

<!ELEMENT url_map_ref EMPTY>
<!ATTLIST url_map_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!ELEMENT cookie_map_ref EMPTY>
<!ATTLIST cookie_map_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!ELEMENT header_map_ref EMPTY>
<!ATTLIST header_map_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!ELEMENT dns_map_ref EMPTY>
<!ATTLIST dns_map_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  order is between 1 and 3 (corresponds to "primary", "secondary", "tertiary")
  ttl is between 1 and 604800 (default is 20)
  response_count is between 1 and 8 (default is 1)
-->
<!ELEMENT dns_serverfarm_ref EMPTY>
<!ATTLIST dns_serverfarm_ref
  sense (yes | no) #IMPLIED
  order NMTOKEN    #REQUIRED
  name  CDATA      #REQUIRED
  ttl   NMTOKEN    #IMPLIED
  response_count NMTOKEN #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
  name CDATA   #IMPLIED
  id   NMTOKEN #IMPLIED
>

<!--
  id is between 1 and 255
-->
<!ELEMENT sticky_group_ref EMPTY>
<!ATTLIST sticky_group_ref
  sense (yes | no) #IMPLIED
  id    NMTOKEN    #REQUIRED
>

<!--
  value is between 0 and 63
-->
<!ELEMENT dscp EMPTY>
<!ATTLIST dscp
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!ELEMENT policy (serverfarm_ref?, client_group_ref?, sticky_group_ref?,
                  reverse_sticky?, dscp?, url_map_ref?, cookie_map_ref?,
                  header_map_ref?)
>
<!ATTLIST policy
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  Maximum of 3 dns_serverfarm_refs per dns_policy (one for each order)
-->
<!ELEMENT dns_policy (dns_serverfarm_ref*, client_group_ref?, dns_map_ref?)>
<!ATTLIST dns_policy
  sense (yes | no) #IMPLIED
  name CDATA       #REQUIRED
>

<!--
********************************************************
 Elements and attributes required for num_conns element. 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT num_conns EMPTY>
<!ATTLIST num_conns 
  value 	NMTOKEN 	#IMPLIED
>

<!--
********************************************************
 Elements and attributes required for arp element 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT arp EMPTY>
<!ATTLIST arp 
  macaddress 	NMTOKEN 	#IMPLIED
  ipaddress 	NMTOKEN 	#IMPLIED
  vlan_id  		NMTOKEN 	#IMPLIED
  type	  	NMTOKEN 	#IMPLIED
  status   		NMTOKEN 	#IMPLIED
  misses          NMTOKEN     #IMPLIED
>

<!--
***************************************************************
 Elements and attributes required for gslb_client_group element 
 This is READ ONLY. 
***************************************************************
-->

<!ELEMENT gslb_client_group EMPTY>
<!ATTLIST gslb_client_group  
  acl_name				CDATA		#IMPLIED
  acl_id				NMTOKEN    	#IMPLIED
  cl_grp_hit_count		NMTOKEN    	#IMPLIED
>

<!--
***************************************************************
 Elements and attributes required for gslb_dns element 
 This is READ ONLY. 
***************************************************************
-->

<!ELEMENT gslb_dns EMPTY>
<!ATTLIST gslb_dns 
  dns_queries_rcvd		NMTOKEN    	#IMPLIED
  dns_host_addr_query_rcvd	NMTOKEN    	#IMPLIED
  dns_responses_sent		NMTOKEN    	#IMPLIED
  dns_responses_no_err		NMTOKEN    	#IMPLIED
  dns_responses_err		NMTOKEN    	#IMPLIED
  dns_queries_unmatched		NMTOKEN    	#IMPLIED
  dns_drops				NMTOKEN    	#IMPLIED
  dns_ns_fwd_sent			NMTOKEN    	#IMPLIED
  dns_ns_fwd_resp_rcvd		NMTOKEN    	#IMPLIED
  dns_curr_req_per_sec		NMTOKEN    	#IMPLIED
  dns_peak_req_per_sec		NMTOKEN    	#IMPLIED  
>

<!--
********************************************************
 Elements and attributes required for gslb_probe element 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT gslb_probe EMPTY>
<!ATTLIST gslb_probe 
  probe_type   			CDATA    	#IMPLIED
  probe_successes      		NMTOKEN    	#IMPLIED
  probe_failures              NMTOKEN     #IMPLIED
  probe_pkts_sent     		NMTOKEN    	#IMPLIED
  probe_pkts_rcvd 		NMTOKEN    	#IMPLIED
>

<!--
********************************************************
 Elements and attributes required for gslb element 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT gslb (gslb_probe*, gslb_dns?, gslb_client_group?)>

<!--
********************************************************
 Elements and attributes required for probe_real element 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT probe_real (state?)>
<!ATTLIST probe_real 
  real_ip   	NMTOKEN    	#IMPLIED
  port      	NMTOKEN    	#IMPLIED
  probe_name     	CDATA    	#IMPLIED
  vserver_name 	CDATA   	#IMPLIED
  sfarm_name   	CDATA   	#IMPLIED
  policy_name  	CDATA   	#IMPLIED
  status       	CDATA   	#IMPLIED
  current      	CDATA   	#IMPLIED
  successes    	CDATA   	#IMPLIED
  last_success 	CDATA   	#IMPLIED
  failures     	CDATA   	#IMPLIED
  last_failure 	CDATA   	#IMPLIED
>

<!--
********************************************************
 Elements and attributes required for downloaded_config
 element . This is READ ONLY. 
********************************************************
-->

<!ELEMENT downloaded_config (state?)>

<!--
********************************************************
 Elements and attributes required for status element 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT status (downloaded_config?)>
<!ATTLIST status 
  slot 	NMTOKEN 	#IMPLIED
>

<!--
********************************************************
 Elements and attributes required for conns element 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT conns (state?)>
<!ATTLIST conns 
  type 		(in | out) 	#IMPLIED
  protocol   	NMTOKEN     #IMPLIED
  vlan       	NMTOKEN    	#IMPLIED
  src_port       	NMTOKEN    	#IMPLIED
  src_ip       	NMTOKEN    	#IMPLIED
  dest_port      	NMTOKEN    	#IMPLIED
  dest_ip      	NMTOKEN    	#IMPLIED  
  vname		NMTOKEN	#IMPLIED
  ftp		      NMTOKEN     #IMPLIED
  csrp		NMTOKEN     #IMPLIED
 >

<!--
********************************************************
 Elements and attributes required for memory element 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT memory EMPTY>
<!ATTLIST memory 
  vserver_name                CDATA      #IMPLIED
  error_string                NMTOKEN    #IMPLIED
  total_bytes                 NMTOKEN    #IMPLIED
  first_type_memory           NMTOKEN    #IMPLIED
  second_type_memory         NMTOKEN    #IMPLIED
  total_first_type_memory     NMTOKEN    #IMPLIED
  max_first_type_memory       NMTOKEN    #IMPLIED
  total_second_type_memory    NMTOKEN    #IMPLIED
  max_second_type_memory      NMTOKEN    #IMPLIED
 >

<!--
********************************************************
 Elements and attributes required for pvlan element 
 This is READ ONLY. 
********************************************************
-->

<!ELEMENT pvlan EMPTY>
<!ATTLIST pvlan 
  primary         NMTOKEN    #IMPLIED
  secondary       NMTOKEN    #IMPLIED
 >

<!--
********************************************************
 Elements and attributes required for clear_conns element 
 ********************************************************
-->

<!ELEMENT clear_conns (vserver?, real_server?)>
<!ATTLIST clear_conns 
  type    (vserver_name | real_ip)     #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for vserver
*************************************************************
-->

<!--
  protocol is between 0 and 255 (0 = any, 1 = icmp, 6 = tcp, 17 = udp)
  port is between 0 and 65535 (0 means any)
  ftp and termination service valid only for tcp protocol
  rtsp service valid for tcp and udp protocol
  per-packet service valid only for non-tcp protocols
-->
<!ELEMENT virtual EMPTY>
<!ATTLIST virtual
  sense     (yes | no)          #IMPLIED
  ipaddress NMTOKEN             #REQUIRED
  ipmask    NMTOKEN             "255.255.255.255"
  protocol  NMTOKEN             #REQUIRED
  port      NMTOKEN             #REQUIRED
  service   (none | ftp | rtsp |
             termination | per-packet) "none"
>

<!ELEMENT client EMPTY>
<!ATTLIST client
  sense     (yes | no) #IMPLIED
  ipaddress NMTOKEN    #REQUIRED
  ipmask    NMTOKEN    "255.255.255.255"
  exclude   (yes | no) "no"
>

<!--
  timeout is between 1 and 65535
  group is between 0 and 255 (if nonzero, refers to an ip sticky_group)
-->
<!ELEMENT sticky EMPTY>
<!ATTLIST sticky
  sense   (yes | no) #IMPLIED
  timeout NMTOKEN    #REQUIRED
  group   NMTOKEN    "0"
  ipmask  NMTOKEN    "255.255.255.255"
>

<!ELEMENT policy_ref EMPTY>
<!ATTLIST policy_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!ELEMENT dns_policy_ref EMPTY>
<!ATTLIST dns_policy_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  begin and end are strings, 0-length ok
  total length of begin and end should not exceed 200
-->
<!ELEMENT url_hash EMPTY>
<!ATTLIST url_hash
  sense (yes | no) #IMPLIED
  begin CDATA      #REQUIRED
  end   CDATA      #REQUIRED
>

<!--
  value is between 2 and 4094
-->
<!ELEMENT vlan_id EMPTY>
<!ATTLIST vlan_id
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  value is between 2 and 65535
-->
<!ELEMENT idle EMPTY>
<!ATTLIST idle
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  value is between 1 and 65535
-->
<!ELEMENT pending EMPTY>
<!ATTLIST pending
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!ELEMENT replicate_csrp EMPTY>
<!ATTLIST replicate_csrp
  sense (yes | no)            #IMPLIED
  value (sticky | connection) #REQUIRED
>

<!ELEMENT advertise EMPTY>
<!ATTLIST advertise
  sense (yes | no)        #IMPLIED
  value (always | active) #REQUIRED
>

<!ELEMENT persistent EMPTY>
<!ATTLIST persistent
  sense (yes | no) #IMPLIED
>

<!--
  value is between 1 and 4000
-->
<!ELEMENT parse_length EMPTY>
<!ATTLIST parse_length
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  string is of length 1 to 127
-->
<!ELEMENT domain EMPTY>
<!ATTLIST domain
  sense  (yes | no) #IMPLIED
  string CDATA      #REQUIRED
>

<!ELEMENT unidirectional EMPTY>
<!ATTLIST unidirectional
  sense (yes | no | default) #IMPLIED
>

<!ELEMENT owner_ref EMPTY>
<!ATTLIST owner_ref
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
  offset is between 0 and 3999
  length is between 1 and 4000
-->
<!ELEMENT ssl_sticky_offset EMPTY>
<!ATTLIST ssl_sticky_offset
  sense (yes | no) #IMPLIED
  offset NMTOKEN   #REQUIRED
  length NMTOKEN   #REQUIRED
>

<!--
  Maximum of 1023 domains per vserver
  Default idle is 3600
  Default pending is 30
-->
<!ELEMENT vserver (virtual?, vlan_id?, unidirectional?, owner_ref?,
                maxconns?, ssl_sticky_offset?, idle?, pending?,
                replicate_csrp?, advertise?, persistent?, parse_length?,
                inservice?, url_hash?, policy_ref*, domain*,                                  
                serverfarm_ref?, sticky?, reverse_sticky?, client*,
                num_conns?, state?)
>
<!ATTLIST vserver
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!ELEMENT dns_vserver (inservice?, dns_policy_ref*)>
<!ATTLIST dns_vserver
  sense (yes | no) #IMPLIED
  name  CDATA      #REQUIRED
>

<!--
*************************************************************
  Elements and attributes required for dfp.
  ip, password, anonymous_client, client_ip, client_port,
  Interval, messages, last_connect, security_erss,
  last_security_err are READ ONLY.
*************************************************************
-->

<!--
  port is between 1 and 65535
-->
<!ELEMENT dfp_manager EMPTY>
<!ATTLIST dfp_manager
  sense            (yes | no)     #IMPLIED
  port              NMTOKEN       #IMPLIED
  ip                NMTOKEN       #IMPLIED
  password          NMTOKEN       #IMPLIED
  anonymous_client  NMTOKEN       #IMPLIED
  client_ip         NMTOKEN       #IMPLIED
  client_port       NMTOKEN       #IMPLIED
  interval          NMTOKEN       #IMPLIED
  messages          NMTOKEN       #IMPLIED
  last_connect      NMTOKEN       #IMPLIED
  security_erss     NMTOKEN       #IMPLIED
  last_security_err NMTOKEN       #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).
  retries, security_errors, last_msg_recv are READ ONLY.
-->
<!ELEMENT dfp_agent (state?)>
<!ATTLIST dfp_agent
  sense        (yes | no)      #IMPLIED
  ipaddress        NMTOKEN        #IMPLIED
  port             NMTOKEN       #IMPLIED
  timeout          NMTOKEN       "0"
  retry            NMTOKEN       "0"
  interval         NMTOKEN       "180"
  retries          NMTOKEN       #IMPLIED
  security_errors  NMTOKEN       #IMPLIED
  last_msg_recv    NMTOKEN       #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for dfp_weight.
  This is READ ONLY.
*************************************************************
-->
<!ELEMENT dfp_weight EMPTY>
<!ATTLIST dfp_weight
  ip         NMTOKEN       #IMPLIED
  protocol   CDATA         #IMPLIED
  bind_id    NMTOKEN       #IMPLIED
  weight     NMTOKEN       #IMPLIED
  set_time   NMTOKEN       #IMPLIED
  agent_ip   NMTOKEN       #IMPLIED
  agent_port NMTOKEN       #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for dfp_password.
  This is READ ONLY.
*************************************************************
-->
<!ELEMENT dfp_password EMPTY>
<!ATTLIST dfp_password
  password CDATA      #IMPLIED
  pending  CDATA      #IMPLIED
  timeout  NMTOKEN    #IMPLIED
>

<!--
  password is a string of length 1 to 64
  timeout is between 0 and 65535
-->
<!ELEMENT dfp (dfp_password?, dfp_manager?, dfp_agent*, dfp_weight?)>
<!ATTLIST dfp
  sense    (yes | no) #IMPLIED
  password CDATA      #IMPLIED
  timeout  NMTOKEN    "180"
>



<!--
*************************************************************
  Elements and attributes required for udp_capp
*************************************************************
-->

<!--
  secret is a string of length 1 to 32.
  trans_frames, trans_bytes, trans_errors, recv_frames,
  recv_bytes, recv_errors are all READ ONLY.
-->
<!ELEMENT capp_options EMPTY>
<!ATTLIST capp_options
  sense      	(yes | no) #IMPLIED
  ipaddress  	NMTOKEN    #IMPLIED
  encryption 	(md5)      "md5"
  secret     	CDATA      #IMPLIED
  trans_frames 	NMTOKEN    #IMPLIED
  trans_bytes  	NMTOKEN    #IMPLIED
  trans_errors 	NMTOKEN    #IMPLIED
  recv_frames  	NMTOKEN    #IMPLIED
  recv_bytes   	NMTOKEN    #IMPLIED
  recv_errors 	NMTOKEN    #IMPLIED
>

<!--
  value is between 1 and 65535
-->
<!ELEMENT capp_port EMPTY>
<!ATTLIST capp_port
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!ELEMENT capp_secure EMPTY>
<!ATTLIST capp_secure
  sense (yes | no) #IMPLIED
>

<!--
  Maximum of 16 capp_options
  Default capp_port is 5002
-->
<!ELEMENT udp_capp (capp_port?, capp_secure?, capp_options*)>
<!ATTLIST udp_capp
  sense (yes | no) #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for ft
*************************************************************
-->

<!ELEMENT ft_preempt EMPTY>
<!ATTLIST ft_preempt
  sense (yes | no) #IMPLIED
>

<!--
  value is between 1 and 254
-->
<!ELEMENT ft_priority EMPTY>
<!ATTLIST ft_priority
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  value is between 1 and 65535
-->
<!ELEMENT ft_failover EMPTY>
<!ATTLIST ft_failover
  sense (yes | no) #IMPLIED
  value NMTOKEN #REQUIRED
>

<!--
  value is between 1 and 65535
-->
<!ELEMENT ft_heartbeat EMPTY>
<!ATTLIST ft_heartbeat
  sense (yes | no) #IMPLIED
  value NMTOKEN    #REQUIRED
>

<!--
  group is between 1 and 254
  vlan_id is between 2 and 4094, 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_failover is 3
  Default ft_heartbeat is 1
-->
<!ELEMENT ft (state?, ft_preempt?, ft_priority?, ft_failover?, ft_heartbeat?)>
<!ATTLIST ft
  sense   (yes | no) #IMPLIED
  group   NMTOKEN    #REQUIRED
  vlan_id NMTOKEN    #REQUIRED
>

<!--
*************************************************************
  Elements and attributes required for static_nat
  num_servers is READ ONLY field.
*************************************************************
-->

<!ELEMENT static_real EMPTY>
<!ATTLIST static_real
  sense      (yes | no) #IMPLIED
  ipaddress   NMTOKEN    #REQUIRED
  ipmask      NMTOKEN    "255.255.255.255"
  num_servers NMTOKEN  #IMPLIED
>

<!--
  ipaddress is required for type=ip
  Global maximum of 16383 static_reals
-->
<!ELEMENT static_nat (static_real*)>
<!ATTLIST static_nat
  sense     (yes | no)            #IMPLIED
  type      (drop | ip | virtual) #REQUIRED
  ipaddress NMTOKEN               #IMPLIED
>

<!--
*************************************************************
  Elements and attributes required for static_arp
*************************************************************
-->

<!--
  macaddress has the form "hhhh.hhhh.hhhh", where h is a hex digit
  vlan_id is between 2 and 4094
-->
<!ELEMENT static_arp EMPTY>
<!ATTLIST static_arp
  sense      (yes | no) #IMPLIED
  ipaddress  NMTOKEN    #REQUIRED
  macaddress NMTOKEN    #REQUIRED
  vlan_id    NMTOKEN    #REQUIRED
>

<!--
*****************************************************
 Elements and attributes required by show_vserver element
*****************************************************
-->

<!ELEMENT show_vserver EMPTY>
<!ATTLIST show_vserver
  redirect   (yes | no)  		#IMPLIED
  name       CDATA   			#IMPLIED
  config     (yes | no)  		#IMPLIED
  detail     (yes | no)  		#IMPLIED
  owner_name CDATA 			#IMPLIED
>
<!--
*****************************************************
 Elements and attributes required by show_serverfarm element
*****************************************************
-->

<!ELEMENT show_serverfarm EMPTY>
<!ATTLIST show_serverfarm
  name 	CDATA		  	#IMPLIED
  detail 	(yes | no) 		#IMPLIED
>

<!--
*****************************************************
 Elements and attributes required by show_real element
*****************************************************
-->

<!ELEMENT show_real EMPTY>
<!ATTLIST show_real
  location  CDATA   		#IMPLIED
  retcode   (yes | no)   	#IMPLIED
  sfarm     CDATA   		#IMPLIED
  detail    (yes | no)   	#IMPLIED
>
<!--
*****************************************************
 Elements and attributes required by show_vlan element
*****************************************************
-->

<!--
id is between 2 and 4094
-->
<!ELEMENT show_vlan EMPTY>
<!ATTLIST show_vlan
  detail 	( yes | no)   			#IMPLIED
  type   	( client | server | ft )	#IMPLIED
  id  	NMTOKEN				#IMPLIED
>

<!--
*****************************************************
 Elements and attributes required by show_conns element
*****************************************************
-->

<!ELEMENT show_conns EMPTY>
<!ATTLIST show_conns
  detail    ( yes | no)	#IMPLIED
  client_ip	NMTOKEN	#IMPLIED
  vserver 	CDATA   	#IMPLIED
>
<!--
*****************************************************
 Elements and attributes required by show_policy element
*****************************************************
-->

<!ELEMENT show_policy EMPTY>
<!ATTLIST show_policy
  name	     CDATA   	#IMPLIED
>
<!--
*****************************************************
 Elements and attributes required by show_map element
*****************************************************
-->

<!ELEMENT show_map EMPTY>
<!ATTLIST show_map
  name	 CDATA   					#IMPLIED
  detail 	( yes | no)					#IMPLIED
  type 	(header | cookie | retcode | url) 	#IMPLIED
>
<!--
*****************************************************
 Elements and attributes required by show_ft element
*****************************************************
-->

<!ELEMENT show_ft EMPTY>
<!ATTLIST show_ft
  detail 	( yes | no)   	#IMPLIED
>
<!--
*****************************************************
 Elements and attributes required by show_status element
*****************************************************
-->

<!ELEMENT show_status EMPTY>
<!ATTLIST show_status
  config     ( yes | no)   	#IMPLIED
>

<!--
*****************************************************
 Elements and attributes required by show_probe element
*****************************************************
-->

<!ELEMENT show_probe EMPTY>
<!ATTLIST show_probe
  detail 	( yes | no)   				#IMPLIED
  name	CDATA   					#IMPLIED
  type      (http | dns | icmp | tcp | udp |
            smtp | telnet | ftp | script |
                        kal-ap-udp | kal-ap-tcp | script )   		#IMPLIED
>

<!--
***********************************************************
 Elements and attributes required by show_probe_real element
***********************************************************
-->

<!ELEMENT show_probe_real EMPTY>
<!ATTLIST show_probe_real
  real_ip   NMTOKEN		#IMPLIED
>

<!--
*****************************************************
 Elements and attributes required by show_sticky element
*****************************************************
-->

<!--
group_no is between 1 and 255
-->

<!ELEMENT show_sticky EMPTY>
<!ATTLIST show_sticky
  client_ip NMTOKEN		#IMPLIED
  config	( yes | no)   	#IMPLIED
  group_id	NMTOKEN		#IMPLIED
  cookie    CDATA			#IMPLIED
  ssl       CDATA			#IMPLIED
>

<!--
*****************************************************
 Elements and attributes required by show_natpool element
*****************************************************
-->

<!ELEMENT show_natpool EMPTY>
<!ATTLIST show_natpool
  detail 	( yes | no)   	#IMPLIED
  name	CDATA 		#IMPLIED
>
<!--
*****************************************************
 Elements and attributes required by show_arp element
*****************************************************
-->

<!ELEMENT show_arp EMPTY>


<!--
*****************************************************
 Elements and attributes required by show_variable element
*****************************************************
-->

<!ELEMENT show_variable EMPTY>
<!ATTLIST show_variable
  detail 	( yes | no)   	#IMPLIED
  name	 CDATA   		#IMPLIED
>

<!--
*******************************************************
 Elements and attributes required by show_owner element
*******************************************************
-->
<!ELEMENT show_owner EMPTY>
<!ATTLIST show_owner
  detail 	( yes | no)   	#IMPLIED
  name	CDATA   		#REQUIRED
>

<!--
**********************************************************
 Elements and attributes required by show_xml_stats element
**********************************************************
-->
<!ELEMENT show_xml_stats EMPTY>
<!ATTLIST show_xml_stats
  detail 	( yes | no)		#IMPLIED
>

<!--

*****************************************************
 Elements and attributes required by show_memory element
*****************************************************
-->

<!ELEMENT show_memory EMPTY>
<!ATTLIST show_memory 
  vserver_name 	CDATA   	#IMPLIED
>

<!--
*****************************************************
 Elements and attributes required by show_pvlan element
*****************************************************
-->
<!ELEMENT show_pvlan EMPTY>

<!--
*****************************************************
 Elements and attributes required by show_stats element
*****************************************************
-->

<!ELEMENT show_stats EMPTY>

<!--
*****************************************************
 Elements and attributes required by show_capp element
*****************************************************
-->

<!ELEMENT show_capp EMPTY>
<!ATTLIST show_capp 
  udp 	( yes | no )   		#IMPLIED
  detail    ( yes | no )		#IMPLIED
>

<!--
*****************************************************
 Elements and attributes required by show_gslb element
*****************************************************
-->

<!ELEMENT show_gslb EMPTY>
<!ATTLIST show_gslb 
  probe 	( yes | no )   		#IMPLIED
  detail    ( yes | no )		#IMPLIED
  cl_group  ( yes | no )            #IMPLIED
>

<!--
*****************************************************
 Elements and attributes required by show_dfp element
*****************************************************
-->

<!ELEMENT show_dfp EMPTY>
<!ATTLIST show_dfp
  detail    ( yes | no )		#IMPLIED
  agent     ( yes | no )            #IMPLIED
  weights   ( yes | no )            #IMPLIED 
  manager   ( yes | no )            #IMPLIED
  ipaddress  NMTOKEN                #IMPLIED
  port       NMTOKEN                #IMPLIED
>

<!--
********************************************************
 Elements and attributes required by show_static_nat element
********************************************************
-->

<!ELEMENT show_static_nat EMPTY>
<!ATTLIST show_static_nat
  server    ( yes | no )            #IMPLIED
  nat_type  ( drop, vip, nat_ip )   #IMPLIED 
  server_ip  NMTOKEN                #IMPLIED
  ip         NMTOKEN                #IMPLIED
 >

<!--
********************************************************
 Elements and attributes required by show_script element
********************************************************
-->

<!ELEMENT show_script EMPTY>
<!ATTLIST show_script
  code    ( yes | no )            #IMPLIED
  file    CDATA                   #IMPLIED 
  name    CDATA                   #IMPLIED
>

<!--
********************************************************
 Elements and attributes required by show_script_task element
********************************************************
-->

<!ELEMENT show_script_task EMPTY>
<!ATTLIST show_script_task
  detail    ( yes | no )            #IMPLIED
  index     CDATA                   #IMPLIED 
  name      CDATA                   #IMPLIED
>

<!--
*************************************************************
  root definition for csm_module
*************************************************************
-->

<!--
  slot is between 1 and MAXSLOT (depends on chassis)
  Maximum of 4095 probes
  Maximum of 1023 url_maps
  Maximum of 1023 cookie_maps
  Maximum of 1023 header_maps
  Maximum of 1023 retcode_maps
  Maximum of 1023 dns_maps
  Maximum of 4095 serverfarms and dns_serverfarms
  Maximum of 255 sticky_groups (including those id=0 groups created
                                implicitly for vservers)
  Maximum of 4000 vservers and dns_vservers
  Maximum of 255 owners
  Maximum of 16383 static_arp entries
-->
<!ELEMENT csm_module (env_variable*, owner*, vlan*, script_file*, script_task*,
                      probe*, natpool*, url_map*, cookie_map*, header_map*,
                      retcode_map*, dns_map*, named_real_server*,
                      serverfarm*, dns_serverfarm*, sticky_group*,
                      policy*, dns_policy*, vserver*, dns_vserver*,
                      dfp?, udp_capp?, ft?, static_nat*, static_arp*)
>
<!ATTLIST csm_module
  sense (yes | no) #IMPLIED
  slot  NMTOKEN    #REQUIRED
>

<!--
*************************************************************
  actions
*************************************************************
-->

<!--
  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.  See valid error types below.  Default is 0x0048.
  dtd_version is a string that specifies the set of
    configurable CSM features, and should match the CSM version
    specified at the top of this DTD.  Default is "2.2".
    Note that if the version is higher than the CSM can
    handle, an error may be returned.  In most cases,
    the CSM will do its best to interpret the document,
    even if dtd_version is missing or higher than expected.
-->
<!ELEMENT config (csm_module)>
<!ATTLIST config
  error_tolerance NMTOKEN #IMPLIED
  dtd_version     NMTOKEN #IMPLIED

<!--
**************
In case of error, the response document will include an "error" child element
in the offending element.  The error element takes the form:
<!ELEMENT error EMPTY>
<!ATTLIST error
  code NMTOKEN #REQUIRED
>
The body of the error element is a description string.
Attribute "code" is a hex value representing a mask of possible error codes:
    XML_ERR_INTERNAL          = 0x0001 /* internal memory or coding error */
    XML_ERR_COMM_FAILURE      = 0x0002 /* communication failure */
    XML_ERR_WELLFORMEDNESS    = 0x0004 /* not a wellformed XML document */
    XML_ERR_ATTR_UNRECOGNIZED = 0x0008 /* found an unrecognized attribute */
    XML_ERR_ATTR_INVALID      = 0x0010 /* found invalid value in attribute */
    XML_ERR_ATTR_MISSING      = 0x0020 /* required attribute missing */
    XML_ERR_ELEM_UNRECOGNIZED = 0x0040 /* found an unrecognized element */
    XML_ERR_ELEM_INVALID      = 0x0080 /* found invalid element */
    XML_ERR_ELEM_MISSING      = 0x0100 /* required element missing */
    XML_ERR_ELEM_CONTEXT      = 0x0200 /* valid element found in wrong place */
    XML_ERR_IOS_PARSER        = 0x0400 /* IOS unable to parse command */
    XML_ERR_IOS_MODULE_IN_USE = 0x0800 /* Another user is configuring CSM */
    XML_ERR_IOS_WRONG_MODULE  = 0x1000 /* Tried to configure unavailable CSM */
    XML_ERR_IOS_CONFIG        = 0x2000 /* IOS configuration error */
**************
-->