aboutsummaryrefslogtreecommitdiffstats
path: root/diameter
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2005-09-29 02:20:29 +0000
committerGuy Harris <guy@alum.mit.edu>2005-09-29 02:20:29 +0000
commita275cd2495144bf5bf00d26c3cf5d26c5f69fbd8 (patch)
tree0072cf00502222c5aa6fe2b0fc7debb4326c71b2 /diameter
parent7aa4b4ffe1f575bbb50f03e012b6f77dd5ab02f0 (diff)
Move the Diameter dictionary files to a "diameter" subdirectory, along
the lines of what's done for RADIUS. That keeps them together (and separate from other files), and makes the layout of the top-level source directory closer to the layout of the installation directory, so that if you run Ethereal or Tethereal from the top-level directory on Windows it'll pick up the Diameter dictionary files (if it supports loading them), and can do so on UN*X if we support a mechanism to let it find its control files in the directory in which the binary resides. Use the diameter_DATA, dtds_DATA, and radius_DATA macros in the EXTRA_DIST macro, so you only have to change the lists of Diameter, DTD, and RADIUS files in one place if you add or remove a file. svn path=/trunk/; revision=16050
Diffstat (limited to 'diameter')
-rw-r--r--diameter/dictionary.dtd74
-rw-r--r--diameter/dictionary.xml707
-rw-r--r--diameter/imscxdx.xml147
-rw-r--r--diameter/mobileipv4.xml62
-rw-r--r--diameter/nasreq.xml291
-rw-r--r--diameter/sunping.xml22
6 files changed, 1303 insertions, 0 deletions
diff --git a/diameter/dictionary.dtd b/diameter/dictionary.dtd
new file mode 100644
index 0000000000..6285108f5d
--- /dev/null
+++ b/diameter/dictionary.dtd
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ $Log: dictionary.dtd,v $
+ Revision 1.1 2001/11/01 21:52:44 guy
+ From David Frascone: duUpdate to Diameter dissector to load the
+ dictionary as an XML file rather than building it in, and various
+ Diameter updates.
+
+ Revision 1.1 2001/08/24 18:04:44 chaos
+ Added per Mark's request
+
+ Revision 1.3 2001/07/31 17:43:36 chaos
+ Oops, forgot to turn on validity checking. Fixed some errors found with validity checking turned on
+
+ Revision 1.2 2001/07/31 16:56:15 chaos
+ Lots of changes to support flags like in the draft, and to support commands
+
+-->
+<!ELEMENT dictionary (base, application*)>
+<!ELEMENT base (command*, vendor*, typedefn+, avp+)>
+<!ATTLIST base
+ uri CDATA #IMPLIED
+>
+
+<!ELEMENT application (command*, vendor*, typedefn*, avp*)>
+<!ATTLIST application
+ id CDATA #REQUIRED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+>
+<!ELEMENT command (#PCDATA)>
+<!ATTLIST command
+ name CDATA #REQUIRED
+ code CDATA #REQUIRED
+ vendor-id IDREF #IMPLIED
+>
+<!ELEMENT vendor EMPTY>
+<!ATTLIST vendor
+ vendor-id ID #REQUIRED
+ code CDATA #REQUIRED
+ name CDATA #IMPLIED
+>
+<!ELEMENT typedefn EMPTY>
+<!ATTLIST typedefn
+ type-name ID #REQUIRED
+ type-parent IDREF #IMPLIED
+ description CDATA #IMPLIED
+>
+<!ELEMENT avp ((type | grouped), (enum*))>
+<!ATTLIST avp
+ name ID #REQUIRED
+ description CDATA #IMPLIED
+ code CDATA #REQUIRED
+ may-encrypt (yes | no) "yes"
+ mandatory (must | may | mustnot | shouldnot) "may"
+ protected (must | may | mustnot | shouldnot) "may"
+ vendor-bit (must | may | mustnot | shouldnot) "mustnot"
+ vendor-id IDREF #IMPLIED
+ constrained (true | false) "false"
+>
+<!ELEMENT type EMPTY>
+<!ATTLIST type
+ type-name IDREF #REQUIRED
+>
+<!ELEMENT grouped (gavp+)>
+<!ELEMENT gavp EMPTY>
+<!ATTLIST gavp
+ name IDREF #REQUIRED
+>
+<!ELEMENT enum EMPTY>
+<!ATTLIST enum
+ name CDATA #REQUIRED
+ code CDATA #REQUIRED
+>
diff --git a/diameter/dictionary.xml b/diameter/dictionary.xml
new file mode 100644
index 0000000000..f04f488270
--- /dev/null
+++ b/diameter/dictionary.xml
@@ -0,0 +1,707 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dictionary SYSTEM "dictionary.dtd" [
+ <!ENTITY nasreq SYSTEM "nasreq.xml">
+ <!ENTITY mobileipv4 SYSTEM "mobileipv4.xml">
+ <!ENTITY sunping SYSTEM "sunping.xml">
+ <!ENTITY imscxdx SYSTEM "imscxdx.xml">
+]>
+<dictionary>
+ <base uri="http://www.ietf.org/rfc/rfc3588.txt">
+ <!--
+ $Log: dictionary.xml,v $
+ Revision 1.1 2001/11/01 21:52:44 guy
+ From David Frascone: duUpdate to Diameter dissector to load the
+ dictionary as an XML file rather than building it in, and various
+ Diameter updates.
+
+ Revision 1.7 2001/08/24 18:03:24 chaos
+ Mark's Changes
+
+ Revision 1.6 2001/07/31 19:13:55 chaos
+ Missed a couple of MIP AVPs
+
+ Revision 1.5 2001/07/31 19:09:22 chaos
+ Added Mobile-Ip and Sun Ping Extension
+
+ Revision 1.4 2001/07/31 17:43:25 chaos
+ Oops, forgot to turn on validity checking. Fixed some errors found with validity checking turned on
+
+ Revision 1.3 2001/07/31 16:56:31 chaos
+ Added commands, and validated with xmllint
+
+ Revision 1.2 2001/07/31 16:29:34 chaos
+ Checking in some changes to verify log and ident strings
+
+-->
+ <!-- *********************** Commands ***************************** -->
+ <!-- Diameter Base Protocol Command Codes -->
+ <command name="Abort-Session" code="274" vendor-id="None">
+ <!-- Maybe some avp stuff here one day -->
+ </command>
+ <command name="Accounting" code="271" vendor-id="None"/>
+ <command name="Capabilities-Exchange" code="257" vendor-id="None"/>
+ <command name="Device-Watchdog" code="280" vendor-id="None"/>
+ <command name="Disconnect-Peer" code="282" vendor-id="None"/>
+ <command name="Re-Auth" code="258" vendor-id="None"/>
+ <command name="Session-Termination" code="275" vendor-id="None"/>
+ <!-- ********************** End Commands ************************** -->
+
+ <!-- ************************* Vendors **************************** -->
+ <vendor vendor-id="None" code="0" name="None"/>
+ <vendor vendor-id="HP" code="11" name="Hewlett Packard"/>
+ <vendor vendor-id="Merit" code="61" name="Merit Networks"/>
+ <vendor vendor-id="Sun" code="42" name="Sun Microsystems, Inc."/>
+ <vendor vendor-id="USR" code="429" name="US Robotics Corp."/>
+ <vendor vendor-id="TGPP" code="10415" name="3GPP"/>
+ <!-- *********************** End Vendors ************************** -->
+
+ <!-- ************************ typedefn's ************************** -->
+ <typedefn type-name="OctetString"/>
+ <!--
+ The data contains arbitrary data of variable length. Unless
+ otherwise noted, the AVP Length field MUST be set to at least 9
+ (13 if the 'V' bit is enabled). Data used to transmit (human
+ readable) character string data uses the UTF-8 [24] character
+ set and is NOT NULL-terminated. The minimum Length field MUST
+ be 9, but can be set to any value up to 65504 bytes. AVP Values
+ of this type that do not align on a 32-bit boundary MUST have
+ the necessary padding.
+ -->
+ <typedefn type-name="UTF8String" type-parent="OctetString"/>
+ <!--
+ The UTF8String format is derived from the OctetString AVP Base
+ Format. This is a human readable string represented using the
+ ISO/IEC IS 10646-1 character set, encoded as an OctetString
+ using the UTF-8 [29] transformation format described in RFC
+ 2279.
+
+ Since additional code points are added by amendments to the
+ 10646 standard from time to time, implementations MUST be
+ prepared to encounter any code point from 0x00000001 to
+ 0x7fffffff. Byte sequences that do not correspond to the valid
+ UTF-8 encoding of a code point or are outside this range are
+ prohibited. Note that since a code point of 0x00000000 is
+ prohibited, no octet will contain a value of 0x00.
+
+ The use of control codes SHOULD be avoided. When it is
+ necessary to represent a newline, the control code sequence CR
+ LF SHOULD be used.
+
+ The use of leading or trailing white space SHOULD be avoided.
+
+ For code points not directly supported by user interface
+ hardware or software, an alternative means of entry and
+ display, such as hexadecimal, MAY be provided.
+
+ For information encoded in 7-bit US-ASCII, the UTF-8 encoding
+ is identical to the US-ASCII encoding.
+
+ UTF-8 may require multiple bytes to represent a single
+ character / code point; thus the length of a UTF8String in
+ octets may be different from the number of characters encoded.
+
+ Note that the size of an UTF8String is measured in octets, not
+ characters.
+
+ The UTF8String MUST not contain any octets with a value of
+ zero.
+ -->
+ <typedefn type-name="IPAddress" type-parent="OctetString"/>
+ <!--
+ The IPAddress format is derived from the OctetString AVP Base
+ Format. It represents 32 bit (IPv4) [17] or 128 bit (IPv6) [16]
+ address, most significant octet first. The format of the
+ address (IPv4 or IPv6) is determined by the length. If the
+ attribute value is an IPv4 address, the AVP Length field MUST
+ be 12 (16 if 'V' bit is enabled), otherwise the AVP Length
+ field MUST be set to 24 (28 if the 'V' bit is enabled) for IPv6
+ addresses.
+ -->
+ <typedefn type-name="DiameterIdentity" type-parent="OctetString"/>
+ <!--
+ The DiameterIdentity format is derived from the OctetString AVP
+ Base Format. It uses the UTF-8 encoding and has the same
+ requirements as the UTF8String. In addition, it must follow
+ the Uniform Resource Identifiers (URI) syntax [29] rules
+ specified below:
+
+ Diameter-Identity = fqdn [ port ] [ transport ]
+ [ protocol ]
+
+ aaa-protocol = ( "diameter" | "radius" | "tacacs+" )
+
+ protocol = ";protocol=" aaa-protocol
+ ; If absent, the default AAA protocol
+ ; is diameter.
+
+ fqdn = Fully Qualified Host Name
+
+ port = ":" 1*DIGIT
+ ; One of the ports used to listen for
+ ; incoming connections. ; If absent,
+ ; the default Diameter port (TBD) is
+ ; assumed.
+
+ transport-protocol = ( "tcp" | "sctp" | "udp" )
+
+ transport = ";transport=" transport-protocol
+
+ ; One of the transports used to listen
+ ; for incoming connections. If absent,
+ ; the default SCTP [26] protocol is
+ ; assumed. UDP MUST NOT be used when
+ ; the aaa-protocol field is set to
+ ; diameter.
+
+ The following are examples of valid Diameter host
+ identities:
+
+ host.abc.com;transport=tcp
+ host.abc.com:6666;transport=tcp
+ aaa://host.abc.com;protocol=diameter
+ aaa://host.abc.com:6666;protocol=diameter
+ aaa://host.abc.com:6666;transport=tcp;protocol=diameter
+ aaa://host.abc.com:1813;transport=udp;protocol=radius
+
+ Since multiple Diameter processes on a single host cannot
+ listen for incoming connections on the same port on a given
+ protocol, the DiameterIdentity is guaranteed to be unique per
+ host.
+
+ A Diameter node MAY advertise different identities on each
+ connection, via the CER and CEA's Origin-Host AVP, but the same
+ identity MUST be used throughout the duration of a connection.
+
+ When comparing AVPs of this format, it is necessary to add any
+ absent fields with the default values prior to the comparison.
+ For example, diameter-host.abc.com would be expanded to
+ aaa://diameter/diameter-host.abc.com:TBD;protocol=sctp.
+ -->
+ <typedefn type-name="IPFilterRule" type-parent="OctetString"/>
+ <!--
+ The IPFilterRule format is derived from the OctetString AVP
+ Base Format. It uses the UTF-8 encoding and has the same
+ requirements as the UTF8String. Packets may be filtered based
+ on the following information that is associated with it:
+
+ Direction (in or out)
+ Source and destination IP address (possibly masked)
+ Protocol
+ Source and destination port (lists or ranges)
+ TCP flags
+ IP fragment flag
+ IP options
+ ICMP types
+
+ Rules for the appropriate direction are evaluated in order,
+ with the first matched rule terminating the evaluation. Each
+ packet is evaluated once. If no rule matches, the packet is
+ dropped if the last rule evaluated was a permit, and passed if
+ the last rule was a deny.
+
+ IPFilterRule filters MUST follow the format:
+
+ action dir proto from src to dst [options]
+
+ action permit - Allow packets that match the rule.
+ deny - Drop packets that match the rule.
+
+ dir "in" is from the terminal, "out" is to the
+ terminal.
+
+ proto An IP protocol specified by number. The "ip"
+ keyword means any protocol will match.
+
+ src and dst <address/mask> [ports]
+
+ The <address/mask> may be specified as:
+ ipno An IPv4 or IPv6 number in dotted-
+ quad or canonical IPv6 form. Only
+ this exact IP number will match the
+ rule.
+ ipno/bits An IP number as above with a mask
+ width of the form 1.2.3.4/24. In
+ this case all IP numbers from
+ 1.2.3.0 to 1.2.3.255 will match.
+ The bit width MUST be valid for the
+ IP version and the IP number MUST
+ NOT have bits set beyond the mask.
+
+ The sense of the match can be inverted by
+ preceding an address with the not modifier,
+ causing all other addresses to be matched
+ instead. This does not affect the selection of
+ port numbers.
+
+ The keyword "any" is 0.0.0.0/0 or the IPv6
+ equivalent. The keyword "assigned" is the
+ address or set of addresses assigned to the
+ terminal. The first rule SHOULD be "deny in
+ ip !assigned".
+
+ With the TCP, UDP and SCTP protocols, optional
+ ports may be specified as:
+
+ {port|port-port}[,port[,...]]
+
+ The `-' notation specifies a range of ports
+ (including boundaries).
+
+ Fragmented packets which have a non-zero offset
+ (i.e. not the first fragment) will never match
+ a rule which has one or more port
+ specifications. See the frag option for
+ details on matching fragmented packets.
+
+ options:
+ frag Match if the packet is a fragment and this is not
+ the first fragment of the datagram. frag may not
+ be used in conjunction with either tcpflags or
+ TCP/UDP port specifications.
+
+ ipoptions spec
+ Match if the IP header contains the comma
+ separated list of options specified in spec. The
+ supported IP options are:
+
+ ssrr (strict source route), lsrr (loose source
+ route), rr (record packet route) and ts
+ (timestamp). The absence of a particular option
+ may be denoted with a `!'.
+
+ tcpoptions spec
+ Match if the TCP header contains the comma
+ separated list of options specified in spec. The
+ supported TCP options are:
+
+ mss (maximum segment size), window (tcp window
+ advertisement), sack (selective ack), ts (rfc1323
+ timestamp) and cc (rfc1644 t/tcp connection
+ count). The absence of a particular option may
+ be denoted with a `!'.
+
+ established
+ TCP packets only. Match packets that have the RST
+ or ACK bits set.
+
+ setup TCP packets only. Match packets that have the SYN
+ bit set but no ACK bit.
+
+ tcpflags spec
+ TCP packets only. Match if the TCP header
+ contains the comma separated list of flags
+ specified in spec. The supported TCP flags are:
+
+ fin, syn, rst, psh, ack and urg. The absence of a
+ particular flag may be denoted with a `!'. A rule
+ which contains a tcpflags specification can never
+ match a fragmented packet which has a non-zero
+ offset. See the frag option for details on
+ matching fragmented packets.
+
+ icmptypes types
+ ICMP packets only. Match if the ICMP type is in
+ the list types. The list may be specified as any
+ combination of ranges or individual types
+ separated by commas. The supported ICMP types
+ are:
+
+ echo reply (0), destination unreachable (3),
+ source quench (4), redirect (5), echo request
+ (8), router advertisement (9), router
+ solicitation (10), time-to-live exceeded (11), IP
+ header bad (12), timestamp request (13),
+ timestamp reply (14), information request (15),
+ information reply (16), address mask request (17)
+ and address mask reply (18).
+
+ There is one kind of packet that the access device MUST always
+ discard, that is an IP fragment with a fragment offset of one.
+ This is a valid packet, but it only has one use, to try to
+ circumvent firewalls.
+
+ An access device that is unable to interpret or apply a deny
+ rule MUST terminate the session. An access device that is
+ unable to interpret or apply a permit rule MAY apply a more
+ restrictive rule. An access device MAY apply deny rules of
+ its own before the supplied rules, for example to protect
+ the access device owner's infrastructure.
+
+ The rule syntax is a modified subset of ipfw(8) from FreeBSD,
+ and the ipfw.c code may provide a useful base for
+ implementations.
+ -->
+ <typedefn type-name="QOSFilterRule" type-parent="OctetString"/>
+ <!--
+ The QosFilterRule format is derived from the OctetString AVP
+ Base Format. It uses the UTF-8 encoding and has the same
+ requirements as the UTF8String. Packets may be marked or
+ metered based on the following information that is associated
+ with it:
+
+ Direction (in or out)
+ Source and destination IP address (possibly masked)
+ Protocol
+ Source and destination port (lists or ranges)
+ DSCP values (no mask or range)
+
+ Rules for the appropriate direction are evaluated in order,
+ with the first matched rule terminating the evaluation. Each
+ packet is evaluated once. If no rule matches, the packet is
+ treated as best effort.
+
+ QoSFilterRule filters MUST follow the format:
+
+ action dir proto from src to dst [options]
+
+ tag - Mark packet with a specific DSCP [49].
+ The DSCP option MUST be included.
+
+ meter - Meter traffic. The metering options
+ MUST be included.
+
+ dir "in" is from the terminal, "out" is to the
+ terminal.
+
+ proto An IP protocol specified by number. The "ip"
+ keyword means any protocol will match.
+
+ src and dst <address/mask> [ports]
+
+ The <address/mask> may be specified as:
+ ipno An IPv4 or IPv6 number in dotted-
+ quad or canonical IPv6 form. Only
+ this exact IP number will match the
+ rule.
+ ipno/bits An IP number as above with a mask
+ width of the form 1.2.3.4/24. In
+ this case all IP numbers from
+ 1.2.3.0 to 1.2.3.255 will match.
+ The bit width MUST be valid for the
+ IP version and the IP number MUST
+ NOT have bits set beyond the mask.
+
+ The sense of the match can be inverted by
+ preceding an address with the not modifier,
+ causing all other addresses to be matched
+ instead. This does not affect the selection of
+ port numbers.
+
+ The keyword "any" is 0.0.0.0/0 or the IPv6
+ equivalent. The keyword "assigned" is the
+ address or set of addresses assigned to the
+ terminal. The first rule SHOULD be "deny in
+ ip !assigned".
+
+ With the TCP, UDP and SCTP protocols, optional
+ ports may be specified as:
+
+ {port|port-port}[,port[,...]]
+
+ The `-' notation specifies a range of ports
+ (including boundaries).
+
+ options:
+
+ DSCP <color>
+ color values as defined in [49]. Exact matching
+ of DSCP values is required (no masks or ranges).
+ the "deny" can replace the color_under or
+ color_over values in the meter action for rate-
+ dependent packet drop.
+
+ metering <rate> <color_under> <color_over>
+ The metering option provides Assured Forwarding,
+ as defined in [50], and MUST be present if the
+ action is set to meter. The rate option is the
+ throughput, in bits per second, which is used by
+ the access device to mark packets. Traffic above
+ the rate is marked with the color_over codepoint,
+ while traffic under the rate is marked with the
+ color_under codepoint. The color_under and
+ color_over options contain the drop preferences,
+ and MUST conform to the recommended codepoint
+ keywords described in [50] (e.g. AF13).
+
+ The metering option also supports the strict
+ limit on traffic required by Expedited
+ Forwarding, as defined in [51]. The color_over
+ option may contain the keyword "drop" to prevent
+ forwarding of traffic that exceeds the rate
+ parameter.
+
+ The rule syntax is a modified subset of ipfw(8) from FreeBSD,
+ and the ipfw.c code may provide a useful base for
+ implementations.
+
+ -->
+ <typedefn type-name="MIPRegistrationRequest" type-parent="OctetString"/>
+
+ <typedefn type-name="Integer32"/>
+ <!--
+ 32 bit signed value, in network byte order. The AVP Length
+ field MUST be set to 12 (16 if the 'V' bit is enabled).
+ -->
+ <typedefn type-name="VendorId" type-parent="Integer32"/>
+ <typedefn type-name="AppId" type-parent="Integer32"/>
+ <typedefn type-name="Integer64"/>
+ <!--
+ 64 bit signed value, in network byte order. The AVP Length
+ field MUST be set to 16 (20 if the 'V' bit is enabled).
+ -->
+ <typedefn type-name="Unsigned32"/>
+ <!--
+ 32 bit unsigned value, in network byte order. The AVP Length
+ field MUST be set to 12 (16 if the 'V' bit is enabled).
+ Unsigned32 values used to transmit time data contains the four
+ most significant octets returned from NTP [18], in network byte
+ order.
+ -->
+ <typedefn type-name="Time"/>
+ <!--
+ The Time format is derived from the Unsigned32 AVP Base Format.
+ This is 32 bit unsigned value containing the four most
+ significant octets returned from NTP [18], in network byte
+ order.
+
+ This represent the number of seconds since 0h on 1 January 1900
+ with respect to the Coordinated Universal Time (UTC).
+
+ On 6h 28m 16s UTC, 7 February 2036 the time value will
+ overflow. NTP [18] describes a procedure to extend the time to
+ 2104.
+ -->
+ <typedefn type-name="Unsigned64"/>
+ <!--
+ 64 bit unsigned value, in network byte order. The AVP Length
+ field MUST be set to 16 (20 if the 'V' bit is enabled).
+ -->
+ <!-- ************************* End Typedefns ************************ -->
+ <!-- ******************* DIAMETER BASE PROTOCOL AVPS ************************ -->
+ <avp name="Accounting-Interim-Interval" code="482" mandatory="must" may-encrypt="yes" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Accounting-Multi-Session-Id" code="50" mandatory="must" protected="may" may-encrypt="yes" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Accounting-Record-Number" code="485" mandatory="must" may-encrypt="yes" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Accounting-Record-Type" code="480" mandatory="must" may-encrypt="yes" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ <enum name="Event Record" code="1"/>
+ <enum name="Start Record" code="2"/>
+ <enum name="Interim Record" code="3"/>
+ <enum name="Stop Record" code="4"/>
+ </avp>
+ <avp name="Accounting-Session-Id" code="44" mandatory="must" protected="may" may-encrypt="yes" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Acct-Application-Id" code="259" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="AppId"/>
+ </avp>
+ <avp name="Alternate-Peer" code="275" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Auth-Application-Id" code="258" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="AppId"/>
+ </avp>
+ <avp name="Auth-Request-Type" code="274" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ <enum name="Authenticate Only" code="1"/>
+ <enum name="Authorize Only" code="2"/>
+ <enum name="Authorize Authenticate" code="3"/>
+ </avp>
+ <avp name="Authorization-Lifetime" code="291" mandatory="must" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Auth-Grace-Period" code="276" mandatory="must" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Auth-Session-State" code="277" mandatory="must" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ <enum name="State Maintained" code="0"/>
+ <enum name="No State Maintained" code="1"/>
+ </avp>
+ <avp name="Re-Auth-Request-Type" code="285" mandatory="must" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ <enum name="Authorize Only" code="0"/>
+ <enum name="Authorize Authenticate" code="1"/>
+ </avp>
+ <avp name="Destination-Host" code="293" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Destination-Realm" code="283" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="Disconnect-Cause" code="273" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ <enum name="Rebooting" code="0"/>
+ <enum name="Busy" code="1"/>
+ <enum name="Do not want to talk to you" code="2"/>
+ </avp>
+ <avp name="Error-Message" code="281" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="Error-Reporting-Host" code="294" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Failed-AVP" code="279" mandatory="must" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Firmware-Revision" code="267" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Host-IP-Address" code="257" mandatory="must" protected="mustnot" may-encrypt="no" vendor-bit="mustnot">
+ <type type-name="IPAddress"/>
+ </avp>
+ <avp name="Multi-Round-Time-Out" code="272" mandatory="must" may-encrypt="yes" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Origin-Host" code="264" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Origin-Realm" code="296" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="Origin-State-Id" code="278" mandatory="must" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Product-Name" code="269" mandatory="mustnot" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="Proxy-Host" code="280" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Proxy-Info" code="284" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Redirect-Host" code="292" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Redirect-Host-Usage" code="261" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ <enum name="Don't Care" code="0"/>
+ <enum name="All Session" code="1"/>
+ <enum name="All Realm" code="2"/>
+ <enum name="Realm and Application" code="3"/>
+ <enum name="All Application" code="4"/>
+ <enum name="All Host" code="5"/>
+ </avp>
+ <avp name="Redirect-Max-Cache-Time" code="262" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Result-Code" code="268" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ <enum name="DIAMETER_MULTI_ROUND_AUTH" code="1001"/>
+ <enum name="DIAMETER_SUCCESS" code="2001"/>
+ <enum name="DIAMETER_LIMITED_SUCCESS" code="2002"/>
+ <enum name="DIAMETER_COMMAND_UNSUPPORTED" code="3001"/>
+ <enum name="DIAMETER_UNABLE_TO_DELIVER" code="3002"/>
+ <enum name="DIAMETER_REALM_NOT_SERVED" code="3003"/>
+ <enum name="DIAMETER_TOO_BUSY" code="3004"/>
+ <enum name="DIAMETER_LOOP_DETECTED" code="3005"/>
+ <enum name="DIAMETER_REDIRECT_INDICATION" code="3006"/>
+ <enum name="DIAMETER_APPLICATION_UNSUPPORTED" code="3007"/>
+ <enum name="DIAMETER_INVALID_HDR_BITS" code="3008"/>
+ <enum name="DIAMETER_INVALID_AVP_BITS" code="3009"/>
+ <enum name="DIAMETER_UNKNOWN_PEER" code="3010"/>
+ <enum name="DIAMETER_AUTHENTICATION_REJECTED" code="4001"/>
+ <enum name="DIAMETER_OUT_OF_SPACE" code="4002"/>
+ <enum name="DIAMETER_ELECTION_LOST" code="4003"/>
+ <enum name="DIAMETER_AVP_UNSUPPORTED" code="5001"/>
+ <enum name="DIAMETER_UNKNOWN_SESSION_ID" code="5002"/>
+ <enum name="DIAMETER_AUTHORIZATION_REJECTED" code="5003"/>
+ <enum name="DIAMETER_INVALID_AVP_VALUE" code="5004"/>
+ <enum name="DIAMETER_MISSING_AVP" code="5005"/>
+ <enum name="DIAMETER_RESOURCES_EXCEEDED" code="5006"/>
+ <enum name="DIAMETER_CONTRADICTING_AVPS" code="5007"/>
+ <enum name="DIAMETER_AVP_NOT_ALLOWED" code="5008"/>
+ <enum name="DIAMETER_AVP_OCCURS_TOO_MANY_TIMES" code="5009"/>
+ <enum name="DIAMETER_NO_COMMON_APPLICATION " code="5010"/>
+ <enum name="DIAMETER_UNSUPPORTED_VERSION" code="5011"/>
+ <enum name="DIAMETER_UNABLE_TO_COMPLY" code="5012"/>
+ <enum name="DIAMETER_INVALID_BIT_IN_HEADER" code="5013"/>
+ <enum name="DIAMETER_INVALID_AVP_LENGTH" code="5014"/>
+ <enum name="DIAMETER_INVALID_MESSAGE_LENGTH" code="5015"/>
+ <enum name="DIAMETER_INVALID_AVP_BIT_COMBO" code="5016"/>
+ <enum name="DIAMETER_NO_COMMON_SECURITY" code="5017"/>
+ </avp>
+ <avp name="Experimental-Result" code="297" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <grouped>
+ <gavp name="Vendor-Id"/>
+ <gavp name="Experimental-Result-Code"/>
+ </grouped>
+ </avp>
+ <avp name="Experimental-Result-Code" code="298" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ <enum name="First Registration" code="2001"/>
+ <enum name="Subsequent Registration" code="2002"/>
+ <enum name="Unregistered Service" code="2003"/>
+ <enum name="Success Server Name Not Stored" code="2004"/>
+ <enum name="Server Selection" code="2005"/>
+ <enum name="Error User Unknown" code="5001"/>
+ <enum name="Error Identities Dont Match" code="5002"/>
+ <enum name="Error Identity Not Registered" code="5003"/>
+ <enum name="Error Roaming Not Allowed" code="5004"/>
+ <enum name="Error Roaming Identity Already Registered" code="5005"/>
+ <enum name="Error Roaming Auth Scheme Not Supported" code="5006"/>
+ <enum name="Error In Assignment Type" code="5007"/>
+ <enum name="Error Too Much Data" code="5008"/>
+ <enum name="Error Not Supported User Data" code="5009"/>
+ </avp>
+ <avp name="Route-Record" code="282" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Session-Id" code="263" mandatory="must" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="Session-Binding" code="270" mandatory="must" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Session-Server-Failover" code="271" mandatory="must" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ <enum name="Refuse Service" code="0"/>
+ <enum name="Try Again" code="1"/>
+ <enum name="Allow Service" code="2"/>
+ <enum name="Try Again / Allow Service" code="3"/>
+ </avp>
+ <avp name="Source-Route" code="286" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Supported-Vendor-Id" code="265" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="VendorId"/>
+ </avp>
+ <avp name="Termination-Cause" code="295" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="Unsigned32"/>
+ <enum name="Logout" code="1"/>
+ <enum name="Service Not Provided" code="2"/>
+ <enum name="Bad Answer" code="3"/>
+ <enum name="Administrative" code="4"/>
+ <enum name="Link Broken" code="5"/>
+ </avp>
+ <avp name="Vendor-Id" code="266" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <type type-name="VendorId"/>
+ </avp>
+ <avp name="Vendor-Specific-Application-Id" code="260" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot">
+ <grouped>
+ <gavp name="Vendor-Id"/>
+ <gavp name="Auth-Application-Id"/>
+ <gavp name="Acct-Application-Id"/>
+ </grouped>
+ </avp>
+ <avp name="Example-AVP" code="999999" mandatory="mustnot" vendor-bit="may">
+ <grouped>
+ <gavp name="Origin-Host"/>
+ <gavp name="Host-IP-Address"/>
+ </grouped>
+ </avp>
+ <!-- ************************ END DIAMETER BASE PROTOCOL AVPS ******************* -->
+ </base>
+
+ &nasreq;
+ &mobileipv4;
+ &sunping;
+ &imscxdx;
+
+</dictionary>
diff --git a/diameter/imscxdx.xml b/diameter/imscxdx.xml
new file mode 100644
index 0000000000..d884339331
--- /dev/null
+++ b/diameter/imscxdx.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+ <application id="167772151" name="IMS_Cx_Dx" uri="http://www.3GPP.org/ftp/Specs/html-info/29229.htm">
+
+ <!-- IMS Cx Dx Application -->
+ <command name="User-Authorization" code="300" vendor-id="TGPP"/>
+ <command name="Server-Assignment" code="301" vendor-id="TGPP"/>
+ <command name="Location-Info" code="302" vendor-id="TGPP"/>
+ <command name="Multimedia-Auth" code="303" vendor-id="TGPP"/>
+ <command name="Registration-Termination" code="304" vendor-id="TGPP"/>
+ <command name="Push-Profile" code="305" vendor-id="TGPP"/>
+
+ <!-- ************************** IMS Cx Dx AVPS ********************* -->
+ <avp name="Visited-Network-Identifier" code="1" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="no">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Public-Identity" code="2" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="Server-Name" code="3" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="Server-Capabilities" code="4" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <grouped>
+ <gavp name="Mandatory-Capability"/>
+ <gavp name="Optional-Capability"/>
+ <gavp name="Server-Name"/>
+ </grouped>
+ </avp>
+ <avp name="Mandatory-Capability" code="5" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Optional-Capability" code="6" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="User-Data" code="7" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="SIP-Number-Auth-Items" code="8" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="SIP-Authentication-Scheme" code="9" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="SIP-Authenticate" code="10" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="SIP-Authorization" code="11" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="SIP-Authentication-Context" code="12" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="OctetString"/>
+ </avp>
+ <!-- GROUPED -->
+ <avp name="SIP-Auth-Data-Item" code="13" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <grouped>
+ <gavp name="SIP-Item-Number"/>
+ <gavp name="SIP-Authentication-Scheme"/>
+ <gavp name="SIP-Authenticate"/>
+ <gavp name="SIP-Authorization"/>
+ <gavp name="SIP-Authentication-Context"/>
+ <gavp name="Confidentiality-Key"/>
+ <gavp name="Integrity-Key"/>
+ </grouped>
+ </avp>
+ <avp name="SIP-Item-Number" code="14" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Server-Assignment-Type" code="15" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ <enum name="No-Assignment" code="0"/>
+ <enum name="Registration" code="1"/>
+ <enum name="Re-Registration" code="2"/>
+ <enum name="Unregistered-User" code="3"/>
+ <enum name="Timeout-Deregistration" code="4"/>
+ <enum name="User-Deregistration" code="5"/>
+ <enum name="Timeout-Deregistration-Store-Server-Name" code="6"/>
+ <enum name="User-Deregistration-Store-Server-Name" code="7"/>
+ <enum name="Administrative-Deregistration" code="8"/>
+ <enum name="Authentication-Failure" code="9"/>
+ <enum name="Authentication-Timeout" code="10"/>
+ <enum name="Deregistration-Too-Much-Data" code="11"/>
+ </avp>
+ <!-- GROUPED -->
+ <avp name="Deregistration-Reason" code="16" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <grouped>
+ <gavp name="Reason-Code"/>
+ <gavp name="Reason-Info"/>
+ </grouped>
+ </avp>
+ <avp name="Reason-Code" code="17" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ <enum name="Permanent-Termination" code="0"/>
+ <enum name="New-Server-Assigned" code="1"/>
+ <enum name="Server-Change" code="2"/>
+ <enum name="Remove-S-CSCF" code="3"/>
+ </avp>
+ <avp name="Reason-Info" code="18" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="UTF8String"/>
+ </avp>
+ <!-- GROUPED -->
+ <avp name="Charging-Information" code="19" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <grouped>
+ <gavp name="Primary-Event-Charging-Function-Name"/>
+ <gavp name="Secondary-Event-Charging-Function-Name"/>
+ <gavp name="Primary-Charging-Collection-Function-Name"/>
+ <gavp name="Secondary-Charging-Collection-Function-Name"/>
+ </grouped>
+ </avp>
+ <avp name="Primary-Event-Charging-Function-Name" code="20" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Secondary-Event-Charging-Function-Name" code="21" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Primary-Charging-Collection-Function-Name" code="22" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="Secondary-Charging-Collection-Function-Name" code="23" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="User-Authorization-Type" code="24" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ <enum name="Registration" code="0"/>
+ <enum name="De-Registration" code="1"/>
+ <enum name="Registration-And-Capabilities" code="2"/>
+ </avp>
+ <avp name="User-Data-Request-Type" code="25" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ <enum name="Complete-Profile" code="0"/>
+ <enum name="Registered-Profile" code="1"/>
+ <enum name="Unregistered-Profile" code="2"/>
+ </avp>
+ <avp name="User-Data-Already-Available" code="26" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ <enum name="User-Data-Not-Available" code="0"/>
+ <enum name="User-Data-Already-Available" code="1"/>
+ </avp>
+ <avp name="Confidentiality-Key" code="27" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Integrity-Key" code="28" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
+ <type type-name="OctetString"/>
+ </avp>
+ <!-- ************************ END IMS Cx Dx AVPS ******************* -->
+
+ </application>
diff --git a/diameter/mobileipv4.xml b/diameter/mobileipv4.xml
new file mode 100644
index 0000000000..37566a8c57
--- /dev/null
+++ b/diameter/mobileipv4.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+ <application id="4" name="Mobile IPv4 Application" uri="ftp://ftp.ietf.org/internet-drafts/draft-ietf-aaa-diameter-mobileip-07.txt">
+
+ <!-- Mobile-IPv4 Application -->
+ <command name="AA-Mobile-Node" code="260" vendor-id="None"/>
+ <command name="Home-Agent-MIP" code="262" vendor-id="None"/>
+
+ <!-- ************************** Mobile-IPv4 AVPS ********************* -->
+ <avp name="MIP-Filter-Rule" code="347" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="IPFilterRule"/>
+ </avp>
+ <avp name="MIP-Auth-Input-Data-Length" code="338" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="MIP-Authenticator-Length" code="339" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="MIP-Authenticator-Offset" code="340" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="MIP-FA-Challenge" code="344" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="MIP-Feature-Vector" code="337" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="MIP-Foreign-Agent-Host" code="330" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="MIP-Home-Agent-Address" code="334" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="IPAddress"/>
+ </avp>
+ <avp name="MIP-MN-AAA-Auth" code="322" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <grouped>
+ <gavp name="MIP-MN-AAA-SPI"/>
+ <gavp name="MIP-Auth-Input-Data-Length"/>
+ <gavp name="MIP-Authenticator-Length"/>
+ <gavp name="MIP-Authenticator-Offset"/>
+ </grouped>
+ </avp>
+ <avp name="MIP-MN-AAA-SPI" code="341" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="MIP-Mobile-Node-Address" code="333" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="IPAddress"/>
+ </avp>
+ <avp name="MIP-Previous-FA-Addr" code="336" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="IPAddress"/>
+ </avp>
+ <avp name="MIP-Previous-FA-Host" code="335" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="DiameterIdentity"/>
+ </avp>
+ <avp name="MIP-Reg-Request" code="320" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="MIPRegistrationRequest"/>
+ </avp>
+ <avp name="MIP-Reg-Reply" code="321" mandatory="must" vendor-bit="mustnot" may-encrypt="yes">
+ <type type-name="OctetString"/>
+ </avp>
+ <!-- ************************ END Mobile-IPv4 AVPS ******************* -->
+
+ </application>
diff --git a/diameter/nasreq.xml b/diameter/nasreq.xml
new file mode 100644
index 0000000000..30f36a954c
--- /dev/null
+++ b/diameter/nasreq.xml
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+ <application id="1" name="NASREQ Application" uri="ftp://ftp.ietf.org/internet-drafts/draft-calhoun-diameter-nasreq-06.txt">
+
+ <command name="AA" code="265" vendor-id="None"/>
+ <command name="Diameter-EAP" code="268" vendor-id="None"/>
+
+ <!-- ************************* RADIUS AVPs ************************ -->
+ <avp name="User-Name" code="1">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="User-Password" code="2">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="CHAP-Password" code="3">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="NAS-IP-Address" code="4">
+ <type type-name="IPAddress"/>
+ </avp>
+ <avp name="NAS-Port" code="5">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Service-Type" code="6">
+ <type type-name="Unsigned32"/>
+ <enum name="Labels" code="3"/>
+ <enum name="RSVP" code="1"/>
+ <enum name="TOS" code="2"/>
+ </avp>
+ <avp name="Framed-Protocol" code="7">
+ <type type-name="Unsigned32"/>
+ <enum name="ARA" code="3"/>
+ <enum name="Ascend-ARA" code="255"/>
+ <enum name="COMB" code="260"/>
+ <enum name="EURAW" code="257"/>
+ <enum name="EUUI" code="258"/>
+ <enum name="FR" code="261"/>
+ <enum name="Gandalf" code="4"/>
+ <enum name="MPP" code="256"/>
+ <enum name="PPP" code="1"/>
+ <enum name="SLIP" code="2"/>
+ <enum name="X25" code="259"/>
+ <enum name="Xylogics" code="5"/>
+ </avp>
+ <avp name="Framed-IP-Address" code="8">
+ <type type-name="IPAddress"/>
+ </avp>
+ <avp name="Framed-IP-Netmask" code="9">
+ <type type-name="IPAddress"/>
+ </avp>
+ <avp name="Framed-Routing" code="10">
+ <type type-name="Unsigned32"/>
+ <enum name="Broadcast" code="1"/>
+ <enum name="Broadcast-Listen" code="3"/>
+ <enum name="Listen" code="2"/>
+ <enum name="None" code="0"/>
+ </avp>
+ <avp name="Filter-Id" code="11">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="Framed-MTU" code="12">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Framed-Compression" code="13">
+ <type type-name="Unsigned32"/>
+ <enum name="IPX-Header-Compression" code="2"/>
+ <enum name="None" code="0"/>
+ <enum name="Van-Jacobson-TCP-IP" code="1"/>
+ </avp>
+ <avp name="Login-IP-Host" code="14">
+ <type type-name="IPAddress"/>
+ </avp>
+ <avp name="Login-Service" code="15">
+ <type type-name="Unsigned32"/>
+ <enum name="LAT" code="4"/>
+ <enum name="PortMaster" code="3"/>
+ <enum name="Rlogin" code="1"/>
+ <enum name="TCP-Clear" code="2"/>
+ <enum name="Telnet" code="0"/>
+ <enum name="X25-PAD" code="5"/>
+ <enum name="X25-T3POS" code="6"/>
+ </avp>
+ <avp name="Login-TCP-Port" code="16">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Old-Password" code="17">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Reply-Message" code="18">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="Callback-Number" code="19">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Callback-Id" code="20">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Framed-Route" code="22">
+ <type type-name="UTF8String"/>
+ </avp>
+ <avp name="Framed-IPX-Network" code="23">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="State" code="24">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Class" code="25">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Vendor-Specific" code="26">
+ <type type-name="Unsigned32"/>
+ <!-- Should vendors be enum'ed? -->
+ </avp>
+ <avp name="Session-Timeout" code="27">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Idle-Timeout" code="28">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Termination-Action" code="29">
+ <type type-name="Unsigned32"/>
+ <enum name="Default" code="0"/>
+ <enum name="RADIUS-Request" code="1"/>
+ </avp>
+ <avp name="Called-Station-Id" code="30">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Calling-Station-Id" code="31">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="NAS-Identifier" code="32">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Proxy-State" code="33">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Login-LAT-Service" code="34">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Login-LAT-Node" code="35">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Login-LAT-Group" code="36">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Framed-AppleTalk-Link" code="37">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Framed-AppleTalk-Network" code="38">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Framed-AppleTalk-Zone" code="39">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Acct-Status-Type" code="40">
+ <type type-name="Unsigned32"/>
+ <enum name="Accounting-Off" code="8"/>
+ <enum name="Accounting-On" code="7"/>
+ <enum name="Alive" code="3"/>
+ <enum name="Cancel" code="6"/>
+ <enum name="Modem-Start" code="4"/>
+ <enum name="Modem-Stop" code="5"/>
+ <enum name="Start" code="1"/>
+ <enum name="Stop" code="2"/>
+ </avp>
+ <avp name="Acct-Delay-Time" code="41">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Acct-Input-Octets" code="42">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Acct-Output-Octets" code="43">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Acct-Session-Id" code="44" mandatory="must">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Acct-Authentic" code="45">
+ <type type-name="Unsigned32"/>
+ <enum name="Local" code="2"/>
+ <enum name="None" code="0"/>
+ <enum name="RADIUS" code="1"/>
+ </avp>
+ <avp name="Acct-Session-Time" code="46">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Acct-Input-Packets" code="47">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Acct-Output-Packets" code="48">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Acct-Terminate-Cause" code="49">
+ <type type-name="Unsigned32"/>
+ <enum name="Admin-Reboot" code="7"/>
+ <enum name="Admin-Reset" code="6"/>
+ <enum name="Callback" code="16"/>
+ <enum name="Host-Request" code="18"/>
+ <enum name="Idle-Timeout" code="4"/>
+ <enum name="Lost-Carrier" code="2"/>
+ <enum name="Lost-Service" code="3"/>
+ <enum name="NAS-Error" code="9"/>
+ <enum name="NAS-Reboot" code="11"/>
+ <enum name="NAS-Request" code="10"/>
+ <enum name="Port-Error" code="8"/>
+ <enum name="Port-Preempted" code="13"/>
+ <enum name="Port-Suspended" code="14"/>
+ <enum name="Port-Unneeded" code="12"/>
+ <enum name="Service-Unavailable" code="15"/>
+ <enum name="Session-Timeout" code="5"/>
+ <enum name="User-Error" code="17"/>
+ <enum name="User-Request" code="1"/>
+ </avp>
+ <avp name="Acct-Multi-Session-Id" code="50">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Acct-Link-Count" code="51">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="CHAP-Challenge" code="60">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="NAS-Port-Type" code="61">
+ <type type-name="Unsigned32"/>
+ <enum name="Async" code="0"/>
+ <enum name="HDLC-Clear-Channel" code="7"/>
+ <enum name="ISDN-Async-v110" code="4"/>
+ <enum name="ISDN-Async-v120" code="3"/>
+ <enum name="ISDN-Sync" code="2"/>
+ <enum name="PIAFS" code="6"/>
+ <enum name="Sync" code="1"/>
+ <enum name="Virtual" code="5"/>
+ <enum name="X25" code="8"/>
+ <enum name="X75" code="9"/>
+ </avp>
+ <avp name="Port-Limit" code="62">
+ <type type-name="Integer32"/>
+ </avp>
+ <avp name="Login-LAT-Port" code="63">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Tunnel-Type" code="64">
+ <type type-name="Unsigned32"/>
+ <enum name="PPTP" code="1"/>
+ <enum name="L2F" code="2"/>
+ <enum name="L2TP" code="3"/>
+ <enum name="ATMP" code="4"/>
+ <enum name="VTP" code="5"/>
+ <enum name="AH" code="6"/>
+ <enum name="IP-IP-Encap" code="7"/>
+ <enum name="MIN-IP-IP" code="8"/>
+ <enum name="ESP" code="9"/>
+ <enum name="GRE" code="10"/>
+ <enum name="DVS" code="11"/>
+ <enum name="IP-IP" code="12"/>
+ </avp>
+ <avp name="Tunnel-Medium-Type" code="65">
+ <type type-name="Unsigned32"/>
+ <enum name="IPv4" code="1"/>
+ <enum name="IPv6" code="2"/>
+ <enum name="NSAP" code="3"/>
+ <enum name="HDLC" code="4"/>
+ <enum name="BBN" code="5"/>
+ <enum name="IEEE-802" code="6"/>
+ <enum name="E-163" code="7"/>
+ <enum name="E-164" code="8"/>
+ <enum name="F-69" code="9"/>
+ <enum name="X-121" code="10"/>
+ <enum name="IPX" code="11"/>
+ <enum name="Appletalk-802" code="12"/>
+ <enum name="Decnet4" code="13"/>
+ <enum name="Vines" code="14"/>
+ <enum name="E-164-NSAP" code="15"/>
+ </avp>
+ <avp name="Tunnel-Client-Endpoint" code="66">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Tunnel-Server-Endpoint" code="67">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Tunnel-Connection-ID" code="68">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Tunnel-Password" code="69">
+ <type type-name="OctetString"/>
+ </avp>
+ <avp name="Tunnel-Assignment-Id" code="82">
+ <type type-name="OctetString"/>
+ </avp>
+
+ </application>
diff --git a/diameter/sunping.xml b/diameter/sunping.xml
new file mode 100644
index 0000000000..fa3cbc96f2
--- /dev/null
+++ b/diameter/sunping.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <application id="555" name="Sun Ping Application" uri="ftp://ftp.ietf.org/internet-drafts/draft-calhoun-diameter-sun-ping-02.txt">
+ <!-- *********************** Commands ***************************** -->
+ <!-- Sun Ping Extension -->
+ <command name="Ping" code="511" vendor-id="Sun"/>
+ <!-- ********************** End Commands ************************** -->
+ <!-- ************************ Sun Ping Extension AVPS ******************* -->
+ <avp name="Ping-Timestamp-Secs" code="1" vendor-id="Sun" mandatory="mustnot" vendor-bit="must">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Ping-Timestamp-Usecs" code="2" vendor-id="Sun" mandatory="mustnot" vendor-bit="must">
+ <type type-name="Unsigned32"/>
+ </avp>
+ <avp name="Ping-Timestamp" code="3" vendor-id="Sun" mandatory="mustnot" vendor-bit="must">
+ <grouped>
+ <gavp name="Ping-Timestamp-Secs"/>
+ <gavp name="Ping-Timestamp-Usecs"/>
+ </grouped>
+ </avp>
+ <!-- ********************** End Sun Ping Extension AVPS ***************** -->
+ <!-- ************************ Sun PING Extension AVPs ***************************-->
+ </application>