From David Frascone: duUpdate to Diameter dissector to load the
dictionary as an XML file rather than building it in, and various Diameter updates. svn path=/trunk/; revision=4122
This commit is contained in:
parent
f9ff2a9ab3
commit
be7e31be0e
14
Makefile.am
14
Makefile.am
|
@ -1,7 +1,7 @@
|
|||
# Makefile.am
|
||||
# Automake file for Ethereal
|
||||
#
|
||||
# $Id: Makefile.am,v 1.372 2001/10/29 21:13:07 guy Exp $
|
||||
# $Id: Makefile.am,v 1.373 2001/11/01 21:52:44 guy Exp $
|
||||
#
|
||||
# Ethereal - Network traffic analyzer
|
||||
# By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -68,7 +68,8 @@ man_MANS =
|
|||
EXTRA_PROGRAMS = ethereal ethereal_static tethereal tethereal_static editcap mergecap dftest text2pcap
|
||||
EXTRA_SCRIPTS = idl2eth
|
||||
|
||||
sysconf_DATA = manuf
|
||||
sysconf_DATA = manuf dictionary.dtd dictionary.xml mobileipv4.xml \
|
||||
nasreq.xml sunping.xml
|
||||
|
||||
DISSECTOR_SRC = \
|
||||
packet-aarp.c \
|
||||
|
@ -448,7 +449,9 @@ ETHEREAL_COMMON_SRC = \
|
|||
x11-declarations.h \
|
||||
x11-register-info.h \
|
||||
xdlc.c \
|
||||
xdlc.h
|
||||
xdlc.h \
|
||||
xmlstub.c \
|
||||
xmlstub.h
|
||||
|
||||
BUILT_SOURCES = \
|
||||
x11-declarations.h \
|
||||
|
@ -808,6 +811,11 @@ EXTRA_DIST = \
|
|||
randpkt.c \
|
||||
rdps.c \
|
||||
TODO \
|
||||
dictionary.dtd \
|
||||
dictionary.xml \
|
||||
mobileipv4.xml \
|
||||
nasreq.xml \
|
||||
sunping.xml \
|
||||
x11-fields
|
||||
|
||||
if SETUID_INSTALL
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## Makefile for building ethereal.exe with Microsoft C and nmake
|
||||
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
|
||||
#
|
||||
# $Id: Makefile.nmake,v 1.134 2001/10/29 21:13:07 guy Exp $
|
||||
# $Id: Makefile.nmake,v 1.135 2001/11/01 21:52:44 guy Exp $
|
||||
|
||||
include config.nmake
|
||||
include <win32.mak>
|
||||
|
@ -247,6 +247,7 @@ ETHEREAL_COMMON_OBJECTS = \
|
|||
register.obj \
|
||||
util.obj \
|
||||
xdlc.obj \
|
||||
xmlstub.obj \
|
||||
|
||||
ethereal_OBJECTS = \
|
||||
$(DISSECTOR_OBJECTS) \
|
||||
|
|
|
@ -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
|
||||
>
|
|
@ -0,0 +1,647 @@
|
|||
<?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">
|
||||
]>
|
||||
<dictionary>
|
||||
<base uri="ftp://ftp.ietf.org/internet-drafts/draft-ietf-aaa-diameter-07.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="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."/>
|
||||
<!-- *********************** 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="0"/>
|
||||
</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="2"/>
|
||||
<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"/>
|
||||
</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;
|
||||
|
||||
</dictionary>
|
|
@ -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>
|
|
@ -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-Request" code="260" vendor-id="None"/>
|
||||
<command name="AA-Answer" code="260" 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>
|
|
@ -1,8 +1,11 @@
|
|||
/*
|
||||
* Filename: packet-diameter-defs.h
|
||||
* WARNING: This file was automatically generated by dict2h.pl. Modifications
|
||||
* will be erased by next invocation of dictionary parser.
|
||||
*
|
||||
* This file contains the static definitions of the Diameter base protocol
|
||||
* AVPs. If libxml is in the LD_LIBRARY_PATH, and dictionary.xml exists,
|
||||
* then it will not be used.
|
||||
*
|
||||
* $Id: packet-diameter-defs.h,v 1.6 2001/11/01 21:52:44 guy Exp $
|
||||
* Generated: Fri Feb 23 13:04:15 2001
|
||||
*/
|
||||
|
||||
|
@ -12,26 +15,6 @@
|
|||
|
||||
/* Type to string table */
|
||||
|
||||
|
||||
static value_string diameter_avp_type_vals[]={
|
||||
{ 1, "OctetString" },
|
||||
{ 2, "Integer32" },
|
||||
{ 3, "Integer64" },
|
||||
{ 4, "Unsigned32" },
|
||||
{ 5, "Unsigned64" },
|
||||
{ 6, "Float32" },
|
||||
{ 7, "Float64" },
|
||||
{ 8, "Float128" },
|
||||
{ 9, "Grouped" },
|
||||
{ 10, "IpAddress" },
|
||||
{ 11, "Time" },
|
||||
{ 12, "UTF8String" },
|
||||
{ 13, "DiameterIdentity" },
|
||||
{ 14, "Enumerated" },
|
||||
{ 15, "IPFilterRule" },
|
||||
{ 16, "QOSFilterRule" },
|
||||
{0, (char *)NULL}
|
||||
};
|
||||
/* Attribute to String tables */
|
||||
static value_string diameter_service_type_vals[]={
|
||||
{5, "Outbound"},
|
||||
|
@ -99,6 +82,7 @@ static value_string diameter_vendor_specific_vendors[]= {
|
|||
{529, "Ascend"},
|
||||
{1584, "Bay Networks"},
|
||||
{2636, "Juniper Networks"},
|
||||
{5925, "ipUnplugged"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
|
@ -258,7 +242,23 @@ static value_string diameter_termination_cause_vals[]= {
|
|||
{0,NULL}
|
||||
};
|
||||
|
||||
static struct avp_info diameter_avps[] = {
|
||||
static value_string diameter_mip_algorithm_type[] = {
|
||||
{1, "MD5 Prefix/Suffix"},
|
||||
{2, "HMAC-MD5"},
|
||||
{3, "HMAC-SHA1"},
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
static value_string diameter_mip_replay_type[] = {
|
||||
{1, "None"},
|
||||
{2, "Nonce"},
|
||||
{3, "Timestamp"},
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
|
||||
|
||||
static struct old_avp_info old_diameter_avps[] = {
|
||||
/* Radius Attributes */
|
||||
{ 1, "User-Name", DIAMETER_UTF8STRING, (value_string *)NULL},
|
||||
{ 2, "User-Password", DIAMETER_OCTET_STRING, (value_string *)NULL},
|
||||
|
@ -349,7 +349,7 @@ static struct avp_info diameter_avps[] = {
|
|||
{ 278, "Origin-State-Id", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
{ 269, "Product-Name", DIAMETER_UTF8STRING, (value_string *)NULL},
|
||||
{ 280, "Proxy-Host", DIAMETER_IDENTITY, (value_string *)NULL},
|
||||
{ 284, "Proxy-Info", DIAMETER_OCTET_STRING,(value_string *)NULL},
|
||||
{ 284, "Proxy-Info", DIAMETER_GROUPED, (value_string *)NULL},
|
||||
{ 292, "Redirect-Host", DIAMETER_IDENTITY, (value_string *)NULL},
|
||||
{ 261, "Redirect-Host-Usage", DIAMETER_ENUMERATED, diameter_redirect_host_usage_vals},
|
||||
{ 262, "Redirect-Max-Cache-Time", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
|
@ -363,7 +363,34 @@ static struct avp_info diameter_avps[] = {
|
|||
{ 295, "Termination-Cause", DIAMETER_ENUMERATED, diameter_termination_cause_vals},
|
||||
{ 266, "Vendor-Id", DIAMETER_ENUMERATED, diameter_vendor_specific_vendors},
|
||||
{ 260, "Vendor-Specific-Application-Id", DIAMETER_GROUPED, (value_string *)NULL},
|
||||
{0, (char *)NULL, 0, (value_string*)NULL}
|
||||
/* Diameter Mobile IP AVPs */
|
||||
{ 318, "MIP-FA-to-HA-SPI", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
{ 319, "MIP-FA-to-MN-SPI", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
{ 320, "MIP-Reg-Request", DIAMETER_MIP_REG_REQ, (value_string *)NULL},
|
||||
{ 321, "MIP-Reg-Reply", DIAMETER_OCTET_STRING, (value_string *)NULL},
|
||||
{ 322, "MIP-MN-AAA-Auth", DIAMETER_GROUPED, (value_string *)NULL},
|
||||
{ 325, "MIP-MN-to-FA-KEY", DIAMETER_GROUPED, (value_string *)NULL},
|
||||
{ 326, "MIP-FA-to-MN-KEY", DIAMETER_GROUPED, (value_string *)NULL},
|
||||
{ 328, "MIP-FA-to-HA-KEY", DIAMETER_GROUPED, (value_string *)NULL},
|
||||
{ 329, "MIP-HA-to-FA-KEY", DIAMETER_GROUPED, (value_string *)NULL},
|
||||
{ 330, "MIP-Foreign-Agent-Host", DIAMETER_IDENTITY, (value_string *)NULL},
|
||||
{ 331, "MIP-MN-to-HA-KEY", DIAMETER_GROUPED, (value_string *)NULL},
|
||||
{ 333, "MIP-Mobile-Node-Address", DIAMETER_IP_ADDRESS, (value_string *)NULL},
|
||||
{ 334, "MIP-Home-Agent-Address", DIAMETER_IP_ADDRESS, (value_string *)NULL},
|
||||
{ 335, "MIP-Key-Material", DIAMETER_OCTET_STRING, (value_string *)NULL},
|
||||
{ 337, "MIP-Feature-Vector", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
{ 338, "MIP-Auth-Input-Data-Length", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
{ 339, "MIP-Authenticator-Length", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
{ 340, "MIP-Authenticator-Offset", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
{ 341, "MIP-MN-AAA-SPI", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
{ 342, "MIP-PEER-SPI", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
{ 343, "MIP-Session-Key", DIAMETER_OCTET_STRING, (value_string *)NULL},
|
||||
{ 344, "MIP-FA-Challenge", DIAMETER_OCTET_STRING, (value_string *)NULL},
|
||||
{ 345, "MIP-Algorithm-Type", DIAMETER_ENUMERATED, diameter_mip_algorithm_type},
|
||||
{ 346, "MIP-Algorithm-Type", DIAMETER_ENUMERATED, diameter_mip_replay_type},
|
||||
{ 347, "MIP-Filter-Rule", DIAMETER_IP_FILTER_RULE, (value_string *)NULL},
|
||||
{ 398, "MIP-Key-Lifetime", DIAMETER_UNSIGNED32, (value_string *)NULL},
|
||||
{0, (char *)NULL, 0, (value_string*)NULL}
|
||||
};
|
||||
|
||||
|
||||
|
@ -378,6 +405,9 @@ static value_string diameter_command_code_vals[] = {
|
|||
{282, "Disconnect-Peer"},
|
||||
{258, "Re-Auth"},
|
||||
{275, "Session-Termination"},
|
||||
/* Mip Protocol */
|
||||
{262, "Home-Agent-MIP"},
|
||||
{260, "AA-Mobile-Node"},
|
||||
{0, (char *)NULL}
|
||||
};
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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>
|
|
@ -0,0 +1,167 @@
|
|||
/* xmlstub.c
|
||||
* Routines to parse XML files using libxml2. This stub
|
||||
* exists so that the library can be loaded on systems that
|
||||
* have it.
|
||||
*
|
||||
* $Id: xmlstub.c,v 1.1 2001/11/01 21:52:44 guy Exp $
|
||||
*
|
||||
* Copyright (c) 2001 by David Frascone <dave@frascone.com>
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
* Copyright 1998-2001 Gerald Combs
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <glib.h>
|
||||
#include <gmodule.h>
|
||||
|
||||
/* XML Stub routines */
|
||||
#define IN_XMLSTUB
|
||||
#include "xmlstub.h"
|
||||
|
||||
/*
|
||||
* This routine will dynamically load libxml2 and will populate the
|
||||
* XmlStub pointer structure.
|
||||
*
|
||||
* On any error, it will return non-zero, and it should be assumed that
|
||||
* the current platform does not have dynamic library support, or does
|
||||
* not have libxml2 installed.
|
||||
*/
|
||||
int
|
||||
loadLibXML()
|
||||
{
|
||||
GModule *handle;
|
||||
gpointer symbol;
|
||||
int error=FALSE;
|
||||
|
||||
if (XmlStubInitialized) {
|
||||
/* Did you ever get the feeling you've been here before? */
|
||||
|
||||
/*
|
||||
* This is not thread safe. With threads, we'd need to
|
||||
* synchronize all this so two threads can't initialize at once.
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Check to see if gmodule is supported */
|
||||
if (!g_module_supported()) {
|
||||
g_warning("XMLStub: Modules are not supported. Not initializing XML Stub");
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/* open the dll. Is this named something different
|
||||
* under windows? Perhaps we should check . . .
|
||||
*/
|
||||
if ((handle = g_module_open(XML_LIBRARY, G_MODULE_BIND_LAZY)) == NULL) {
|
||||
g_warning("XMLStub: Unable to open module " XML_LIBRARY);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Now that the library is open, copy all our relevant
|
||||
* function pointers and integer pointers into our structure.
|
||||
*/
|
||||
if (!g_module_symbol(handle, "xmlParseFile", &symbol)) {
|
||||
g_warning("Unable to find \"xmlParseFile\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlParseFile= (xmlDocPtr(*)(const char *))symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlStrcmp", &symbol)) {
|
||||
g_warning("Unable to find \"xmlStrcmp\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlStrcmp= (int (*)(const xmlChar *, const xmlChar *))symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlCreatePushParserCtxt", &symbol)) {
|
||||
g_warning("Unable to find \"xmlCreatePushParserCtxt\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlCreatePushParserCtxt=(xmlParserCtxtPtr (*)
|
||||
(xmlSAXHandlerPtr, void *, const char *,
|
||||
int, const char *)) symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlParseChunk", &symbol)) {
|
||||
g_warning("Unable to find \"xmlParseChunk\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlParseChunk=(int (*)(xmlParserCtxtPtr, const char *, int, int))symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlFreeParserCtxt", &symbol)) {
|
||||
g_warning("Unable to find \"xmlFreeParserCtxt\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlFreeParserCtxt=(void (*)(xmlParserCtxtPtr))symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlDocGetRootElement", &symbol)) {
|
||||
g_warning("Unable to find \"xmlDocGetRootElement\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlDocGetRootElement=(xmlNodePtr(*)(xmlDocPtr))symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlFreeDoc", &symbol)) {
|
||||
g_warning("Unable to find \"xmlFreeDoc\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlFreeDoc=(void (*)(xmlDocPtr))symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlNodeListGetString", &symbol)) {
|
||||
g_warning("Unable to find \"xmlNodeListGetString\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlNodeListGetString=(char * (*)(xmlDocPtr, xmlNodePtr, int))symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlGetProp", &symbol)) {
|
||||
g_warning("Unable to find \"xmlGetProp\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlGetProp=(char * (*)(xmlNodePtr, char *))symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlKeepBlanksDefault", &symbol)) {
|
||||
g_warning("Unable to find \"xmlKeepBlanksDefault\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlKeepBlanksDefault=(int(*)(int))symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlSubstituteEntitiesDefault", &symbol)) {
|
||||
g_warning("Unable to find \"xmlSubstituteEntitiesDefault\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlSubstituteEntitiesDefault=(int(*)(int))symbol;
|
||||
|
||||
if (!g_module_symbol(handle, "xmlDoValidityCheckingDefaultValue", &symbol)) {
|
||||
g_warning("Unable to find \"xmlDoValidityCheckingDefaultValue\"");
|
||||
error=TRUE;
|
||||
}
|
||||
XmlStub.xmlDoValidityCheckingDefaultValue = (int *)symbol;
|
||||
|
||||
/*
|
||||
* Return if any of the above functions set our error flag.
|
||||
* A flag was used, instead of returning immediately, so
|
||||
* that *all* unresolved symbols would be printed.
|
||||
*/
|
||||
if (error) {
|
||||
g_module_close(handle);
|
||||
return (-1);
|
||||
}
|
||||
/* Set our global so that we don't try to load twice */
|
||||
XmlStubInitialized=1;
|
||||
|
||||
return 0; /* Success! */
|
||||
|
||||
} /* loadLibXML */
|
Loading…
Reference in New Issue