One document matched: draft-wu-alto-json-te-01.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<rfc category="std" docName="draft-wu-alto-json-te-01" ipr="trust200902">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<front>
<title abbrev="JSON for ALTO TE">JSON Format Extensions for Traffic
Engineering (TE) performance metrics in the ALTO Information Resource
Directory</title>
<author fullname="Qin Wu" initials="Q." surname="Wu">
<organization>Huawei</organization>
<address>
<postal>
<street>101 Software Avenue, Yuhua District</street>
<city>Nanjing</city>
<region>Jiangsu</region>
<code>210012</code>
<country>China</country>
</postal>
<email>sunseawq@huawei.com</email>
</address>
</author>
<author fullname="Liang Xia" initials="L." surname="Xia">
<organization>Huawei</organization>
<address>
<postal>
<street>101 Software Avenue, Yuhua District</street>
<city>Nanjing</city>
<region>Jiangsu</region>
<code>210012</code>
<country>China</country>
</postal>
<email>frank.xialiang@huawei.com</email>
</address>
</author>
<date year="2013" />
<area>TSV Area</area>
<workgroup>ALTO Working Group</workgroup>
<keyword>RFC</keyword>
<keyword>Request for Comments</keyword>
<keyword>I-D</keyword>
<keyword>Internet-Draft</keyword>
<keyword>JavaScript Object Notation, Application-Layer Traffic
Optimization</keyword>
<abstract>
<t>The base ALTO specification defines two properties for cost metric
attribute in the Cost MAP, including 'hopcount' and 'routingcost'. This
specification define five new cost metric and one new parameter for
Traffic Engineering(TE) performance information in the ALTO Information
Resource Directory: Link Delay, Delay Variation, Packet Loss, Residual
Bandwidth, Available Bandwidth,linkstate. They can be used either as
constraint attribute associated with cost metric attribute 'routingcost'
or returned cost metric in the response.</t>
</abstract>
</front>
<middle>
<section anchor="intro" title="Introduction">
<t>The ALTO protocol [I.D-ietf-alto-protocol] uses a REST-ful design ,
and encodes its requests and responses using JSON. In ALTO architecture
[I.D-ietf-alto-protocol], the ALTO server allows alto information to be
gathered from multiple systems(e.g., routing protocol).
[I.D-ietf-ospf-te-metric-extensions] describes extensions to OSPF TE
called "OSPF TE Metric Extensions", that can be used to distribute
network performance information (such as link delay, delay variation,
packet loss, residual bandwidth, and available bandwidth). The mechanism
defined in [I.D-ietf-ospf-te-metric-extensions]can be used by an ALTO
Server to retrieve the necessary performance information supplementing
the prefix and network topology data gathered from other sources in the
underlying network.</t>
<t>In the ALTO Information Resource Directory, Network and Cost Map are
two core ALTO Information provided to clients. The TE performance metric
can be represented using Cost MAP. The base ALTO specification
[I.D-ietf- alto-protocol] defines one typical cost metric attribute for
Cost Type in the Cost MAP (i.e.,'routingcost')and uses constraint
attribute to list additional constraints to which elements of the Cost
Map are related. This specification defines five new cost map attributes
and one property associated with these attributes in alto information
service: Link Delay, Link Jitter,Packet Loss, Residual Bandwidth,
Available Bandwidth,linkstate. These five attribute and one new
parameter can be either used as constraint attribute associated with
'routingcost' cost metric attribute or used as returned Cost Map in the
response.</t>
</section>
<section title="Conventions used in this document">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref
target="RFC2119">RFC2119</xref>.</t>
<t>Syntax specifications shown here use the augmented Backus-Naur Form
(ABNF) as described in [RFC5234], and are specified as in the base JSON
specification [RFC4627].</t>
</section>
<section title="Cost Map constraint Extensions:">
<t>Section 10.2.2.3 of "ALTO: Application Layer Traffic Optimization
Protocol" [I.D-ietf-alto-protocol] states: <figure>
<artwork>"
object {
CostType cost-type;
[JSONString constraints<0..*>;]
[PIDFilter pids;]
} ReqFilteredCostMap;
object {
PIDName srcs<0..*>;
PIDName dsts<0..*>;
} PIDFilter;
with members:
cost-type The CostType (Section 9.7) for the returned costs. The
cost-metric and cost-mode fields MUST match one of the supported
Cost Types indicated in this resource's capabilities
(Section 10.2.2.4). The ALTO Client SHOULD omit the description
field, and if present, the ALTO Server MUST ignore the description
field.
constraints Defines a list of additional constraints on which
elements of the Cost Map are returned. This parameter MUST NOT be
specified if this resource's capabilities ( Section 10.2.2.4)
indicate that constraint support is not available. A constraint
contains two entities separated by whitespace: (1) an operator,
'gt' for greater than, 'lt' for less than, 'ge' for greater than
or equal to, 'le' for less than or equal to, or 'eq' for equal to;
(2) a target cost value. The cost value is a number that MUST be
defined in the same units as the Cost Metric indicated by the
cost-metric parameter. ALTO Servers SHOULD use at least IEEE 754
double-precision floating point [IEEE.754.2008] to store the cost
value, and SHOULD perform internal computations using double-
precision floating-point arithmetic. If multiple 'constraint'
parameters are specified, they are interpreted as being related to
each other with a logical AND.
”
</artwork>
</figure></t>
<t>In the JSON Object of type ReqFilteredCostMap, the constraint
attribute is expressed as:<figure>
<artwork>
“
[gt | lt | ge | le | eq ] <value>
”
</artwork>
</figure></t>
<t>In this specification, the constraint attribute is changed to<figure>
<artwork>
“
<cost-type2> [gt | lt | ge | le | eq ] <value>
”
</artwork>
</figure></t>
<t>Accordingly, the constraints definition is changed to:<figure>
<artwork>
“
constraints Defines a list of additional constraints on which
elements of the Cost Map are returned. This parameter MUST NOT be
specified if this resource's capabilities ( Section 10.2.2.4)
indicate that constraint support is not available. A constraint
contains three entities separated by whitespace: (1)an cost type
is by default cost-type in the JSON Object of type ReqFilteredCostMap.
In addition, it could be another cost-type used for the returned cost
(2) an operator, 'gt' for greater than, 'lt' for less than, 'ge' for
greater than or equal to, 'le' for less than or equal to, or 'eq' for
equal to; (3) a target cost value. The cost value is a number that
MUST be defined in the same units as the Cost Metric indicated by the
cost-metric parameter. ALTO Servers SHOULD use at least IEEE 754
double-precision floating point [IEEE.754.2008] to store the cost
value, and SHOULD perform internal computations using double-
precision floating-point arithmetic. If multiple 'constraint'
parameters are specified, they are interpreted as being related to
each other with a logical AND.
”
</artwork>
</figure></t>
</section>
<section title="Cost Metric Extensions: Cost Map attributes">
<section title="Attribute: linkdelay">
<figure>
<artwork>
Namespace:
Attribute name: linkdelay
Purpose: To specify the average link delay between two directly
connected neighboring peers in the network.
Value type: A single number value containing an integer component that
may be prefixed with an optional minus sign, which may
be followed by a fraction part and/or an exponent part.
Cardinality: *1
Attribute parameters: linkstate
Description: This is intended to be a new cost metric. It could be
used as a cost metric constraint attribute used together with cost
metric attribute 'routingcost' or as returned cost metric in the
response. 'routingcost' may also be used with other cost constraint
attributes that is used to specify cost constraints. If 'linkdelay'
is present, 'routingcost' MUST have at most one 'linkdelay'.
Cost mode: A Cost Mode is encoded as a US-ASCII string.
The string MUST either have the value 'numerical' or 'ordinal'.
Examples 1:
POST /endpointcost/lookup HTTP/1.1
Host: alto.example.com
Content-Length: 195
Content-Type: application/alto-endpointcostparams+json
Accept: application/alto-endpointcost+json,application/alto-error+json
{
"cost-type": {"cost-mode" : "numerical",
"cost-metric" : "linkdelay"},
"endpoints" : {
"srcs": [ "ipv4:192.0.2.2" ],
"dsts": [
"ipv4:192.0.2.89",
"ipv4:198.51.100.34",
"ipv4:203.0.113.45"
]
}
}
HTTP/1.1 200 OK
Content-Length: 231
Content-Type: application/alto-endpointcost+json
{
"meta" : {},
"data" : {
"cost-type": {"cost-mode" : "numerical",
"cost-metric" : "linkdelay"},
"map" : {
"ipv4:192.0.2.2": {
"ipv4:192.0.2.89" : 1,
"ipv4:198.51.100.34" : 2,
"ipv4:203.0.113.45" : 3
}
}
}
}
Example 2:
POST /endpointcost/lookup HTTP/1.1
Host: alto.example.com
Content-Length: 195
Content-Type: application/alto-endpointcostparams+json
Accept: application/alto-endpointcost+json,application/alto-error+json
{
"cost-type": {"cost-mode" : "numerical",
"cost-metric" : "routingcost"},
"constraints" : {"linkdelay ls 15"},
"endpoints" : {
"srcs": [ "ipv4:192.0.2.2" ],
"dsts": [
"ipv4:192.0.2.89",
"ipv4:198.51.100.34",
"ipv4:203.0.113.45"
]
}
}
HTTP/1.1 200 OK
Content-Length: 231
Content-Type: application/alto-endpointcost+json
"data": {
"cost type": {
"cost-mode": "numerical",
"cost-metric":"routingcost"},
"constraints" : {"linkdelay"},
}
"map": {
"ipv4:192.0.2.2": {
"ipv4:192.0.2.89": 0.0[linkdelay eq 0.0],
"ipv4:198.51.100.34": 15.0[linkdelay eq 3.0],
"ipv4:203.0.113.45": 1.0[linkdelay eq 12.0],
}
}
</artwork>
</figure>
</section>
<section title="Attribute: linkjitter">
<figure>
<artwork>
Namespace:
Attribute name: linkjitter
Purpose: To specify the average link delay variation between two
directly connected neighboring peers.
Value type: A single number value containing an integer component that
may be prefixed with an optional minus sign, which may
be followed by a fraction part and/or an exponent part.
Cardinality: *1
Attribute parameters: linkstate
Description: This is intended to be a constraint attribute value
used together with 'routingcost' cost metric attribute.
routingcost' may also be used with other cost constraint
attributes that is used to specify cost constraints.If 'linkjitter'
is present, 'routingcost' MUST have at most one 'linkjitter'.
Cost mode: A Cost Mode is encoded as a US-ASCII string.
The string MUST either have the value 'numerical' or 'ordinal'.
Examples:
POST /endpointcost/lookup HTTP/1.1
Host: alto.example.com
Content-Length: 195
Content-Type: application/alto-endpointcostparams+json
Accept: application/alto-endpointcost+json,application/alto-error+json
{
"cost-type": {"cost-mode" : "numerical",
"cost-metric" : "routingcost"},
"constraints" : {"linkdelay ls 15",”linkjitter ls 8”},
"endpoints" : {
"srcs": [ "ipv4:192.0.2.2" ],
"dsts": [
"ipv4:192.0.2.89",
"ipv4:198.51.100.34",
"ipv4:203.0.113.45"
]
}
}
HTTP/1.1 200 OK
Content-Length: 231
Content-Type: application/alto-endpointcost+json
"data": {
"cost type": {
"cost-mode": "numerical",
"cost-metric":"routingcost"},
"constraints" : {"linkdelay","linkjitter"}
"map": {
"ipv4:192.0.2.2": {
"ipv4:192.0.2.89": 0[linkdelay eq0.0,linkjitter eq0.00],
"ipv4:198.51.100.34": 5[linkdelay eq3.0,linkjitter eq1.0],
"ipv4:203.0.113.45":2[linkdelay eq12.0,linkjitter eq5.0],
}
</artwork>
</figure>
</section>
<section title="Attribute: linkloss">
<figure>
<artwork>Namespace:
Attribute name: linkloss
Purpose: To specify a percentage of the total traffic sent over a
configurable interval between two directly connected
neighboring peers.
Value type: A single number value containing an integer component that
may be prefixed with an optional minus sign, which may
be followed by a fraction part and/or an exponent part.
Cardinality: *1
Attribute parameters: linkstate
Description: This is intended to be new cost meric. It can be
either used as a constraint attribute value used together with
'routingcost' cost metric attribute or useds as returned cost
metric. routingcost' may also be used with other cost
constraint attributes that is used to specify cost constraints.
If 'linkloss' is present, routingcost' MUST have at most
one 'linkloss'.
Cost mode: A Cost Mode is encoded as a US-ASCII string.
The string MUST either have the value 'numerical' or 'ordinal'.
Examples:
POST /endpointcost/lookup HTTP/1.1
Host: alto.example.com
Content-Length: 195
Content-Type: application/alto-endpointcostparams+json
Accept: application/alto-endpointcost+json,application/alto-error+json
{
"cost-type": {"cost-mode" : "numerical",
"cost-metric" : "routingcost"},
"constraints" : {"linkloss le 0.3”}
"endpoints" : {
"srcs": [ "ipv4:192.0.2.2" ],
"dsts": [
"ipv4:192.0.2.89",
"ipv4:198.51.100.34",
"ipv4:203.0.113.45"
]
}
}
HTTP/1.1 200 OK
Content-Length: 231
Content-Type: application/alto-endpointcost+json
"data": {
"cost type": {
"cost-mode": "numerical",
"cost-metric":"routingcost"},
"constraints" : {"linkloss"}
"map": {
"ipv4:192.0.2.2": {
"ipv4:192.0.2.89": 0 [linkloss eq0],
"ipv4:198.51.100.34": 1 [linkloss eq0.0001],
"ipv4:203.0.113.45": 0 [linkloss eq0],
}
}
</artwork>
</figure>
</section>
<section title="Attribute: residualbandwidth">
<figure>
<artwork>Namespace:
Attribute name: residualbandwith
Purpose: To specify Maximum Link Bandwidth minus the bandwidth
currently allocated between two directly connected
neighboring peers. For a link, residual bandwidth is
defined to be Maximum Bandwidth minus the bandwidth
currently allocated to RSVP-TE packets. For a bundled
link, residual bandwidth is defined to be the sum of
the component link residual bandwidths.
Value type: A single number value containing an integer component that
may be prefixed with an optional minus sign, which may
be followed by a fraction part and/or an exponent part.
Cardinality: *1
Attribute parameters: linkstate
Description: This is intended to be a new cost metric. It could
be either used as a constraint attribute value used together
with 'routing cost' cost metric attribute or as returned cost
metric in the response.'routingcost' may also be used with
other cost constraint attributes that is used to specify
cost constraints.If 'residualbw' is present, 'routingcost'
MUST have at most one 'residualbw'.
Cost mode: A Cost Mode is encoded as a US-ASCII string.
The string MUST either have the value 'numerical' or 'ordinal'.
Examples:
POST /endpointcost/lookup HTTP/1.1
Host: alto.example.com
Content-Length: 195
Content-Type: application/alto-endpointcostparams+json
Accept: application/alto-endpointcost+json,application/alto-error+json
{
"cost-type": {"cost-mode" : "numerical",
"cost-metric" : "routingcost"},
"constraints" : {"residbw ls 15"},
"endpoints" : {
"srcs": [ "ipv4:192.0.2.2" ],
"dsts": [
"ipv4:192.0.2.89",
"ipv4:198.51.100.34",
"ipv4:203.0.113.45"
]
}
}
HTTP/1.1 200 OK
Content-Length: 231
Content-Type: application/alto-endpointcost+json
"data": {
"cost type": {
"cost-mode": "numerical",
"cost-metric":"routingcost"},
"constraints" : {"residbw"}
"map": {
"ipv4:192.0.2.2": {
"ipv4:192.0.2.89": 0[residbw eq0.000000],
"ipv4:198.51.100.34": 5[residbw eq12.5],
"ipv4:203.0.113.45":2[residbw eq5.9],
}
}
</artwork>
</figure>
</section>
<section title="Attribute: availablebandwidth">
<figure>
<artwork>
Namespace:
Attribute name: availablebandwith
Purpose: To specify the available bandwidth on a link between two
directly connected neighboring peers. For a link, available
bandwidth is defined to be residual bandwidth minus the
measured bandwidth used for the actual forwarding of non-
RSVP-TE packets. For a bundled link, available bandwidth
is defined to be the sum of the component link available
bandwidths.
Value type: A single number value containing an integer component that
may be prefixed with an optional minus sign, which may
be followed by a fraction part and/or an exponent part.
Cardinality: *1
Attribute parameters: linkstate
Description: This is intended to be a new cost metric. It can
be either used as constraint attribute value used together
with 'routing cost' cost metric attribute or used as returned
cost metric in the response.'routingcost' may also be used
with other cost constraint attributes that is used to specify
cost constraints.If 'availablebw' is present, 'routingcost'
MUST have at most one 'availablebw'.
Cost mode: A Cost Mode is encoded as a US-ASCII string.
The string MUST either have the value 'numerical' or 'ordinal'.
Examples:
POST /endpointcost/lookup HTTP/1.1
Host: alto.example.com
Content-Length: 195
Content-Type: application/alto-endpointcostparams+json
Accept: application/alto-endpointcost+json,application/alto-error+json
{
"cost-type": {"cost-mode" : "numerical",
"cost-metric" : "routingcost"},
"constraints" : {"availablebw ls 15"},
"endpoints" : {
"srcs": [ "ipv4:192.0.2.2" ],
"dsts": [
"ipv4:192.0.2.89",
"ipv4:198.51.100.34",
"ipv4:203.0.113.45"
]
}
}
HTTP/1.1 200 OK
Content-Length: 231
Content-Type: application/alto-endpointcost+json
"data": {
"cost type": {
"cost-mode": "numerical",
"cost-metric":"routingcost"},
"constraints" : {"residbw","availbw"}
"endpoints": {
"srcs": [ "ipv4:192.0.2.2" ],
"dsts": [
"ipv4:192.0.2.89",
"ipv4:198.51.100.34",
"ipv4:203.0.113.45"
]
}
"map": {
"ipv4:192.0.2.2": {
"ipv4:192.0.2.89": 0[residbw eq0,availbw eq0],
"ipv4:198.51.100.34": 0[residbw eq12.5,availbw eq10.5],
"ipv4:203.0.113.45":0[residbw eq5.9,availbw eq3.9],
}
}
</artwork>
</figure>
</section>
</section>
<section title="Cost Metric Extensions: Parameters">
<t>The following sections define Parameters used within cost metrics
Definitions in the section 3.</t>
<section title="Parameter: linkstate">
<figure>
<artwork>
Namespace:
Parameter name: linkstate
Purpose: Used in a multi-valued property to
indicate whether it is steady state
link performance.
Description: When a property is multi-valued,
LINKSTATE can be used to construct a steady state
Performance topology for initial tunnel path computation,
or to verify alternative failover paths. The LINSTATE
is set when the measured value of this parameter exceeds
its configured maximum threshold. The LINKSTATE is
cleared when the measured value falls below its
configured threshold. LINKSTATE should be used
together with Cost metric we defined in the
section 3. Cost Metrics prefixed with 'lss:' are
reserved for cost metric that is not steady state
link performance. Cost Metrics without prefix ‘lss:’
indicate the cost metrics are steady state link performace.
Examples:
POST /endpointcost/lookup HTTP/1.1
Host: alto.example.com
Content-Length: 195
Content-Type: application/alto-endpointcostparams+json
Accept: application/alto-endpointcost+json,application/alto-error+json
{
"cost-type": {"cost-mode" : "numerical",
"cost-metric" : "routingcost"},
"constraints" : {"linkdelay ls 15"},
"endpoints" : {
"srcs": [ "ipv4:192.0.2.2" ],
"dsts": [
"ipv4:192.0.2.89",
"ipv4:198.51.100.34",
"ipv4:203.0.113.45"
]
}
}
HTTP/1.1 200 OK
Content-Length: 231
Content-Type: application/alto-endpointcost+json
"data": {
"cost type":{
"cost-mode": "numerical",
"cost-metric":"routingcost"}
"constraints": {"linkdelay"}
"map": {
"ipv4:192.0.2.2": {
"ipv4:192.0.2.89": 0.0[lss:linkdelay eq 100],
}
}
</artwork>
</figure>
</section>
</section>
<section title="Security Considerations">
<t>The properties defined in this document present no security
considerations beyond those in Section 14 of the base ALTO specification
[draft-ietf-alto-protocol].</t>
</section>
<section title="IANA Considerations">
<t>IANA has added the following entries to the ALTO cost map Properties
registry, defined in Section 3 of [RFCXXX].</t>
<figure>
<artwork>
+-----------+--------------+------------------------+
| Namespace | Property | Reference |
+-----------+--------------+------------------------+
| | linkdelay | [RFCxxxx], Section 3.1 |
| | linkjitter | [RFCxxxx], Section 3.2 |
| | linkloss | [RFCxxxx], Section 3.3 |
| | residbw | [RFCxxxx], Section 3.4 |
| | availbw | [RFCxxxx], Section 3.5 |
+-----------+--------------+------------------------+
</artwork>
</figure>
<t>IANA has added the following entries to the " ALTO cost map
Parameters" registry, defined in [RFCxxxx] Section 4.1.</t>
<figure>
<artwork>
+-------+------------------------+------------------------+
| Name- | | |
| space | Parameter | Reference |
+-------+------------------------+------------------------+
| | LINKSTATE | [RFCxxxx], Section 4.1 |
+-------+------------------------+------------------------+
</artwork>
</figure>
</section>
</middle>
<back>
<references title="Normative References">
<reference anchor="RFC2119">
<front>
<title abbrev="RFC Key Words">Key words for use in RFCs to Indicate
Requirement Levels</title>
<author fullname="Scott Bradner" initials="S." surname="Bradner">
<organization>Harvard University</organization>
<address>
<postal>
<street>1350 Mass. Ave.</street>
<street>Cambridge</street>
<street>MA 02138</street>
</postal>
<phone>- +1 617 495 3864</phone>
<email>sob@harvard.edu</email>
</address>
</author>
<date month="March" year="1997" />
<area>General</area>
<keyword>keyword</keyword>
<abstract>
<t>In many standards track documents several words are used to
signify the requirements in the specification. These words are
often capitalized. This document defines these words as they
should be interpreted in IETF documents. Authors who follow these
guidelines should incorporate this phrase near the beginning of
their document: <list>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described
in RFC 2119.</t>
</list></t>
<t>Note that the force of these words is modified by the
requirement level of the document in which they are used.</t>
</abstract>
</front>
</reference>
<reference anchor="RFC5234">
<front>
<title>Augmented BNF for Syntax Specifications: ABNF</title>
<author fullname="D.Crocker" initials="D." surname="Crocker">
<organization></organization>
</author>
<date month="January" year="2008" />
</front>
<seriesInfo name="RFC" value="5234" />
</reference>
<reference anchor="RFC4627">
<front>
<title>The application/json Media Type for JavaScript Object
Notation (JSON)</title>
<author fullname="D. Crockford" initials="D." surname="Crockford">
<organization></organization>
</author>
<date month="July" year="2006" />
</front>
<seriesInfo name="RFC" value="4627" />
</reference>
<reference anchor="ALTO">
<front>
<title>ALTO Protocol</title>
<author fullname="R. Alimi" initials="R." surname="Alimi">
<organization></organization>
</author>
<date month="May" year="2013" />
</front>
<seriesInfo name="ID" value="draft-ietf-alto-protocol-16" />
</reference>
<reference anchor="OSPF">
<front>
<title>OSPF Traffic Engineering (TE) Metric Extensions</title>
<author fullname="S. Giacalone" initials="S." surname="Giacalone">
<organization></organization>
</author>
<date month="June" year="2013" />
</front>
<seriesInfo name="ID" value="draft-ietf-ospf-te-metric-extensions-04" />
</reference>
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-24 01:20:00 |