home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-rsvp-pepci-00.txt < prev    next >
Text File  |  1997-07-28  |  36KB  |  1,277 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  Internet Draft                                    Jim Boyle
  8.  Expiration: January 25, 1998                         MCI
  9.  File: draft-ietf-rsvp-pepci-00.txt                Ron Cohen
  10.                                                       Class Data Systems
  11.                                                    Laura Cunningham
  12.                                                       MCI
  13.                                                    David Durham
  14.                                                       Intel
  15.                                                    Arun Sastry
  16.                                                       Cisco
  17.                                                    Raj Yavatkar
  18.                                                       Intel
  19.  
  20.  
  21.  
  22.           Protocol for Exchange of PoliCy Information (PEPCI)
  23.  
  24.  
  25.                              July 25, 1997
  26.  
  27.  
  28. Status of this Memo
  29.  
  30.  
  31.    This document is an Internet-Draft.  Internet-Drafts are working
  32.    documents of the Internet Engineering Task Force (IETF), its areas,
  33.    and its working groups.  Note that other groups may also distribute
  34.    working documents as Internet-Drafts.
  35.  
  36.    Internet-Drafts are draft documents valid for a maximum of six months
  37.    and may be updated, replaced, or obsoleted by other documents at any
  38.    time.  It is inappropriate to use Internet- Drafts as reference
  39.    material or to cite them other than as ``work in progress.''
  40.  
  41.    To learn the current status of any Internet-Draft, please check the
  42.    ``1id-abstracts.txt'' listing contained in the Internet- Drafts
  43.    Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  44.    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  45.    ftp.isi.edu (US West Coast).
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. Boyle et. al.                Expires January 25, 1998           [Page 1]
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62. Internet Draft                   PEPCI                     July 25, 1997
  63.  
  64.  
  65. Abstract
  66.  
  67.    This document describes a simple client/server model for supporting
  68.    policy for RSVP, and is designed to be extensible so that other kinds
  69.    of client types may be supported in the future. The model does not
  70.    make any assumptions about the algorithm of the policy server, but is
  71.    based on the server returning a single priority value in response to
  72.    a policy request.  The objective is to use this very basic model to
  73.    begin policy experimentation.
  74.  
  75. 1. Introduction
  76.  
  77.    This document describes Protocol for Exchange of PoliCy Information
  78.    (PEPCI) which can be used to exchange policy information between a
  79.    policy server and its clients.  The policy clients are expected to be
  80.    RSVP routers, that must exercise policy-based admission control over
  81.    RSVP usage.  We assume that at least one policy server exists in each
  82.    routing domain. The basic model of interaction between a policy
  83.    server and its clients is compatible with the RSVP extensions for
  84.    policy control [EXT].
  85.  
  86.    A chief objective of our proposal is to begin with a simple design
  87.    for easy/quick deployment, testing, and experimentation.  The main
  88.    characteristics of the proposed protocol include:
  89.  
  90.       1. The protocol uses TCP as the transport protocol for reliable
  91.       exchange of messages between policy clients and a server.
  92.       Therefore, no additional mechanisms are necessary for reliable
  93.       communication between a server and its clients.
  94.  
  95.       2. The protocol is designed to leverage off existing RSVP
  96.       implementations and makes extensive use of RSVP-like self-
  97.       identifying objects.
  98.  
  99.       3. Even though the protocol is mainly intended for administration
  100.       and enforcement of policies in conjunction with RSVP, the protocol
  101.       may be extended for administration of other policies such as
  102.       multicast group access and network security.
  103.  
  104.       4. The protocol relies on existing protocols for message
  105.       authentication.  Namely IPSEC [IPSEC] can be used to authenticate
  106.       and secure the channel between the LPM and the server and RSVP MD5
  107.       message authentication [MD5] can be used for inter-node
  108.       authentication.
  109.  
  110.  
  111.  
  112.  
  113. Boyle et. al.                Expires January 25, 1998           [Page 2]
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120. Internet Draft                   PEPCI                     July 25, 1997
  121.  
  122.  
  123.       5. Messages are exchanged asynchronously and there is no need for
  124.       error control or specific sequencing of messages.
  125.  
  126. 1.1. Basic Model
  127.  
  128.    We assume that each participating router has a Local Policy Module
  129.    (LPM) [LPM] and may communicate with a policy server for policy
  130.    decisions.  It is assumed that most communication with a policy
  131.    server will be done by border routers upon entry of an RSVP message
  132.    into a routing domain, although this protocol is not restricted to
  133.    such a model.
  134.  
  135.    A policy client establishes a TCP connection to the policy server to
  136.    begin communication and uses the connection to send requests to and
  137.    receive responses from the server. Communication between client and
  138.    server is mainly in the form of a request/response exchange, though
  139.    the server may occasionally send an unsolicited response to the
  140.    client to force a change to a previously approved state.
  141.  
  142.    The response from the server is in the form of Accept(Priority). The
  143.    priority returned by the policy server is a non-negative integer
  144.    indicating priority. Higher numbers indicate higher priority, and the
  145.    LPM interprets 0 as an indicator to completely deny the request. A
  146.    single policy value indicating priority enables the routers to sort
  147.    and kill sessions without requiring server intervention. For example,
  148.    suppose a router has already successfully admitted and installed a
  149.    reservation with priority 5. Later, if a new reservation request
  150.    comes in and is approved by the policy server at priority 10, but
  151.    cannot be admitted due to local admission control at the client, the
  152.    client can remove the previously admitted reservation (with priority
  153.    5) to make room for the newer, higher priority reservation.
  154.  
  155.    The LPM keeps state of known RSVP messages and processes policy as
  156.    part of admission control. In particular, the LPM keeps track of the
  157.    priority associated with each reservation message received. When a
  158.    new PATH or RESV message is received, the LPM sends a new request
  159.    message to the server.  The client includes RSVP objects from the
  160.    message in question and establishes a request identification handle
  161.    (RIH) for future reference to this message.  It should be noted that
  162.    this is done rather early in RSVP processing [RSVPPROC]. The server
  163.    responds with ACCEPT/REJECT indication and may optionally include
  164.    objects that provide for modification of the original message.  If
  165.    the message is accepted, it is further processed by RSVP including
  166.    RESV merging with other messages if necessary. If RESV messages are
  167.    merged, the client may end up with several policy objects to merge.
  168.  
  169.  
  170.  
  171. Boyle et. al.                Expires January 25, 1998           [Page 3]
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178. Internet Draft                   PEPCI                     July 25, 1997
  179.  
  180.  
  181.    This is resolved by attaching the Policy Object of the "largest"
  182.    downstream RESV to the forwarded RESV message. In the event of a
  183.    "tie" (i.e. there are multiple reservations that can be considered
  184.    the "largest" reservation), we will include the policy objects from
  185.    all the reservations.
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229. Boyle et. al.                Expires January 25, 1998           [Page 4]
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236. Internet Draft                   PEPCI                     July 25, 1997
  237.  
  238.  
  239.    For example, if a router receives two RESV messages for the same
  240.    session, it will check with the policy server separately for each
  241.    message and then keep track of the priority received as part of the
  242.    RSB for each message. When the two RESVs are successfully merged, the
  243.    merged RESV is forwarded with the policy object of the "larger"
  244.    original message.  If the higher priority reservation is later torn
  245.    down, the existing reservation would then revert to the next
  246.    "largest" reservation.  The RSVP implementation must keep track of
  247.    the associated priority. This could result in the lower priority
  248.    reservation "riding" the priority of a higher reservation and then
  249.    being torn down once the higher priority reservation is gone and
  250.    other reservations pre-empt the lower priority one. This is
  251.    considered acceptable as a side effect of merging benefits.
  252.  
  253.    Under this model, both the policy server and its client maintain
  254.    state associated with a particular request. Failure of a client or
  255.    the server is detected by the loss of a TCP connection.  Upon
  256.    failure, a client connects to a new server and the new server syncs
  257.    up with the client.
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287. Boyle et. al.                Expires January 25, 1998           [Page 5]
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294. Internet Draft                   PEPCI                     July 25, 1997
  295.  
  296.  
  297. 2. The Protocol
  298.  
  299.    This section describes the message formats and objects used by the
  300.    LPM and Policy Server.
  301.  
  302. 2.1 Common Header
  303.  
  304.    Each PEPCI message consists of the PEPCI header followed by a number
  305.    of client-specific objects.
  306.  
  307.                0              1              2              3
  308.         +--------------+--------------+--------------+--------------+
  309.         |Version|Flags |       Client Type           |    Op Code   |
  310.         +--------------+--------------+--------------+--------------+
  311.         |                            RIH                            |
  312.         +--------------+--------------+--------------+--------------+
  313.         |                      Message Length                       |
  314.         +--------------+--------------+--------------+--------------+
  315.  
  316.    The fields in the header are:
  317.       Version: 4 bits
  318.          PEPCI version number. Current version is 1.
  319.  
  320.       Flags: 4 bits
  321.          Flag bits
  322.  
  323.       Client Type: 16 bits
  324.          The type identification for the policy client Interpretation of
  325.          all encapsulated objects is relative to the client type. The
  326.          client type of 1 indicates an RSVP client using RSVP V1
  327.          objects. In the future, further types may be defined to
  328.          accommodate types of policies other than bandwidth and to
  329.          accommodate new versions of RSVP.
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345. Boyle et. al.                Expires January 25, 1998           [Page 6]
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352. Internet Draft                   PEPCI                     July 25, 1997
  353.  
  354.  
  355.       Op Code: 8 bits
  356.          The PEPCI operations:
  357.            1 = Request Query           (RQ)
  358.            2 = Request Response        (RR)
  359.            3 = Request Allowed         (RA)
  360.            4 = Delete Request          (DRQ)
  361.            5 = Synchronize State Req   (SSQ)
  362.            6 = Synchronize State Resp  (SSR)
  363.            7 = Unsolicited Response    (USR)
  364.  
  365.       RIH (Request Identification Handle): 32 bits
  366.          Client side value to uniquely identify message/association.
  367.          For example, an RSVP client will provide a handle to identify a
  368.          reservation request so that subsequent operations that apply to
  369.          the same message can be easily identified.  Similarly, if PATH
  370.          control is desired, an RSVP client would send the RSVP objects
  371.          associated with the PATH to the server and supply a RIH handle
  372.          for future references to this PATH state.
  373.  
  374.       Message Length: 32 bits
  375.          Size of message in bytes. This includes all encapsulated
  376.          objects, but not including the standard PEPCI header.
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403. Boyle et. al.                Expires January 25, 1998           [Page 7]
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410. Internet Draft                   PEPCI                     July 25, 1997
  411.  
  412.  
  413. 2.2 Object Formats
  414.  
  415.    All the objects follow the RSVP object format; each object consists
  416.    of one or more 32-bit words with a one-word header, with the
  417.    following format:
  418.  
  419.                0             1              2             3
  420.         +-------------+-------------+-------------+-------------+
  421.         |       Length (bytes)      |  Class-Num  | C-Type      |
  422.         +-------------+-------------+-------------+-------------+
  423.         |                                                       |
  424.         //                  (Object contents)                   //
  425.         |                                                       |
  426.         +-------------+-------------+-------------+-------------+
  427.  
  428.  
  429.    The Class Numbers are chosen to start with high values so as not to
  430.    conflict with Class Number values already defined for RSVP objects.
  431.    The choice of PEPCI specific class numbers ensures that PEPCI-
  432.    specific objects are never forwarded beyond the policy client.
  433.  
  434. 2.2.1 RSVP Objects
  435.  
  436.    RSVP Objects can be copied as is into PEPCI messages.  The first
  437.    Request Query which initializes the RIH for the message includes a
  438.    large portion of the RSVP message. In a PATH message, for instance,
  439.    there is no relevant information in the Integrity object and the
  440.    relevant information in the RSVP common header is included with the
  441.    PEPCI context object. So, the initial PEPCI request query from the
  442.    LPM to the server about an RSVP PATH message includes all the
  443.    remaining RSVP objects starting with the session object. These are
  444.    not encapsulated into PEPCI objects.  RESV RSVP messages will contain
  445.    the Session, Flowspec, Style, and, if applicable, the Filter objects.
  446.    The server can return a Policy Object within a Request Response which
  447.    the LPM must substitute for the Policy Object(s) that the router
  448.    received within that RSVP message.
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461. Boyle et. al.                Expires January 25, 1998           [Page 8]
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468. Internet Draft                   PEPCI                     July 25, 1997
  469.  
  470.  
  471. 2.2.2 Priority Object
  472.  
  473.    As stated earlier, the priority object is used to specify the
  474.    relative priorities among different reservation requests. A priority
  475.    of zero indicates a DENY.
  476.  
  477.    A priority value is encoded as an unsigned, 16-bit integer value.
  478.  
  479.         Class-Num = 128, C-Type = 1
  480.                 0             1              2              3
  481.         +--------------+--------------+--------------+--------------+
  482.         |          Priority           |  ////    Reserved     ////  |
  483.         +--------------+--------------+--------------+--------------+
  484.  
  485.  
  486. 2.2.3 Handle Object
  487.  
  488.    The handle object is designed to carry a handle that identifies a
  489.    particular association (such as a complete reservation request or
  490.    parts such as a particular PATH state).
  491.  
  492.    The handle is a 32-bit number chosen by a policy client at the time
  493.    of sending a new request to the policy server.
  494.  
  495.    Handles are optional for both the client and server, and there is no
  496.    special negotiation needed (between the client and server) to
  497.    determine the usage of the handle.
  498.  
  499.         Class-Num = 129, C-Type = 1
  500.  
  501.         +--------------+--------------+--------------+--------------+
  502.         |              Request Identification Handle                |
  503.         +--------------+--------------+--------------+--------------+
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519. Boyle et. al.                Expires January 25, 1998           [Page 9]
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526. Internet Draft                   PEPCI                     July 25, 1997
  527.  
  528.  
  529. 2.2.4 Reason Code Object
  530.  
  531.    A one octet, integer value used to provide additional reasons for a
  532.    particular response or a particular delete state notification.
  533.  
  534.         Class-Num = 130, C-Type = 1
  535.  
  536.         +--------------+--------------+--------------+--------------+
  537.         | Reason code  | ///////        RESERVED ///////            |
  538.         +--------------+--------------+--------------+--------------+
  539.  
  540. 2.2.5 Hold Off Timer Object
  541.  
  542.    The Hold Off Timer is used to specify the length of time for which a
  543.    given policy is valid, or the length of time the LPM should wait
  544.    before asking the policy server for a new policy value for a given
  545.    RIH. This timer acts as a simple mechanism to prevent denial of
  546.    service attacks on a policy server. It also works to ensure that
  547.    policy information must be renewed periodically.
  548.  
  549.    Times are encoded as 32-bit integer values and are in units of
  550.    seconds.  The time value is treated as a delta from the point at
  551.    which the LPM receives the message containing the Hold Off Timer.
  552.  
  553.    LPM implementation of this object is mandatory for clients, but its
  554.    use by servers is optional.
  555.  
  556.         Class-Num = 131, C-Type = 1
  557.  
  558.         +--------------+--------------+--------------+--------------+
  559.         |                       Hold Off Timer                      |
  560.         +--------------+--------------+--------------+--------------+
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577. Boyle et. al.                Expires January 25, 1998          [Page 10]
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584. Internet Draft                   PEPCI                     July 25, 1997
  585.  
  586.  
  587. 2.2.6 Interface Object
  588.  
  589.    The interface object is used to identify particular interfaces on a
  590.    router.  It is a 32-bit integer field whose value is the same as the
  591.    SNMP ifIndex value for that interface.
  592.  
  593.    There are two types of interfaces : incoming interfaces and outgoing
  594.    interfaces. An incoming interface is the interface on which the RSVP
  595.    message was received, and an outgoing interface is one on which the
  596.    RSVP message is being forwarded.
  597.  
  598.       in-interface:
  599.            Class-Num = 132, C-Type = 1
  600.  
  601.       out-interface
  602.            Class-Num = 133, C-Type = 1
  603.  
  604.                 0             1               2               3
  605.        +--------------+--------------+--------------+--------------+
  606.        |                         ifIndex                           |
  607.        +--------------+--------------+--------------+--------------+
  608.  
  609. 2.2.7 Context Object
  610.  
  611.    The context object carries the RSVP message type (PATH, RESV, etc.)
  612.    of the RSVP message that triggered the query.
  613.  
  614.         Class-Num = 134, C-Type = 1
  615.                  0             1               2               3
  616.         +--------------+--------------+--------------+--------------+
  617.         | RSVP MsgType |       ////    Reserved     ////            |
  618.         +--------------+--------------+--------------+--------------+
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635. Boyle et. al.                Expires January 25, 1998          [Page 11]
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642. Internet Draft                   PEPCI                     July 25, 1997
  643.  
  644.  
  645. 2.3 Request Query (RQ)  LPM -> Policy Server
  646.  
  647.    The client establishes a Request Identification Handle (RIH) which
  648.    the server maintains a state for, and uses to refer to this RSVP
  649.    message. It also sends portions of the RSVP message so Policy Servers
  650.    of varying complexity can use any information from the message
  651.    without requiring that the LPM make a determination of what to parse
  652.    out and send to the server.
  653.  
  654.    Once a RIH is established with a new request, any subsequent
  655.    modifications of the request can be made using the RQ message with a
  656.    previously established RIH. For example, when a change in a
  657.    reservation happens on a refresh (or some other means such as SNMP-
  658.    based state change on a router), the router will simply supply the
  659.    new information in a RQ message with the existing RIH associated with
  660.    the reservation state.
  661.  
  662.    The format of the Request Query message is as follows:
  663.  
  664.               <Request Query> ::= <Common Header>
  665.                                   <Context><in-interface>
  666.                                   <RSVP Objects>
  667.                                   [<Additional objects>]
  668.  
  669.    The additional objects are optional and can give more information on
  670.    the RSVP state. For example, in queries with Path context, the
  671.    additional objects may be a list of out-interface objects which
  672.    specify the outgoing interfaces on which this Path message is going
  673.    to be forwarded. Similarly, we can have a Reservation query with
  674.    multiple objects for the associated PATH states, e.g.
  675.  
  676.               <Request Query> ::= <Common Header>
  677.                                   <Context=RESV><in-interface>
  678.                                   <RSVP RESV Objects>
  679.                                   <associated path handle #1>
  680.                                   <associated path handle #2>
  681.                                   <associated path handle #3>
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693. Boyle et. al.                Expires January 25, 1998          [Page 12]
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700. Internet Draft                   PEPCI                     July 25, 1997
  701.  
  702.  
  703. 2.4. Request Response (RR)  Policy Server -> LPM
  704.  
  705.    The server responds to the RQ with a RR message that includes the
  706.    associated RIH and the response.  The priority value included in the
  707.    response indicates the result such as Deny (priority = 0 means
  708.    Reject) or Accept. In addition, the response may optionally include
  709.    policy objects (OUT_POLICY), whose structure is defined in [EXT], to
  710.    replace the incoming policy object(s). This assumes wholesale
  711.    replacement of a previously received policy object(s) with
  712.    appropriate modifications.
  713.  
  714.    In order to avoid the issue of keeping track of which Request Query a
  715.    particular response belongs to, it is important that, for a given
  716.    RIH, there be at most one outstanding response per query.  This
  717.    essentially means that the client should not issue more than one RQ
  718.    (for a given RIH) before it receives a corresponding RR.
  719.  
  720.    The format of the Request Response message is as follows:
  721.  
  722.             <Request Response> ::= <Common Header>
  723.                                    <Priority>
  724.                                    [ <Hold Off Timer> ]
  725.                                    [ <OUT_POLICY> ]
  726.                                    [ <Additional objects> ]
  727.  
  728.    The additional objects are optional and can give more information on
  729.    replacement of policy objects, and can permit the extension of policy
  730.    enforcement capabilities. For example, the additional objects may
  731.    carry <out-interface><OUT_POLICY> pairs, indicating that when
  732.    forwarding the message out that particular interface, the policy
  733.    object associated with this interface should supersede the policy
  734.    object received. This may be useful in multicast cases where
  735.    different policy objects should be forwarded out different
  736.    interfaces. The exact format of additional objects is left for future
  737.    work.  A router that does not support these additional objects should
  738.    ignore them.
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751. Boyle et. al.                Expires January 25, 1998          [Page 13]
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758. Internet Draft                   PEPCI                     July 25, 1997
  759.  
  760.  
  761. 2.5. Request Allowed (RA) LPM -> Policy Server
  762.  
  763.    This message serves as an acknowledgment to the server that a
  764.    particular request response has been acted upon.
  765.  
  766.            <Request Allowed> ::== <Common Header>
  767.                                   <Priority>
  768.  
  769. 2.6. Delete Request (DRQ)  LPM -> Policy Server
  770.  
  771.    This message indicates to the server that the PATH or RESV state has
  772.    been deleted. This will be used by the server to initiate appropriate
  773.    clean up actions. Reasons may include: PATH_ or RESV_TEAR, pre-
  774.    emption, SNMP, loss of soft state.
  775.  
  776.    The format of the Delete Request message is as follows:
  777.  
  778.            <Delete Request>  ::= <Common Header>
  779.                                  <Reason Code Object>
  780.  
  781.    Reason Code: 16 bits
  782.  
  783.                 Reason Code =   0       Unknown
  784.                                 1       Priority Changed
  785.                                 2       Pre-empted
  786.                                 3       TEAR
  787.                                 4       SNMP request
  788.                                 5       Loss of Soft State
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809. Boyle et. al.                Expires January 25, 1998          [Page 14]
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816. Internet Draft                   PEPCI                     July 25, 1997
  817.  
  818.  
  819. 2.7. Synchronize State Request (SSQ)  Policy Server -> LPM;
  820.  
  821.    The server uses this message to request a list of state that has been
  822.    approved and not yet deleted.  A case where this would be used is in
  823.    server connection startup time.  A long or short response may be
  824.    provided, and is indicated by a bit in the flag value.  A short
  825.    answer provides just a list of RIH values with their current priority
  826.    and their context and incoming interface.  A long answer additionally
  827.    provides the original RSVP message along with the OUT_POLICY object.
  828.  
  829.  
  830.       Flag:        LONG_ANSWER             0x1
  831.  
  832.    Each RSVP message is sent in a separate policy message.
  833.  
  834.    The format of the Synchronize State Query message is as follows:
  835.  
  836.                    <Synchronize State> ::= <Common Header>
  837.  
  838.    If the RIH is specified (a nonzero value), the server queries about
  839.    the state of a particular request.  RIH=0 indicates that server
  840.    wishes to synchronize all the state.
  841.  
  842. 2.8. Synchronize State Response (SSR) LPM -> Policy Server
  843.  
  844.  
  845.    The format of the Synchronize State Response message is as follows:
  846.  
  847.                    <Synchronize State> ::= <Common Header>
  848.                            <Priority #1><Handle #1>
  849.                            <Context><in-Interface>
  850.                            If Long:
  851.                            <RSVP Object><OUT-POLICY>
  852.                            endIf Long:
  853.                            <Priority #2><Handle #2>
  854.                            <Context><in-Interface>
  855.                            If Long:
  856.                            <RSVP Object><OUT-POLICY>
  857.                            endIf Long:
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867. Boyle et. al.                Expires January 25, 1998          [Page 15]
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874. Internet Draft                   PEPCI                     July 25, 1997
  875.  
  876.  
  877. 2.9 Unsolicited Response (USR)  Policy Server -> LPM
  878.  
  879.    The server can also send an unsolicited response to a client. One
  880.    example where this can happen is when a policy change is made at the
  881.    server, and a corresponding change needs to be effected at the client
  882.    (e.g. change a policy for a particular reservation to DENY, so that
  883.    reservation needs to be deleted.)
  884.  
  885.    The format for an USR is the same as that for a RR.
  886.  
  887. 2.10  ResvErr and PathErr control
  888.  
  889.    Policy control over RSVP Error messages is left as an option. RSVP
  890.    error messages carry policy objects which may add information to the
  891.    RSVP nodes along the way.
  892.  
  893.    Policy error messages generated by the router after the server has
  894.    denied a query request should carry the policy objects returned in
  895.    the query response.
  896.  
  897.    Error messages received from other routers are handled much like Path
  898.    and Resv messages. Since policy error messages do not create states,
  899.    the only PEPCI messages used are Request Query and Request Response.
  900.    The router should use a temporary handle that will allow it to match
  901.    reply to response, but otherwise has no significance.
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925. Boyle et. al.                Expires January 25, 1998          [Page 16]
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932. Internet Draft                   PEPCI                     July 25, 1997
  933.  
  934.  
  935. 3. Operation
  936.  
  937.    This section lists some sample exchanges between policy servers and
  938.    LPM clients.
  939.  
  940. 3.1. Client receives a new RSVP message, gets permission from Policy
  941. server, and, later, deletes the state when RESV is torn down.
  942.  
  943.         Client -> Server: RQ
  944.                 "RIH=4, RSVP objects incl. policy data"
  945.         Server -> Client: RR
  946.                 "RIH=4, Priority=5, OUT-POLICY"
  947.         Client -> Server: RA
  948.                 "RIH=4, Priority=5"
  949.         Client -> Server: DRQ
  950.                 "RIH=4, Reason Code = TEAR"
  951.  
  952.  
  953.         Client gets another RESV for the same session. We assume that
  954.         the client first checks with the policy server and then does
  955.         local merging, before forwarding the resulting policy objects
  956.         within the merged RESV towards PHOP(s).
  957.  
  958.         Client -> Server: RQ
  959.                 "RIH=11, objects in new incoming RESV inc' policy data"
  960.         Server -> Client: RR
  961.                 "RIH=11, Priority=6, OUT-POLICY"
  962.         Client -> Server: RA
  963.                 "RIH=11, Priority=6"
  964.  
  965. 3.2.  Server changes priority of an existing request.
  966.  
  967.         Server -> Client: USR
  968.                 "RIH=4, NewPriority = 10, Reason Code = 1, OUT-POLICY"
  969.         Client -> Server: RA
  970.                 "RIH=4, Priority=10"
  971.  
  972.         or, Server decides to pre-empt or abort a request accepted
  973.         earlier by sending an USR with priority zero
  974.  
  975.  
  976.         Server -> Client: USR
  977.                 "RIH=4, NewPriority = 0, Reason Code = 1, OUT-POLICY"
  978.         Client -> Server: DRQ
  979.                 "RIH=4, Reason Code = Preempt"
  980.  
  981.  
  982.  
  983. Boyle et. al.                Expires January 25, 1998          [Page 17]
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990. Internet Draft                   PEPCI                     July 25, 1997
  991.  
  992.  
  993. 3.3. Example of use of handle objects
  994.  
  995.         Client receives a PATH message, first contact the server for
  996.         PATH control
  997.  
  998.         Client -> Server: RQ
  999.                "RIH = 100, RSVP objects in the PATH message,
  1000.                 policy data"
  1001.         Server -> Client: RR
  1002.                 "RIH = 100, OUT_POLICY"
  1003.  
  1004.    Later, the client receives a RESV for the same session and wishes to
  1005.    include the PATH state info in its request. It uses RIH=100
  1006.    (previously established handle) to associate the relevant PATH state
  1007.    with its NEW request as in:
  1008.  
  1009.         Client -> Server: RQ
  1010.                 "RIH=7, RSVP objects, Policy data, Handle = 100"
  1011.  
  1012.    Server examines the information in the Query and the information
  1013.    about the Path state stored from previous query on Path and reaches a
  1014.    policy decision:
  1015.  
  1016.         Server -> Client: RR
  1017.                 "RIH=7, priority = 1, OUT-Policy"
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041. Boyle et. al.                Expires January 25, 1998          [Page 18]
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048. Internet Draft                   PEPCI                     July 25, 1997
  1049.  
  1050.  
  1051. 3.4. Server inquires about RIH 4.
  1052.  
  1053.         Server -> Client: SSQ (Long)
  1054.                 "RIH=4"
  1055.         Client -> Server: SSR (Long)
  1056.                 "RIH=4, Priority=10, OUT-POLICY,
  1057.                 RSVP Objects "
  1058.  
  1059.  
  1060. 3.5 Server requests a  list of state.
  1061.  
  1062.         Server -> Client: SSQ(Long, RIH=0)
  1063.         Client -> Server: SSR(Long)
  1064.                      "RIH=2, Context, In-Interface,
  1065.                            Priority=1, OUT-POLICY, RSVP_MESSAGE
  1066.                       RIH=4, Context, In-Interface,
  1067.                            Priority=10, OUT-POLICY, RSVP_MESSAGE
  1068.                       RIH=5, Context, In-Interface,
  1069.                            Priority=10, OUT-POLICY, RSVP_MESSAGE
  1070.                       RIH=8, Context, In-Interface,
  1071.                            Priority=100, OUT-POLICY, RSVP_MESSAGE"
  1072.  
  1073. 3.6 State Torn Down
  1074.  
  1075.         Client -> Server: DRQ
  1076.          "RIH=4, Reason=Tear"
  1077.  
  1078. 3.7 Admission error handling
  1079.  
  1080.    The client receives a RESV message and determines that this
  1081.    reservation was previously admitted using handle 100. Assuming that
  1082.    the flowspec of the new reservation is different, we might have
  1083.    something like:
  1084.  
  1085.          Client -> Server:  RQ
  1086.                   "RIH=100 NewFlowSpec, Policy data"
  1087.          Server -> Client:  RR
  1088.                   "RIH=100, Priority=4"
  1089.  
  1090.    The client tries to admit the reservation. If it fails, it tries to
  1091.    preempt installed reservations with lower priority. If it is still
  1092.    unable to admit the reservation, it does not send a RA indication,
  1093.    and performs the admission error operations as defined in [RSVP],
  1094.    including sending a ResvErr frame. According to [RSVP] the client
  1095.    should still keep the old active installed reservation. The client
  1096.  
  1097.  
  1098.  
  1099. Boyle et. al.                Expires January 25, 1998          [Page 19]
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106. Internet Draft                   PEPCI                     July 25, 1997
  1107.  
  1108.  
  1109.    will send a DRQ to the server only if it deletes an active
  1110.    (RESV/PATH) state. In order to keep the server in sync, the client
  1111.    will reissue a query to approve its active state:
  1112.  
  1113.           Client -> Server:  RQ
  1114.                    "RIH=100 ActiveFlowSpec, Policy data"
  1115.           Server -> Client:  RR
  1116.                    "RIH=100, Priority=4"
  1117.           Client -> Server:  RA
  1118.                    "RIH=100, Priority=4"
  1119.  
  1120. 3.8 ADSPEC control
  1121.  
  1122.    The following example describes a possible use of PEPCI to control
  1123.    ADSPEC values. The receiver uses the ADSPEC values received in the
  1124.    PATH message to decide on what QoS parameters are sent in the RESV
  1125.    message. The server may want to update the parameter AVAILABLE-PATH
  1126.    BANDWIDTH [INSCH] in the ADSPEC. This value carries information about
  1127.    the maximum bandwidth the receiver can successfully reserve due to
  1128.    physical resources limitations and bandwidth policy limitations.
  1129.  
  1130.         Client -> Server:  RQ
  1131.                "RIH=12, Path objects including Adspec, out-intfc 2 "
  1132.  
  1133.    Server pulls the ADSPEC from the request, and updates the Available
  1134.    path bandwidth parameter.
  1135.  
  1136.         Server -> Client: RR
  1137.                 "RIH=12, Priority=2, out-intfc=2, newAdspec "
  1138.  
  1139.    Client updates the values in newAdspec, if necessary, and sends it in
  1140.    the PATH message sent via interface 2.
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157. Boyle et. al.                Expires January 25, 1998          [Page 20]
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164. Internet Draft                   PEPCI                     July 25, 1997
  1165.  
  1166.  
  1167. 4. Security
  1168.  
  1169.    As mentioned in Section 2, security of RSVP messages is provided by
  1170.    inter-router MD5 authentication.  This assumes a chain-of-trust model
  1171.    for inter LPM authentication.  Security between LPM and server is
  1172.    provided by IPSEC.
  1173.  
  1174.    To ensure an LPM is talking to the correct policy server involves two
  1175.    issues: authentication of the policy client and server using a shared
  1176.    secret, and consistent proof that the connection remains valid. The
  1177.    shared secret requires manual configuration of keys, which is a
  1178.    maintenance issue. For validation of the connection, IPSEC AH will be
  1179.    used.
  1180.  
  1181. 5. Open issues
  1182.  
  1183. 6. References
  1184.  
  1185. [RSVP]  Braden, R. ed., "Resource ReSerVation Protocol (RSVP) -
  1186. Functional Specification."  Internet-Draft, draft-ietf-rsvp-spec-16.txt,
  1187. June 1997.
  1188.  
  1189. [EXT]   Herzog, S., "RSVP Extensions for Policy Control."  Internet-
  1190. Draft, draft-ietf-rsvp-policy-ext-02.txt, April 1997
  1191.  
  1192. [INSCH] Shenker, S., Wroclawski, J., "General Characterization
  1193. Parameters for Integrated Service Network Elements" Internet-Draft,
  1194. draft-ietf-intserv-charac-02.txt, October 1996
  1195.  
  1196. [IPSEC]  Atkinson, R., "Security Architecture for the Internet
  1197. Protocol."  RFC1825, August 1995.
  1198.  
  1199. [MD5]   Baker, F., "RSVP Cryptographic Authentication."  Internet-Draft,
  1200. draft-ietf-rsvp-md5-03.txt, May 1997.
  1201.  
  1202. [LPM]   Herzog, S., "Local Policy Modules (LPM): Policy Control for
  1203. RSVP." Internet-Draft, draft-ietf-rsvp-policy-lpm-01.ps, November 1996.
  1204.  
  1205. [RSVPPROC]  Braden, R., Zhang, L., "Resource ReSerVation Protocol (RSVP)
  1206. - Version 1 Message Processing Rules."  Internet-Draft, draft-ietf-
  1207. rsvp-procrules-00.txt, November 1996.
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215. Boyle et. al.                Expires January 25, 1998          [Page 21]
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222. Internet Draft                   PEPCI                     July 25, 1997
  1223.  
  1224.  
  1225. 6. Author Information and Acknowledgments
  1226.  
  1227.    Thanks Fred!
  1228.  
  1229.     Jim Boyle                      Ron Cohen
  1230.     MCI                            Class Data Systems
  1231.     2100 Reston Parkway            13 Hasadna St.
  1232.     Reston, VA 20191               Ra'anana 43650 Israel
  1233.     703.715.7006                   972.9.7462020
  1234.     jboyle@mci.net                 ronc@classdata.com
  1235.  
  1236.     Laura Cunningham               David Durham
  1237.     MCI                            Intel
  1238.     2100 Reston Parkway            2111 NE 25th Avenue
  1239.     Reston, VA 20191               Hillsboro, OR 97124
  1240.     703.715.7085                   503.264.6232
  1241.     lcunning@mci.net               David_Durham@ccm.jf.intel.com
  1242.  
  1243.     Arun Sastry                    Raj Yavatkar
  1244.     Cisco Systems                  Intel
  1245.     210 W Tasman Drive             2111 NE 25th Avenue
  1246.     San Jose, CA 95134             Hillsboro, OR 97124
  1247.     408.526.7685                   503.264.9077
  1248.     asastry@cisco.com              yavatkar@ibeam.intel.com
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273. Boyle et. al.                Expires January 25, 1998          [Page 22]
  1274.  
  1275.  
  1276.  
  1277.