RFC 1479
RFC 1479
Steenstrup
Request for Comments: 1479 BBN Systems and Technologies
July 1993
This RFC specifies an IAB standards track protocol for the Internet
community, and requests discussion and suggestions for improvements.
Please refer to the current edition of the "IAB Official Protocol
Standards" for the standardization state and status of this protocol.
Distribution of this memo is unlimited.
Abstract
Contributors
Table of Contents
1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Domain Elements . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Policy. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. IDPR Functions. . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1. IDPR Entities . . . . . . . . . . . . . . . . . . . . . . . 6
1.4. Policy Semantics. . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1. Source Policies . . . . . . . . . . . . . . . . . . . . . . 7
1.4.2. Transit Policies. . . . . . . . . . . . . . . . . . . . . . 8
1.5. IDPR Message Encapsulation. . . . . . . . . . . . . . . . . . 9
1.5.1. IDPR Data Message Format. . . . . . . . . . . . . . . . . .11
1.6. Security. . . . . . . . . . . . . . . . . . . . . . . . . . .12
1.7. Timestamps and Clock Synchronization. . . . . . . . . . . . .13
1.8. Network Management. . . . . . . . . . . . . . . . . . . . . .14
1.8.1. Policy Gateway Configuration. . . . . . . . . . . . . . . .17
1.8.2. Route Server Configuration. . . . . . . . . . . . . . . . .18
Steenstrup [Page 1]
RFC 1479 IDPR Protocol July 1993
Steenstrup [Page 2]
RFC 1479 IDPR Protocol July 1993
1. Introduction
Steenstrup [Page 3]
RFC 1479 IDPR Protocol July 1993
Steenstrup [Page 4]
RFC 1479 IDPR Protocol July 1993
1.2. Policy
Steenstrup [Page 5]
RFC 1479 IDPR Protocol July 1993
Route servers maintain both the routing information database and the
route database, and they generate policy routes using the routing
information collected and the source policies requested by the path
agents. A route server may reside within a policy gateway, or it may
exist as an autonomous entity. Separating the route server functions
from the policy gateways frees the policy gateways from both the
memory intensive task of database (routing information and route)
maintenance and the computationally intensive task of route
generation. Route servers, like policy gateways, each have a unique
numeric identifier within their domain, assigned by the domain
administrator.
Given the size of the current Internet, each policy gateway can
perform the route server functions, in addition to its message
forwarding functions, with little or no degradation in message
forwarding performance. Aggregating the routing functions into
policy gateways simplifies implementation; one need only install IDPR
protocols in policy gateways. Moreover, it simplifies communication
between routing functions, as all functions reside within each policy
gateway. As the Internet grows, the memory and processing required
to perform the route server functions may become a burden for the
policy gateways. When this happens, each domain administrator should
Steenstrup [Page 6]
RFC 1479 IDPR Protocol July 1993
separate the route server functions from the policy gateways in its
domain.
Steenstrup [Page 7]
RFC 1479 IDPR Protocol July 1993
unconditionally excluded.
UCI: The source user class for the traffic flows listed.
When selecting a route for a traffic flow from a source host H(i,j)
to a destination host H(i,k), where 1 < or = i < or = n and 1 < or =
j, k < or = fi, the path agent (see section 1.3.1) must honor the
source policy such that:
- For each domain, AD(p), contained in the route, AD(p) is not equal
to any AD(k), such that 1 < or = k < or = m and x(k) = EXCLUDE.
User Class Access Restrictions: The set of user classes to which the
transit policy applies.
Steenstrup [Page 8]
RFC 1479 IDPR Protocol July 1993
The domain advertising such a transit policy will carry traffic from
any host in the set H(i,j) in AD(i,j) to any host in the set H(i,k)
in AD(i,k), where 1 < or = i < or = n and 1 < or = j, k < or = fi,
provided that:
- Traffic from H(i,j) enters the domain during one of the intervals
in the set Temporal Access Restrictions.
- Traffic from H(i,j) enters via any VG(u,v) such that ENTRY is an
element of e(u,v), where 1 < or = u < or = m and 1 < or = v < or =
gu.
Steenstrup [Page 9]
RFC 1479 IDPR Protocol July 1993
for IDPR, and thus they are not required to handle IDPR messages.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VERSION | PROTO | LENGTH |
+---------------+---------------+-------------------------------+
| PATH ID |
| |
+---------------------------------------------------------------+
| TIMESTAMP |
+---------------------------------------------------------------+
| INT/AUTH |
| |
+---------------------------------------------------------------+
LENGTH (16 bits) Length of the entire IDPR data message in bytes.
PATH ID (64 bits) Path identifier assigned by the source's path agent
and consisting of the numeric identifier for the path agent's domain
(16 bits), the numeric identifier for the path agent's policy gateway
(16 bits), and the path agent's local path identifier (32 bits) (see
section 7.2).
1.6. Security
All IDPR entities must possess internal clocks that are synchronized
to some degree, in order for the absolute value of a message
timestamp to be meaningful. The synchronization granularity required
by IDPR is on the order of minutes and can be achieved manually.
o no integrity/authentication.
o research;
o commercial;
o support.
o User classes.
o Time of day.
- For each requested service that may appear within a path setup
message, the numeric identifier, syntax, and semantics. Available
requested services include but are not limited to:
- For each policy gateway and route server in the given domain, the
numeric identifier and set of addresses or names.
- For each virtual gateway connected to the given domain, the numeric
identifier, the numeric identifiers for the constituent peer policy
gateways, and the numeric identifier for the adjacent domain.
- For each local route server to which the given policy gateway
distributes routing information, the numeric identifier.
- For each source policy applicable to hosts within the given domain,
the syntax and semantics.
- For each requested service that may appear within a path setup
message, the numeric identifier, syntax, and semantics.
- For each source user class, the numeric identifier, syntax, and
semantics.
- For each policy gateway and route server in the given domain, the
numeric identifier and set of addresses or names.
- For each source policy applicable to hosts within the given domain,
the syntax and semantics.
- For each requested service that may appear within a path setup
message, the numeric identifier, syntax, and semantics.
- For each source user class, the numeric identifier, syntax, and
semantics.
All IDPR protocols use the Control Message Transport Protocol (CMTP),
a connectionless, transaction-based transport layer protocol, for
communication with intended recipients of control messages. CMTP
retransmits unacknowledged control messages and applies integrity and
authenticity checks to received control messages.
DATAGRAM:
Contains IDPR control messages.
- Destination.
- Integrity/authentication scheme.
- Timestamp.
- The DATAGRAM passes the CMTP validation checks. CMTP then delivers
the DATAGRAM with enclosed IDPR control message, to the appropriate
IDPR protocol, which in turn applies its own integrity checks to
the control message before acting on the contents. The recipient
IDPR protocol, except in one case, directs CMTP to generate an ACK
and return the ACK to the sender. That exception is the up/down
protocol (see section 3.2) which determines reachability of
adjacent policy gateways and does not use CMTP ACK messages to
notify the sender of message reception. Instead, the up/down
protocol messages themselves carry implicit information about
message reception at the adjacent policy gateway. In the cases
where the recipient IDPR protocol directs CMTP to generate an ACK,
it may pass control information to CMTP for inclusion in the ACK,
depending on the contents of the original IDPR control message.
For example, a route server unable to fill a request for routing
information may inform the requesting IDPR entity, through an ACK
for the initial request, to place its request elsewhere.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VERSION | PRT | MSG | DPR | DMS | I/A TYP |
+---------------+-------+-------+-------+-------+---------------+
| SOURCE AD | SOURCE ENT |
+-------------------------------+-------------------------------+
| TRANS ID |
+---------------------------------------------------------------+
| TIMESTAMP |
+-------------------------------+-------------------------------+
| LENGTH | message specific |
+-------------------------------+-------------------------------+
| DATAGRAM AD | DATAGRAM ENT |
+-------------------------------+-------------------------------+
| INFORM |
+---------------------------------------------------------------+
| INT/AUTH |
| |
+---------------------------------------------------------------+
VERSION
(8 bits) Version number for IDPR control messages, currently
equal to 1.
SOURCE AD (16 bits) Numeric identifier for the domain containing the
IDPR entity that generated the message.
SOURCE ENT (16 bits) Numeric identifier for the IDPR entity that
generated the message.
LENGTH (16 bits) Length of the entire IDPR control message, including
the CMTP header, in bytes.
RESERVED
(16 bits) Reserved for future use and currently set
equal to 0.
Type 1:
Acceptable IDPR control message version number.
DATAGRAM AD
(16 bits) Numeric identifier for the domain containing the IDPR
entity that generated the original DATAGRAM. Present only in
ACK and NAK messages.
DATAGRAM ENT (16 bits) Numeric identifier for the IDPR entity that
generated the original DATAGRAM. Present only in ACK and NAK
messages.
The information collected through VGP has both local and global
significance for IDPR. Virtual gateway connectivity information,
distributed to policy gateways within a single domain, aids those
policy gateways in selecting routes across and between virtual
gateways connecting their domain to adjacent domains. Inter-domain
connectivity information, distributed throughout an internetwork in
routing information messages, aids route servers in constructing
feasible policy routes.
Policy gateways use CMTP for reliable transport of VGP messages. The
issuing policy gateway must communicate to CMTP the maximum number of
transmissions per VGP message, vgp_ret, and the interval between VGP
message retransmissions, vgp_int microseconds. The recipient policy
gateway must determine VGP message acceptability; conditions of
acceptability depend on the type of VGP message, as we describe
below.
3.1.4. VG Representatives
- The UP/DOWN message most recently received from the adjacent policy
gateway indicates the up state, signifying that the adjacent policy
gateway considers the direct connection to be up.
- The UP/DOWN message most recently received from the adjacent policy
gateway indicates the down state, signifying that the adjacent
policy gateway considers the direct connection to be down.
3.3. Implementation
When the direct connection moves to the down state, the initial
values of the up/down protocol parameters must be set as follows:
When the direct connection moves to the up state, the initial values
of the up/down protocol parameters must be set as follows:
Computing the correct miss tally involves several steps. First, the
policy gateway prepares to slide the window by one slot so that the
oldest slot disappears, making room for the newest slot. However,
before sliding the window, the policy gateway checks the contents of
the oldest window slot. If this slot contains a miss, the policy
gateway decrements the miss tally by 1, as this slot is no longer
part of the current window.
After sliding the window, the policy gateway determines the proper
contents. If the hit tally for the current period equals 0, the
policy gateway records a miss for the newest slot and increments the
miss tally by 1. Otherwise, if the hit tally for the current period
is greater than 0, the policy gateway records a hit for the newest
slot and decrements the hit tally by 1. Moreover, the policy gateway
applies any remaining hits to slots containing misses, beginning with
the newest and progressing to the oldest such slot. For each such
slot containing a miss, the policy gateway records a hit in that slot
and decrements both the hit and miss tallies by 1, as the hit cancels
out a miss. The policy gateway continues to apply each remaining hit
tallied to any slot containing a miss, until either all such hits are
exhausted or all such slots are accounted for. Before beginning the
next up/down period, the policy gateway resets the hit tally to 0.
intra-domain routing.
gateway.
- For each transit policy, the local exit interfaces used to reach
the peer or neighbor policy gateway, provided it is reachable.
- The identifiers for the virtual gateways associated with the given
transit policy and currently reachable, with respect to that
transit policy, from the issuing policy gateway.
- The identifiers for the virtual gateways associated with the given
transit policy and currently reachable, with respect to that
transit policy, from the issuing virtual gateway.
3.5.1. UP/DOWN
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRC CMP | DST AD |
+-------------------------------+---------------+---------------+
| DST PG | PERIOD | STATE |
+-------------------------------+---------------+---------------+
SRC CMP
(16 bits) Numeric identifier for the domain component containing
the issuing policy gateway.
3.5.2. PG CONNECT
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ADJ AD | VG | RQST |
+-------------------------------+---------------+---------------+
| NUM RCH | NUM UNRCH |
+-------------------------------+-------------------------------+
For each reachable adjacent policy gateway:
+-------------------------------+-------------------------------+
| ADJ PG | ADJ CMP |
+-------------------------------+-------------------------------+
For each unreachable adjacent policy gateway:
+-------------------------------+
| ADJ PG |
+-------------------------------+
ADJ AD
(16 bits) Numeric identifier for the adjacent domain.
NUM RCH (16 bits) Number of adjacent policy gateways within the
virtual gateway, which are directly-connected to and currently
reachable from the issuing policy gateway.
NUM UNRCH (16 bits) Number of adjacent policy gateways within the
ADJ CMP (16 bits) Numeric identifier for the domain component
containing the reachable, directly-connected adjacent policy
gateway.
3.5.3. PG POLICY
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ADJ AD | VG | RQST |
+-------------------------------+---------------+---------------+
| NUM TP |
+-------------------------------+
For each transit policy associated with the virtual gateway:
+-------------------------------+-------------------------------+
| TP | NUM VG |
+-------------------------------+-------------------------------+
For each virtual gateway reachable via the transit policy:
+-------------------------------+---------------+---------------+
| ADJ AD | VG | UNUSED |
+-------------------------------+---------------+---------------+
| NUM CMP | ADJ CMP |
+-------------------------------+-------------------------------+
ADJ AD
(16 bits) Numeric identifier for the adjacent domain.
NUM CMP (16 bits) Number of adjacent domain components reachable via
direct connections through the virtual gateway.
ADJ CMP (16 bits) Numeric identifier for a reachable adjacent domain
component.
3.5.4. VG CONNECT
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ADJ AD | VG | RQST |
+-------------------------------+---------------+---------------+
| NUM PG |
+-------------------------------+
For each reach policy gateway in the virtual gateway:
+-------------------------------+-------------------------------+
| PG | NUM CMP |
+-------------------------------+-------------------------------+
| ADJ CMP |
+-------------------------------+
ADJ AD
(16 bits) Numeric identifier for the adjacent domain.
ADJ CMP (16 bits) Numeric identifier for a reachable adjacent domain
component.
3.5.5. VG POLICY
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ADJ AD | VG | RQST |
+-------------------------------+---------------+---------------+
| NUM TP |
+-------------------------------+
For each transit policy associated with the virtual gateway:
+-------------------------------+-------------------------------+
| TP | NUM GRP |
+-------------------------------+-------------------------------+
For each virtual gateway group reachable via the transit policy:
+-------------------------------+-------------------------------+
| NUM VG | ADJ AD |
+---------------+---------------+-------------------------------+
| VG | UNUSED | NUM CMP |
+---------------+---------------+-------------------------------+
| ADJ CMP |
+-------------------------------+
ADJ AD
(16 bits) Numeric identifier for the adjacent domain.
NUM GRP (16 bits) Number of groups of virtual gateways, such that all
members in a group are reachable from the issuing virtual
gateway via intra-domain routes supporting the given transit
policy.
NUM CMP (16 bits) Number of adjacent domain components reachable via
direct connections through the virtual gateway.
ADJ CMP (16 bits) Numeric identifier for a reachable adjacent domain
component.
Policy gateways and route servers use CMTP for reliable transport of
IDPR routing information messages flooded between peer, neighbor, and
adjacent policy gateways and between those policy gateways and route
servers. The issuing policy gateway must communicate to CMTP the
maximum number of transmissions per routing information message,
flood_ret, and the interval between routing information message
retransmissions, flood_int microseconds. The recipient policy
gateway or route server must determine routing information message
4.1. AD Representatives
suppose that, for a given domain, the virtual gateway group (VG
A,...,VG E) were configured for a transit policy such that each
virtual gateway was both a domain entry and exit point. Thus, all
virtual gateways in this group are configured to be mutually
reachable via intra-domain routes of the given transit policy. Now
suppose that VG E becomes unreachable because of a power failure and
furthermore that the remaining virtual gateways form two distinct
groups, (VG A,VG B) and (VG C,VG D), such that although virtual
gateways in both groups are still mutually reachable via some intra-
domain routes they are no longer mutually reachable via any intra-
domain routes of the given transit policy. In this case, the virtual
gateway groups for the given transit policy now become (VG A,VG B)
and (VG C,VG D); VG E is listed as an unavailable virtual gateway.
IDPR routing information messages that pass the CMTP validity checks
but appear less recent than stored routing information are
unacceptable. Policy gateways do not forward unacceptable routing
information messages, and route servers do not incorporate the
contents of unacceptable routing information messages into their
routing information databases. Instead, the recipient of an
unacceptable routing information message acknowledges the message in
one of two ways:
When the partition heals, the AD representative for the entire domain
generates and distributes a DYNAMIC message. In each route server's
routing information database, the new DYNAMIC message does not
automatically replace all of the currently-stored DYNAMIC messages
for the given domain. Instead, the new message only replaces that
message whose AD representative matches the AD representative for the
new message. The other DYNAMIC messages, generated during the period
over which the partition occurred, remain in the routing information
database until they attain their maximum lifetime, as described in
section 4.2.5 below. Such stale information may lead to the
generation of routes that result in path setup failures and hence the
there is a path setup failure (see section 7.4) involving the given
domain does the route server request, from another route server, the
most recent DYNAMIC message issued for the given domain.
4.3.1. CONFIGURATION
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AD CMP | SEQ |
+-------------------------------+-------------------------------+
| NUM TP | NUM RS |
+-------------------------------+-------------------------------+
| RS |
+-------------------------------+
For each transit policy configured for the domain:
+-------------------------------+-------------------------------+
| TP | NUM ATR |
+-------------------------------+-------------------------------+
For each attribute of the transit policy:
+-------------------------------+-------------------------------+
| ATR TYP | ATR LEN |
+-------------------------------+-------------------------------+
For the source/destination access restrictions attribute:
+-------------------------------+
| NUM AD GRP |
+-------------------------------+
For each domain group in the source/destination access restrictions:
+-------------------------------+-------------------------------+
| NUM AD | AD |
+---------------+---------------+-------------------------------+
| AD FLGS | NUM HST | HST SET |
+---------------+---------------+-------------------------------+
For the temporal access restrictions attribute:
+-------------------------------+
| NUM TIM |
+-------------------------------+
AD CMP
(16 bits) Numeric identifier for the domain component containing
the AD representative policy gateway.
NUM ATR (16 bits) Number of attributes associated with the transit
policy.
ATR TYP (16 bits) Numeric identifier for a type of attribute. Valid
attributes include the following types:
ATR LEN (16 bits) Length of an attribute in bytes, beginning with the
subsequent field.
NUM HST (8 bits) Number of "host sets" (see section 1.4.2) associated
with a particular domain or domain set. The value 0 indicates that
all hosts in the given domain or domain set are acceptable sources or
destinations, as specified by the fourth and fifth AD flags.
NUM TIM (16 bits) Number of time specifications associated with the
temporal access restrictions. Each time specification is split into
a set of continguous identical periods, as we describe below.
TIM FLGS (8 bits) Set of two flags indicating how to combine the time
specifications, contained in the right-most bits. Proceeding left to
right, the first flag indicates whether the transit policy applies
during the periods specified in the time specification (1 applies, 0
does not apply) and is used for representing complements of policy
applicability intervals. The second flag indicates whether the time
specification takes precedence over the previous time specifications
listed (1 precedence, 0 no precedence). Precedence is equivalent to
the boolean OR and AND operators, in the following sense. At any
given instant, a transit policy either applies or does not apply,
according to a given time specification, and we can assign a boolean
START (32 bits) Time at which the time specification first takes
effect, in seconds elapsed since 1 January 1970 0:00 GMT.
PERIOD (16 bits) Length of each time period within the time
specification, in minutes.
ACTIVE (16 bits) Length of the policy applicable interval during each
time period, in minutes from the beginning of the time period.
NUM UCI (16 bits) Number of user classes associated with the user
class access restrictions.
NUM VG GRP (16 bits) Number of virtual gateway groups (see section
1.4.2) associated with the virtual gateway access restrictions.
ADJ AD (16 bits) Numeric identifier for the adjacent domain to which
a virtual gateway connects.
4.3.2. DYNAMIC
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AD CMP | SEQ |
+-------------------------------+-------------------------------+
| UNAVL VG | NUM PS |
+-------------------------------+-------------------------------+
For each unavailable virtual gateway in the domain:
+-------------------------------+---------------+---------------+
| ADJ AD | VG | UNUSED |
+-------------------------------+---------------+---------------+
For each set of transit policies for the domain:
+-------------------------------+-------------------------------+
| NUM TP | NUM VG GRP |
+-------------------------------+-------------------------------+
| TP |
+-------------------------------+
For each virtual gateway group associated with the transit policy
set:
+-------------------------------+-------------------------------+
| NUM VG | ADJ AD |
+---------------+---------------+-------------------------------+
| VG | VG FLGS | NUM CMP |
+---------------+---------------+-------------------------------+
| ADJ CMP |
+-------------------------------+
AD CMP
(16 bits) Numeric identifier for the domain component containing
the AD representative policy gateway.
ADJ AD (16 bits) Numeric identifier for the adjacent domain to which
a virtual gateway connects.
NUM CMP (16 bits) Number of adjacent domain components reachable via
direct connections through the virtual gateway.
ADJ CMP (16 bits) Numeric identifier for a reachable adjacent domain
component.
Policy gateways and route servers use CMTP for reliable transport of
route server requests and responses. RSQP must communicate to CMTP
the maximum number of transmissions per request/response message,
rsqp_ret, and the interval between request/response message
retransmissions, rsqp_int microseconds. A route server
request/response message is "acceptable" if:
For all requests that it cannot fill, the route server responds with
a negative acknowledgement message carried in a CMTP acknowledgement,
indicating the set of unfulfilled requests (see section 5.5.4).
When the path agent in the remote route server receives the IDPR data
message, it extracts the DATAGRAM and hands it to CMTP. In addition,
the path agent, using the requesting entity and domain identifiers
contained in the path identifier, obtains, and if necessary sets up,
a path back to the requesting entity.
If the DATAGRAM fails any of the CMTP validation checks, CMTP returns
a NAK to the requesting entity. If the DATAGRAM passes all of the
CMTP validation checks, the remote route server assesses the
acceptability of the request message. Provided the request message
is acceptable, the remote route server determines whether it can
The remote route server generates responses for all requests that it
can fulfill and returns the responses to the requesting entity.
Specifically, the remote route server hands to CMTP its response and
the requesting entity information. CMTP in turn encloses the
response in a DATAGRAM.
When the path agent in the requesting entity receives the IDPR data
message, it extracts the ACK, NAK, or response to its request and
performs the CMTP validation checks for that message. In the case of
a response messsage, the requesting entity also assesses message
acceptability before incorporating the contents into the appropriate
database.
5.4. Routes
Path agents request routes from route servers when they require
policy routes for path setup. To obtain routes from a route server,
the requesting path agent issues a ROUTE REQUEST message containing
the destination domain and applicable service requirements, the
maximum number of routes requested, a directive indicating whether to
generate the routes or retrieve them from the route database, and a
directive indicating whether to refresh the routing information
database with the most recent CONFIGURATION or DYNAMIC message from a
given domain, before generating the routes. To refresh its routing
information database, a route server must obtain routing information
from another route server. The path agent usually issues routing
information database refresh directives in response to a failed path
setup. We discuss the application of these directives in more detail
in section 7.4.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| QRY AD | QRY RS |
+-------------------------------+-------------------------------+
| NUM AD | AD |
+---------------+---------------+-------------------------------+
| RIM FLGS | UNUSED |
+---------------+---------------+
QRY AD
(16 bits) Numeric identifier for the domain containing the
QRY RS (16 bits) Numeric identifier for the queried route server.
RIM FLGS (8 bits) Set of two flags indicating the type of routing
information messages requested, contained in the right-most
bits. Proceeding left to right, the first flag indicates
whether the request is for a CONFIGURATION message (1
CONFIGURATION, 0 no CONFIGURATION). The second flag indicates
whether the request is for a DYNAMIC message (1 DYNAMIC, 0 no
DYNAMIC). At least one of the first and second flags must be
set to 1.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| QRY AD | QRY RS |
+-------------------------------+-------------------------------+
| SRC AD | HST SET |
+---------------+---------------+-------------------------------+
| UCI | UNUSED | NUM RQS |
+---------------+---------------+-------------------------------+
| DST AD | PRX AD |
+---------------+---------------+-------------------------------+
| NUM RTS | GEN FLGS | RFS AD |
+---------------+---------------+-------------------------------+
| NUM AD |
+-------------------------------+
For each domain to be favored, avoided, or excluded:
+-------------------------------+---------------+---------------+
| AD | AD FLGS | UNUSED |
+-------------------------------+---------------+---------------+
QRY AD
(16 bits) Numeric identifier for the domain containing the
queried route server.
QRY RS (16 bits) Numeric identifier for the queried route server.
SRC AD (16 bits) Numeric identifier for the route's source domain.
HST SET (16 bits) Numeric identifier for the source's host set.
UCI (8 bits) Numeric identifier for the source user class. The value
0 indicates that there is no particular source user class.
GEN FLGS (8 bits) Set of three flags indicating how to obtain the
requested routes, contained in the right-most bits. Proceeding
left to right, the first flag indicates whether the route server
should retrieve existing routes from its route database or
generate new routes (1 retrieve, 0 generate). The second flag
indicates whether the route server should refresh its routing
information database before generating the requested routes (1
refresh, 0 no refresh) and when set to 1, causes the third flag
and the RFS AD field to become significant. The third flag
RFS AD (16 bits) Numeric identifier for the domain for which routing
information should be refreshed. This field is meaningful only
if the second flag in the GEN FLGS field is set to 1.
RQS TYP (16 bits) Numeric identifier for a type of requested service.
Valid requested services include the following types:
11. Path lifetime in bytes (48 bits). This attribute may be omitted
but must be present if types 7 or 8 are present.
RQS LEN
(16 bits) Length of the requested service, in bytes, beginning
with the next field.
RQS SRV
(variable) Description of the requested service.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NUM RTS |
+---------------+
For each route provided:
+---------------+---------------+
| NUM AD | RTE FLGS |
+---------------+---------------+
For each domain in the route:
+---------------+---------------+-------------------------------+
| AD LEN | VG | ADJ AD |
+---------------+---------------+-------------------------------+
| ADJ CMP | NUM TP |
+-------------------------------+-------------------------------+
| TP |
+-------------------------------+
NUM RTS
(16 bits) Number of policy routes provided.
RTE FLGS (8 bits) Set of two flags indicating the directions in which
a route can be used, contained in the right-most bits. Refer to
sections 6.2, 7, and 7.2 for detailed discussions of path
directionality. Proceeding left to right, the first flag
indicates whether the route can be used from source to
destination (1 from source, 0 not from source). The second flag
ADJ AD (16 bits) Numeric identifier for the adjacent domain connected
to the virtual gateway.
ADJ CMP (16 bits) Numeric identifier for the adjacent domain
component. Used by policy gateways to select a route across a
virtual gateway connecting to a partitioned domain.
NUM TP (16 bits) Number of transit policies that apply to the section
of the route traversing the domain component.
6. Route Generation
- Each route server should only generate policy routes from the
perspective of its own domain as source; it need not generate policy
routes for arbitrary source/destination domain pairs. Thus, we can
distribute the computational burden over all route servers.
6.1 Searching
6.1.1. Implementation
Data Structures:
- For each domain, initialize a null route, set the route bandwidth
to and set the following route characteristics to infinity: route
delay, route delay variation, session monetary cost, and route
length in hops.
Remove Next Node: These steps are performed for each virtual gateway
in the next-node data structure.
Next Node:
These steps are performed for all exit virtual gateways in the
above set.
- Select the route with the optimal value of the primary optimal
service, resolve ties by considering optimality according to any
other optimal requested services in the order in which they are
listed in the ROUTE REQUEST message, and associate the selected
route and its characteristics with the exit virtual gateway.
Exit:
Return a response to the route request, consisting of either a
set of candidate policy routes or an indication that the route
request cannot be fulfilled.
A path agent must query a route server for routes when it is unable
to fulfill a route request from its own route database. Moreover, we
recommend that a path agent automatically forward to a route server,
all route requests with non-null requested services. The reason is
that the path agent retains no route characteristics in its route
database. Hence, the path agent cannot determine whether an entry in
its route database satisfies the requested services.
requested by the path agent and the services offered by the domains
composing the route. To obtain the offered services information, the
route server consults its routing information database. The route
server either selects the first route encountered that is consistent
with both the requested and offered services, or, if no such route
exists in its route database, attempts to generate such a route.
Each policy gateway and each route server contains a path agent. The
path agent that initiates path setup in the source or source proxy
domain is the "originator", and the path agent that handles the
originator's path setup message in the destination or destination
proxy domain is the "target". Every path has two possible directions
of traffic flow: from originator to target and from target to
originator. Path control messages are free to travel in either
direction, but data messages may be restricted to only one direction.
Once a path for a policy route is set up, its physical realization is
a set of consecutive policy gateways, with policy gateways or route
servers forming the endpoints. Two successive entities in this set
belong to either the same domain or the same virtual gateway. A
PCP may build multiple paths between source and destination domains,
but it is not responsible for managing such paths as a group or for
eliminating redundant paths.
The path agent resident in the recipient policy gateway uses the
message header, including source and destination addresses and any
requested service information (for example, type of service), in
order to determine whether it is an intra-domain or inter-domain
message, and if inter-domain, whether it requires an IDPR policy
route. Specifically, the path agent attempts to locate a forwarding
information database entry for the given traffic flow, from the
information contained in the message header. In the future, for IP
messages, the relevant header information may also include special
service-specific IP options or even information from higher layer
protocols.
- IDPR inter-domain traffic flows for which a path has already been
The path agent uses the message header contents to guide the search
for a forwarding information database entry for a given traffic flow.
We recommend a radix search to locate such an entry. When the search
terminates, it produces either an entry, or, in the case of a new
IDPR traffic flow, a directive to generate an entry. If the search
terminates in an existing forwarding information database entry, the
path agent forwards the message according to that entry.
Suppose that the search terminates indicating that the traffic flow
from Hx to Hy requires an IDPR policy route and that no entry in the
forwarding information database yet exists for that traffic flow. In
this case, the path agent first determines the source and destination
domains associated with the message's source and destination
addresses, before attempting to obtain a policy route. The path
agent relies on the mapping servers to supply the domain information,
but it caches all mapping server responses locally to limit the
number of future queries. When attempting to resolve an address to a
domain, the path agent always checks its local cache before
contacting a mapping server.
If no suitable cache entry exists, the path agent queries the route
server, providing it with the source and destination domains together
with source policy information carried in the host message or
specified through configuration. Upon receiving a policy route
query, a route server consults its route database. If it cannot
locate a suitable route in its route database, the route server
attempts to generate at least one route to AD Y, consistent with the
requested services for Hx.
For new paths, the path agent initiates path setup, communicating the
policy route, in terms of requested services, constituent domains,
relevant transit policies, and the connecting virtual gateways, to
policy gateways in intermediate domains. Using this information, an
intermediate policy gateway determines whether to accept or refuse
the path and to which next policy gateway to forward the path setup
information. The path setup procedure allows policy gateways to set
up a path in both directions simultaneously. Each intermediate
policy gateway, after path acceptance, updates its forwarding
information database to include an entry that associates the path
identifier with the appropriate previous and next hop policy
gateways.
We note that data communication between Hx and Hy may occur over two
separate IDPR paths: one from AD X to AD Y and one from AD Y to AD X.
The reasons are that within a domain, hosts know nothing about path
agents nor IDPR paths, and path agents know nothing about other path
agents' existing IDPR paths. Thus, in AD Y, the path agent that
terminates the path from AD X may not be the same as the path agent
that receives traffic from Hy destined for Hx. In this case, receipt
of traffic from Hy forces the second path agent to set up an
independent path from AD Y to AD X.
The path direction portion of the local path identifier has different
interpretations, depending upon message type. In an IDPR path setup
message, the path direction indicates the directions in which the
path should be enabled: the value 01 denotes originator to target,
the value 10 denotes target to originator, the value 11 denotes both
directions, and the value 00 denotes neither direction. Each policy
gateway along the path interprets the path direction in the setup
message and sets up the forwarding information as directed. In an
IDPR data message, the path direction indicates the current direction
of traffic flow: either 01 for originator to target or 10 for target
to originator. Thus, if for example, an originator sets up a path
enabling only the direction from target to originator, the target
sends data messages containing the path identifier selected by the
originator together with the path direction set equal to 10.
SETUP:
Establishes a path by linking together pairs of policy gateways.
The SETUP message is generated by the originator and propagates
After generating the SETUP message and establishing the proper local
forwarding information, the originator selects the next policy
gateway on the path and forwards the SETUP message to the selected
policy gateway. The next policy gateway selection procedure,
described below, applies when either the originator or an
intermediate policy gateway is making the selection. We have elected
to describe the procedure from the perspective of a selecting
intermediate policy gateway.
In each case, the policy gateway abandons path setup, logs the event
for network management, and returns an ERROR message to the
originator via the previous policy gateway. These types of ERROR
messages indicate to the originator that the route may have been
generated using information from an out-of-date CONFIGURATION
message.
When evaluating the consistency of the path with the transit policies
configured for the domain, the policy gateway may encounter any of
the following problems with SETUP message contents:
- A transit policy does not apply in the given direction between the
virtual gateways listed in the SETUP message.
- A transit policy denies access to traffic from the given host set
between the source and destination domains listed in the SETUP
message.
In each case, the policy gateway abandons path setup, logs the event
for network management, and returns a REFUSE message to the
originator via the previous policy gateway. These types of REFUSE
messages indicate to the originator that the route may have been
generated using information from an out-of-date CONFIGURATION
message. The REFUSE message also serves to teardown the path.
all next policy gateways selected, it abandons path setup, logs the
event for network management, and returns the REFUSE message to the
originator via the previous policy gateway. These types of REFUSE
messages indicate to the originator that the route may have been
generated using information from an out-of-date DYNAMIC message. The
REFUSE message also serves to teardown the path.
Once the policy gateway determines that the SETUP message contents
are consistent with the transit policies and virtual gateway
reachability of its domain, it attempts to gain resources for the new
path. For this version of IDPR, path resources consist of memory in
the local forwarding information database. However, in the future,
path resources may also include reserved link bandwidth.
- No paths have been idle for more than pcp_idle (300) seconds. In
this case, the policy gateway returns a REFUSE message to the
previous policy gateway. This policy gateway then tries to select
a different next policy gateway, as described previously, provided
the policy gateway that issued the REFUSE message was not the
target. If the REFUSE message was issued by the target or if there
is no available next policy gateway, the policy gateway returns
the REFUSE message to the originator via the previous policy
gateway and logs the event for network management. The REFUSE
message serves to tear down the path.
- At least one path has been idle for more than pcp_idle seconds. In
this case, the policy gateway tears down an older path in order to
accommodate the newer path and logs the event for network
management. Specifically, the policy gateway tears down the least
recently used path among those that have been idle for longer than
pcp_idle seconds, resolving ties by choosing the oldest such path.
Once the SETUP message reaches the target, the target determines
whether it has sufficient path resources. The target generates an
ACCEPT message, provided it has sufficient resources to establish the
path. Otherwise, it generates a REFUSE message.
The target may choose to use the reverse path to transport data
traffic to the source domain, if the enabled path directions include
10 or 11. However, the target must first verify the consistency of
the reverse path with its own domain's configured transit policies,
before sending data traffic over that path.
Once set up, a path does not live forever. A path agent or policy
gateway may tear down an existing path, provided any of the following
conditions are true:
- The maximum path lifetime (in minutes, bytes, or messages) has been
exceeded at the originator, the target, or an intermediate policy
gateway. In each case, the IDPR entity detecting path expiration
logs the event for network management and generates a TEARDOWN
message as follows:
- The policy gateway has not failed in the past pg_up (24) hour
period. In this case, there are at least four possible reasons for
the unrecognized path identifier in the data message:
o The policy gateway failed sometime during the life of the path
and source sent no data on the path for a period of pg_up hours
following the failure. Although paths may persist for more than
pg_up hours, we expect that they will also be used more
frequently than once every pg_up hours.
In all cases, the policy gateway discards the data message and
logs the event for network management.
- The policy gateway has failed at least once in the past pg_up hour
period. Thus, the policy gateway assumes that the unrecognized
path identifier in the data message may be attributed to its
failure. In response to the data message, the policy gateway
generates an ERROR message containing the unrecognized path
identifier. The policy gateway then sends the ERROR message back
to the entity from which it received the data message, which should
be equivalent to the previous policy gateway on the path.
If the policy gateway has received an ACCEPT message for that path,
it then attempts path repair, as described in section 7.5.2 below.
Only if path repair is unsuccessful does the previous policy gateway
generate a TEARDOWN message for the path and return it to the
originator. The TEARDOWN message includes the domain and virtual
gateway containing the policy gateway that failed, which aids the
originator in selecting a new path that does not include the domain
containing the failed policy gateway. This mechanism ensures that
path agents quickly discover and recover from disrupted paths, while
guarding against unwarranted path teardown.
Failure of one of more entities on a given path may render the path
unusable. If the failure is within a domain, IDPR relies on the
intra-domain routing procedure to find an alternate route across the
domain, which leaves the path unaffected. If the failure is in a
virtual gateway, policy gateways must bear the responsibility of
repairing the path. Policy gateways nearest to the failure are the
first to recognize its existence and hence can react most quickly to
repair the path.
When an IDPR entity detects through an ERROR message that the next
policy gateway has no knowledge of a given path, it generates a
REPAIR message and forwards it to the next policy gateway. This
REPAIR message will reestablish the path through the next policy
gateway.
o The next policy gateway has no peers that are reachable via
intra-domain routes consistent with the requested services. In
this case, the entity tears down the path back to the
originator.
o The next policy gateway has a peer that belongs to the same
domain component and is directly-connected to and reachable from
the entity. In this case, the entity generates a REPAIR message
and forwards it to the next policy gateway's peer.
o The next policy gateway has a peer that belongs to the same
domain component, is not directly-connected to the entity, but
is directly-connected to and reachable from one of the entity's
peers, which in turn is reachable from the entity via an intra-
domain route consistent with the requested services. In this
case, the entity generates a REPAIR message and forwards it to
its peer.
- The recipient and the issuing entity are in the same domain or in
same virtual gateway. In this case, the recipient extracts the
SETUP message contained within the REPAIR message and treats the
message as it would any other SETUP message. Specifically, the
recipient checks consistency of the path with its domain's transit
policies and virtual gateway reachability. If there are
unrecognized portions of the SETUP message, the recipient generates
an ERROR message, and if there are path inconsistencies, the
recipient generates a REFUSE message. In either case, the
recipient returns the corresponding message to the policy gateway
from which it received the REPAIR message. Otherwise, if the
recipient accepts the REPAIR message, it updates its local
forwarding information database accordingly and forwards the REPAIR
message to a potential next policy gateway, according to the
information contained in the enclosed SETUP message.
- The recipient and the issuing entity are in different domains and
different virtual gateways. In this case, the recipient extracts
the SETUP message from the REPAIR message and determines whether
the associated path matches any of its established paths. If the
path does not match an established path, the recipient generates a
REFUSE message and returns it to the policy gateway from which it
received the REPAIR message. In response to the receipt of a
REFUSE message, the policy gateway tries a different next policy
gateway.
- The entity does not return an ACCEPT message to the originator, but
receipt of such a message indicates that the path has been
successfully repaired.
7.6.1. SETUP
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PATH ID |
| |
+-------------------------------+-------------------------------+
| SRC AD | HST SET |
+---------------+---------------+-------------------------------+
| UCI | UNUSED | NUM RQS |
+---------------+---------------+-------------------------------+
| DST AD | TGT ENT |
+-------------------------------+-------------------------------+
| AD PTR |
+-------------------------------+
For each requested service for the path:
+-------------------------------+-------------------------------+
| RQS TYP | RQS LEN |
+-------------------------------+-------------------------------+
| RQS SRV |
+---------------------------------------------------------------+
For each domain contained in the path:
+---------------+---------------+-------------------------------+
| AD LEN | VG | ADJ AD |
+---------------+---------------+-------------------------------+
| ADJ CMP | NUM TP |
+-------------------------------+-------------------------------+
| TP |
+-------------------------------+
PATH ID
(64 bits) Path identifier consisting of the numeric identifier
for the originator's domain (16 bits), the numeric identifier
for the originator policy gateway or route server (16 bits), the
path direction (2 bits), and the local path identifier (30
bits).
SRC AD (16 bits) Numeric identifier for the source domain, which may
be different from the originator domain if the originator domain
is a proxy for the source.
HST SET (16 bits) Numeric identifier for the source's host set.
UCI (8 bits) Numeric identifier for the source user class. The value
0 indicates that there is no particular source user class.
DST AD (16 bits) Numeric identifier for the destination domain, which
may be different from the target domain if the target domain is
a proxy for the destination.
TGT ENT (16 bits) Numeric identifier for the target entity. A value
of 0 indicates that there is no specific target entity.
AD PTR (16 bits) Byte offset from the beginning of the message
indicating the location of the beginning of the domain-specific
information, contained in the right-most 15 bits. The left-most
bit indicates whether the message includes expedited data (1
expedited data, 0 no expedited data).
RQS TYP (16 bits) Numeric identifier for a type of requested service
or source-specific information. Valid requested services are
described in section 5.5.2. Valid source source-specific
information includes the following types:
ADJ CMP (16 bits) Numeric identifier for a component of the adjacent
domain. Used to aid a policy gateway in routing across a
virtual gateway connected to a partitioned domain.
NUM TP (16 bits) Number of transit policies that apply to the section
of the path traversing the given domain component.
7.6.2. ACCEPT
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PATH ID |
| |
+---------------+-----------------------------------------------+
| RSN TYP | REASON |
+---------------+-----------------------------------------------+
PATH ID
(64 bits) Path identifier contained in the original SETUP
message.
RSN TYP (optional, 8 bits) Numeric identifier for the reason for
conditional path acceptance.
7.6.3 REFUSE
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PATH ID |
| |
+---------------+-----------------------------------------------+
| RSN TYP | REASON |
+---------------+-----------------------------------------------+
PATH ID
(64 bits) Path identifier contained in the original SETUP
message.
RSN TYP (8 bits) Numeric identifier for the reason for path refusal.
2. Transit policy denies access to traffic from the host set between
the source and destination domains. Numeric identifier for the
transit policy (16 bits).
7.6.4. TEARDOWN
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PATH ID |
| |
+---------------+-----------------------------------------------+
| RSN TYP | REASON |
+---------------+-----------------------------------------------+
PATH ID
(64 bits) Path identifier contained in the original SETUP
message.
RSN TYP (8 bits) Numeric identifier for the reason for path teardown.
5. Preempted path.
7.6.5. ERROR
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PATH ID |
| |
+---------------+---------------+-------------------------------+
| MSG | RSN TYP | REASON |
+---------------+---------------+-------------------------------+
PATH ID
(64 bits) Path identifier contained in the path control or data
message in error.
MSG (8 bits) Numeric identifier for the type of path control message
in error. This field is ignored for error type 5.
RSN TYP (8 bits) Numeric identifier for the reason for the PCP
message error.
7.6.6. REPAIR
8. Security Considerations
Refer to sections 1.6, 1.7, and 2.3 for details on security in IDPR.
9. Author's Address
Martha Steenstrup
BBN Systems and Technologies
10 Moulton Street
Cambridge, MA 02138
References
[1] Clark, D., "Policy Routing in Internet Protocols", RFC 1102, May
1989.
[6] Austein, R., "DNS Support for IDPR", Work in Progress, March
1993.
[9] McQuillan, J., Richer, I., Rosen, E., and Bertsekas, D.,
"ARPANET Routing Algorithm Improvements: Second Semiannual
Technical Report", BBN Report No. 3940, October 1978.
[10] Moy, J., "The OSPF Specification", RFC 1131, October 1989.
[12] Estrin, D., and Tsudik, G., "Secure Control of Transit Internet-
work Traffic, TR-89-15, Computer Science Department, University
of Southern California.
[14] Kent, S., and Linn, J., "Privacy Enhancement for Internet Elec-
tronic Mail: Part II - Certificate-based Key Management", RFC
1114, August 1989.
[16] Rivest, R., "The MD4 Message-Digest Algorithm", RFC 1320, April
1992.
[17] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April
1992.