rfc2209.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,404 行 · 第 1/4 页

TXT
1,404
字号
                  point to the cPSB, then do the following.

                  -    Copy into the cPSB the OutInterface_list from the
                       PSB, if any, pointed to by fPSB.  Clear
                       OutInterface_list and turn on the Local_Only flag
                       in the PSB pointed to by fPSB, if any.

                  -    Turn off the Local_Only flag in the cPSB and set
                       fPSB to point to cPSB.

             4.   If Rt_OutL differs from OutInterface_list of the PSB
                  pointed to by fPSB, then:

                  -    Update the OutInterface_list of the PSB from
                       Rt_OutL, and then execute the PATH LOCAL REPAIR
                       event sequence below.

        o    If the Path_Refresh_Needed flag is now off, drop the PATH
             message and return.

             Otherwise (the path state is new or modified), do
             refreshes, upcalls, and state updates as follows.

             1.   If this PATH message came from a network interface and
                  not from a local application, make a Path Event upcall
                  for each local application for this session:

                       Call: <Upcall_Proc>( session-id, PATH_EVENT,
                                    flags, sender_tspec, sender_template
                                    [ , ADSPEC] [ , POLICY_DATA] )

             2.   If OutInterface_list is not empty, execute the PATH
                  REFRESH event sequence (below) for the sender defined
                  by the PSB.

             3.   Search for any matching reservation state, i.e., an
                  RSB whose Filter_spec_list includes a FILTER_SPEC
                  matching the SENDER_TEMPLATE and whose OI appears in
                  the OutInterface_list, and make this the `active RSB'.



Braden & Zhang               Informational                      [Page 7]

RFC 2209                RSVP-Message Processing           September 1997


                  If none is found, drop the PATH message and return.

             4.   Execute the RESV REFRESH sequence (below) for the PHOP
                  in the PSB.

             5.   Execute the event sequence UPDATE TRAFFIC CONTROL to
                  update the local traffic control state if necessary.
                  This sequence will turn on the Resv_Refresh_Needed
                  flag if the traffic control state has been modified in
                  a manner that should trigger a reservation refresh.
                  If so, execute the RESV REFRESH sequence for the PHOP
                  in the PSB.

        o    Drop the PATH message and return.

   PTEAR MESSAGE ARRIVES

        o    Search for a PSB whose (Session, Sender_Template) pair
             matches the corresponding objects in the message.  If no
             matching PSB is found, drop the PTEAR message and return.

        o    Forward a copy of the PTEAR message to each outgoing
             interface listed in OutInterface_list of the PSB.

        o    Find each RSB that matches this PSB, i.e., whose
             Filter_spec_list matches Sender_Template in the PSB and
             whose OI is included in OutInterface_list.

             1.   If the RSB style is explicit, then:
                  -    Delete from Filter_spec_list the FILTER_SPEC that
                       matches the PSB.

                  -    if Filter_spec_list is now empty, delete the RSB.

             2.   Otherwise (RSB style is wildcard) then:

                  -    If this RSB matches no other PSB, then delete the
                       RSB.

             3.   If an RSB was found, execute the event sequence UPDATE
                  TRAFFIC CONTROL (below) to update the traffic control
                  state to be consistent with the current reservation
                  and path state.

        o    Delete the PSB.

        o    Drop the PTEAR message and return.




Braden & Zhang               Informational                      [Page 8]

RFC 2209                RSVP-Message Processing           September 1997


   PERR MESSAGE ARRIVES

        o    Search for a PSB whose (SESSION, SENDER_TEMPLATE) pair
             matches the corresponding objects in the message.  If no
             matching PSB is found, drop the PERR message and return.

        o    If the previous hop address in the PSB is the local API,
             make an error upcall to the application:

                  Call: <Upcall_Proc>( session-id, PATH_ERROR,
                                 Error_code, Error_value, Node_Addr,
                                 Sender_Template [ , Policy_Data] )

             Any SENDER_TSPEC or ADSPEC object in the message is
             ignored.

             Otherwise, send a copy of the PERR message to the PHOP IP
             address.

        o    Drop the PERR message and return.

   RESV MESSAGE ARRIVES

        Initially, Refresh_PHOP_list is empty and the
        Resv_Refresh_Needed and NeworMod flags are off.  These variables
        are used to control immediate reservation refreshes.

        o    Determine the Outgoing Interface OI

             The logical outgoing interface OI is taken from the LIH in
             the NHOP object.  (If the physical interface is not implied
             by the LIH, it can be learned from the interface matching
             the IP destination address).

        o    Check the path state

             1.   If there are no existing PSB's for SESSION then build
                  and send a RERR message (as described later)
                  specifying "No path information", drop the RESV
                  message, and return.

             2.   If a PSB is found with a matching sender host but the
                  SrcPorts differ and one of the SrcPorts is zero, then
                  build and send an "Ambiguous Path" PERR message, drop
                  the RESV message, and return.






Braden & Zhang               Informational                      [Page 9]

RFC 2209                RSVP-Message Processing           September 1997


        o    Check for incompatible styles.

             If any existing RSB for the session has a style that is
             incompatible with the style of the message, build and send
             a RERR message specifying "Conflicting Style", drop the
             RESV message, and return.

        Process the flow descriptor list to make reservations, as
        follows, depending upon the style.  The following uses a filter
        spec list struct Filtss of type FILTER_SPEC* (defined earlier).

        For FF style: execute the following steps independently for each
        flow descriptor in the message, i.e., for each (FLOWSPEC,
        Filtss) pair.  Here the structure Filtss consists of the
        FILTER_SPEC from the flow descriptor.

        For SE style, execute the following steps once for (FLOWSPEC,
        Filtss), with Filtss consisting of the list of FILTER_SPEC
        objects from the flow descriptor.

        For WF style, execute the following steps once for (FLOWSPEC,
        Filtss), with Filtss an empty list.

        o    Check the path state, as follows.

             1.   Locate the set of PSBs (senders) that route to OI and
                  whose SENDER_TEMPLATEs match a FILTER_SPEC in Filtss.

                  If this set is empty, build and send an error message
                  specifying "No sender information", and continue with
                  the next flow descriptor in the RESV message.

             2.   If the style has explicit sender selection (e.g., FF
                  or SE) and if any FILTER_SPEC included in Filtss
                  matches more than one PSB, build and send a RERR
                  message specifying "Ambiguous filter spec" and
                  continue with the next flow descriptor in the RESV
                  message.

             3.   If the style is SE and if some FILTER_SPEC included in
                  Filtss matches no PSB, delete that FILTER_SPEC from
                  Filtss.

             4.   Add the PHOP from the PSB to Refresh_PHOP_list, if the
                  PHOP is not already on the list.






Braden & Zhang               Informational                     [Page 10]

RFC 2209                RSVP-Message Processing           September 1997


        o    Find or create a reservation state block (RSB) for
             (SESSION, NHOP).  If the style is distinct, Filtss is also
             used in the selection.  Call this the "active RSB".

        o    If the active RSB is new:

             1.   Set the session, NHOP, OI and style of the RSB from
                  the message.

             2.   Copy Filtss into the Filter_spec_list of the RSB.

             3.   Copy the FLOWSPEC and any SCOPE object from the
                  message into the RSB.

             4.   Set NeworMod flag on.

        o    If the active RSB is not new, check whether Filtss from the
             message contains FILTER_SPECs that are not in the RSB; if
             so, add the new FILTER_SPECs and turn on the NeworMod flag.

        o    Start or restart the cleanup timer on the active RSB, or,
             in the case of SE style, on each FILTER_SPEC of the RSB
             that also appears in Filtss.

        o    If the active RSB is not new, check whether STYLE, FLOWSPEC
             or SCOPE objects have changed; if so, copy changed object
             into RSB and turn on the NeworMod flag.

        o    If the message contained a RESV_CONFIRM object, copy it
             into the RSB and turn on NeworMod flag.

        o    If the NeworMod flag is off, continue with the next flow
             descriptor in the RESV message, if any.

        o    Otherwise (the NeworMod flag is on, i.e., the active RSB is
             new or modified), execute the UPDATE TRAFFIC CONTROL event
             sequence (below).  If the result is to modify the traffic
             control state, this sequence will turn on the
             Resv_Refresh_Needed flag and make a RESV_EVENT upcall to
             any local application.

             If the UPDATE TRAFFIC CONTROL sequence fails with an error,
             then delete a new RSB but restore the original reservation
             in an old RSB.

        o    Continue with the next flow descriptor.





Braden & Zhang               Informational                     [Page 11]

RFC 2209                RSVP-Message Processing           September 1997


        o    When all flow descriptors have been processed, check the
             Resv_Refresh_Needed flag.  If it is now on, execute the
             RESV REFRESH sequence (below) for each PHOP in
             Refresh_PHOP_list.

        o    Drop the RESV message and return.

             If processing a RESV message finds an error, a RERR message
             is created containing flow descriptor and an ERRORS object.
             The Error Node field of the ERRORS object is set to the IP
             address of OI, and the message is sent unicast to NHOP.

   RTEAR MESSAGE ARRIVES

        Processing of a RTEAR message roughly parallels the processing
        of the corresponding RESV message

        A RTEAR message arrives with an IP destination address matching
        outgoing interface OI.  Flag Resv_Refresh_Needed is initially
        off and Refresh_PHOP_list is empty.

        o    Determine the Outgoing Interface OI

             The logical outgoing interface OI is taken from the LIH in
             the NHOP object.  (If the physical interface is not implied
             by the LIH, it can be learned from the interface matching
             the IP destination address).

        o    Process the flow descriptor list in the RTEAR message to
             tear down local reservation state, as follows, depending
             upon the style.  The following uses a filter spec list
             struct Filtss of type FILTER_SPEC* (defined earlier).

             For FF style: execute the following steps independently for
             each flow descriptor in the message, i.e., for each
             (FLOWSPEC, Filtss) pair.  Here the structure Filtss
             consists of the FILTER_SPEC from the flow descriptor.

             For SE style, execute the following steps once for
             (FLOWSPEC, Filtss), with Filtss consisting of the list of
             FILTER_SPEC objects from the flow descriptor.

             For WF style, execute the following steps once for
             (FLOWSPEC, Filtss), with Filtss an empty list.







Braden & Zhang               Informational                     [Page 12]

RFC 2209                RSVP-Message Processing           September 1997


             1.   Find an RSB matching (SESSION, NHOP).  If the style is
                  distinct, Filtss is also used in the selection.  Call
                  this the "active RSB".  If no active RSB is found,
                  continue with next flow descriptor.

             2.   Check the style

                  If the active RSB has a style that is incompatible
                  with the style of the message, drop the RTEAR message
                  and return.

             3.   Delete from the active RSB each FILTER_SPEC that
                  matches a FILTER_SPEC in Filtss.

             4.   If all FILTER_SPECs have now been deleted from the
                  active RSB, delete the active RSB.

             5.   Execute the UPDATE TRAFFIC CONTROL event sequence
                  (below) to update the traffic control state to be
                  consistent with the reservation state.  If the result
                  is to modify the traffic control state, the
                  Resv_Refresh_Needed flag will be turned on and a
                  RESV_EVENT upcall will be made to any local
                  application.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?