Internet Engineering Task Force                                     IETF
Internet Draft                                                  iptel WG
draft-ietf-iptel-glp-attribs-00.txt   J. Rosenberg, H. Salama, M. Squire
June 25, 1999                    Bell Labs/Cisco Systems/Nortel Networks
Expires: December, 1999


               Attributes for a Gateway Location Protocol

STATUS OF THIS MEMO

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet- Drafts as reference
   material or to cite them other than as work in progress.

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

1 Abstract

   The Gateway Location Protocol (GLP) provides a mechanism for
   distributing and maintaining call routing tables between multiple
   internet telephony providers.  GLP is currently under development by
   the iptel WG.

   There have been multiple GLP proposals submitted to the IPTEL working
   group.  These proposals, although differing in some areas, have much
   common ground.  Specifically, the proposals each try to adapt many of
   the concepts from BGP for GLP, and have common themes in the areas of
   routing objects, route attributes, and route processing.  This draft
   offers recommendations based on the common areas in the current GLP
   proposals, covering the routing objects, route attributes, and route
   processing for GLP.  This draft represents a consensus among the
   multiple GLP proposals under consideration by the WG.

   Issues of transport and data synchronization are not considered in



Rosenberg,Salama,Squire                                         [Page 1]


Internet Draft               GLP Attributes                 25 June 1999


   this draft.  The data objects and their processing are considered
   independent of the transport and synchronization mechanisms.


2 GLP Overview and Background

   The Gateway Location Protocol (GLP) provides a mechanism for
   distributing and maintaining call routing tables between multiple
   internet telephony providers.  GLP is currently under development by
   the iptel WG.  An in-depth overview of GLP can be found in [1], but
   the framework is sketched here for convenience.

   There are several proposals for GLP under consideration by the iptel
   working group [2,3].  After discussions among the participants, it
   was clear that the proposals had a similar basic framework and view
   of the data objects that need to be distributed by GLP.  This draft
   addresses the definition and processing of the routing objects for
   GLP.

   GLP is an inter-domain protocol, where an IP Telephony Administrative
   Domain (ITAD) is a collection of IP telephony resources under the
   control of a single administrative authority.  Location Servers (LSs)
   participate in the GLP to maintain this database of gateways across
   multiple ITADs.  Another protocol, the intra-domain protocol, may be
   used by LSs within a domain to further distribute this information.
   The use of possibly different inter-domain and an intra-domain
   protocols is analogous to the use of the Border Gateway Protocol
   (BGP) [4] and the Open Shortest Path First (OSPF) [5] protocol to
   maintain routing tables between and within autonomous systems (IP
   routing domains).  Note that just as BGP can be used within an
   autonomous system, GLP can be use within an ITAD.  Using GLP within
   an ITAD provides reliability and scalability for inter-domain
   communications by permitting multiple border routers.  The general
   GLP model is depicted in Figure 1.

















Rosenberg,Salama,Squire                                         [Page 2]


Internet Draft               GLP Attributes                 25 June 1999



              ITAD1                                ITAD2
         -----------------                ------------------
        |                  |             |                  |
        |  ----            |             |           ----   |
        | | GW |           |             |          | EU |  |
        |  ----  -  ----   |             |  ----  /  ----   |
        |          | LS | ---------------- | LS |           |
        |  ----     ----   |             /  ----  -  ----   |
        | | GW | /         |            /|          | EU |  |
        |  ----            |           / |           ----   |
        |                  |          /  |                  |
         ------------------          /    ------------------
                                    /
                                   /
                        --------- /----------
                       |         |           |
                       |        ----         |
                       |       | LS |        |
                       |     /  ---- |       |
                       |  ----   ||   ----   |
                       | | GW |  ||  | EU |  |
                       |  ----   ||   ----   |
                       |  ----   ||   ----   |
                       | | GW | /  - | EU |  |
                       |  ----        ----   |
                       |                     |
                        ---------------------
                                 ITAD3


                       Figure 1.  General GLP Model

   A Location Server has access to a database of gateways, called the
   Gateway Information Base (GIB).  This database of gateways is
   constructed by combining the set of locally available gateways and
   the set of remote gateways (learned through GLP) based on policy.
   The LS also exports a set of gateways to its peer LSs in other ITADs.
   The set of exported gateways is constructed from the set of local
   gateways and the set of remote gateways (learned through GLP) based
   on policy.  As such, policy plays a central role in the LS operation.
   The internal model of a Location Server is shown in Figure 2.









Rosenberg,Salama,Squire                                         [Page 3]


Internet Draft               GLP Attributes                 25 June 1999



                          |
                          |Intra-domain protocol
                          |
                        Local
                       Gateways


   GLP-->  Gateways     POLICY     Gateways -->GLP
             IN                     Out
                          |
                          |
                       Gateway
                   Information Base


                 Figure 2.  Internal Location Server Model

   The gateway database contains a number of call routing objects.  The
   call routing objects received from other LSs via GLP serve as input
   to LS route processing, and the call routing objects advertised to
   other LSs and used for local routing decisions are the output of the
   LS route processing.  The LS route processing functions  include
   route origination, route selection, aggregation, and route
   dissemination.

   GLP is an application layer routing protocol for telephony signaling
   over IP networks.  Given a phone number (and possibly a set of
   attributes), an LS is capable of determining the next-hop signaling
   server to which signaling messages for that phone number should be
   forwarded.  This next-hop could be a terminating IP entity, an IP-
   PSTN gateway, or another signaling server.  The GLP attributes
   presented in this draft are concentrated on the signaling path and
   its properties.  The application of GLP for controlling aspects of
   the media path is an area for future investigation.

   An LS may represent a set of gateways in its administrative domain.
   An LS may have to inject new call routing objects into GLP for these
   gateways.  There are many potential methods for an LS to learn of the
   call routing objects that it should originate.  The methods include a
   front-end protocol, an intra-domain protocol, and static
   configuration.  The method by which an LS learns of new gateway
   information within its domain is outside the scope of GLP.  The
   process of injecting new gateway information into GLP, and
   determining the proper set of attributes for that information, is
   also known as route origination.

   An LS maintains the collection of call routing objects received from



Rosenberg,Salama,Squire                                         [Page 4]


Internet Draft               GLP Attributes                 25 June 1999


   other LSs via GLP.  An LS performs route selection on the set of
   received call routing objects.  Route selection is the process by
   which an LS chooses the routing objects out of this set to advertise
   to other LSs, and to use for local routing decisions.  The attributes
   of the candidate call routing objects are used by policy mechanisms
   within the LS to select certain routes for use and advertisement.

   Aggregation is a method of information reduction.  LSs may combine
   multiple call routing objects into a single call routing object in
   order to reduce the size of the database.  The ability to combine
   call routing objects, and the resultant call routing object, is
   dependent on the attributes of the component routing objects.

   An LS advertises selected routing objects to peer LSs.  The
   attributes included in advertised routing objects may not match the
   attributes that were included in the received routing object.  LSs
   may add, remove, or modify attributes before advertising a specific
   route.   Route dissemination is when an LS advertises selected call
   routing objects to its peers.


3 Overview of GLP Attributes

   Each call routing object consists of a number of attributes.  The
   primary attributes in any call routing object are the
   DestinationPhoneNumbers and NextHopSignalingServer attributes.  These
   attributes define a set of phone numbers and an address to which
   signaling messages destined for a phone number in that set should be
   sent.  These are analogous to the IP address prefix and a next-hop
   router in IP routing.

 3.1 TLV encoding

   Attributes are transported in a type-length-value encoding.  There is
   a flags field in the attribute that guides the processing of the
   attribute when the attribute is unrecognized.  Recognized attributes
   are processed according to their recognized definition.

 3.2 Attribute Types

   The following sections describe an initial set of attribute types
   recommended for GLP.  These attributes are defined in more detail in
   Section 4.

  3.2.1 DestinationPhoneNumbers

   This attribute defines the set of phone numbers described by the call
   routing object.  Each call routing object represents a limited range



Rosenberg,Salama,Squire                                         [Page 5]


Internet Draft               GLP Attributes                 25 June 1999


   of phone numbers as specified by an phone number prefix.

  3.2.2 NextHopSignalingServer

   This attribute gives the IP address of the entity to which signaling
   messages should be sent.  Unless further refined by the
   SignalingProtocols attribute, messages for any signaling protocol
   should be forwarded to this address.  Note that this is NOT the
   address to which the media (voice, video, etc.) should be
   transmitted.  Unlike BGP4 [4], the next-hop signaling server need not
   share a subnet with the LS, nor must an LS advertise only one of its
   own IP addresses as the next-hop.  An LS may advertise a next-hop
   with which it is not physically adjacent.

  3.2.3 AdvertisementPath

   The AdvertisementPath is analogous to the AS_PATH in BGP4 [4].  The
   attribute records the sequence of domains through which this object
   has passed.  The attribute is used to detect when the routing object
   is looping.  This attribute does NOT reflect the path through which
   signaling messages would traverse.  Since the next-hop need not be
   modified by each LS, the actual signaling path to the destination may
   not have to traverse every domain in the AdvertisementPath.

  3.2.4 GatewayCapacity

   All gateways are not created equal.  Some are large, capable of
   supporting hundreds or even thousands of simultaneous calls.  Others,
   such as residential gateways, may only support one or two calls.  The
   GatewayCapacity attribute may be used in route selection to select
   only those gateways with sufficient capacity.  The GatewayCapacity
   attribute might also be used to support a form of load balancing
   across gateways based on their relative capacities.

  3.2.5 SignalingProtocols

   GLP is designed to be independent of the signaling protocol used to
   establish multi-media sessions.  However, not all gateways and
   signaling servers will support all flavors of all signaling
   protocols.  The inclusion of the SignalingProtocols attribute is a
   refinement on the NextHopSignalingServer attribute to indicate that
   the next-hop is only valid for a certain set of signaling protocols.
   If this attribute is not present, it may be assumed that the next-hop
   can be used for any signaling protocol.

  3.2.6 Pricing

   The initiator of a voice session over the PSTN network may incur a



Rosenberg,Salama,Squire                                         [Page 6]


Internet Draft               GLP Attributes                 25 June 1999


   monetary charge for the PSTN services.  This attribute is used to
   advertise the charge for establishing and maintaining a session to
   the DestinationPhoneNumbers.  This cost generally reflects only those
   charges occurred after the egress gateway (ie on the PSTN network).
   Due to the complexity of the various pricing structures in use on the
   PSTN, this attribute is subtyped to yield a detailed pricing
   structure.  New pricing subtypes may be registered with ICANN using
   the procedures described in Section 7.  It is expected that the
   market requirements will drive the definition and implementation of
   new pricing structures.

  3.2.7 LastModifiedBy

   Call routing objects may be modified or propagated unchanged by an
   LS.  An LS may modify a routing object due to aggregation, it may
   filter an unknown attribute, it may add an attribute, or it may
   change the value of an existing attribute.  An LS that modifies
   certain attributes may include the LastModifiedBy attribute to
   indicate that this LS is the verifiable source of these attributes.
   The attributes that are covered by the LastModifiedBy attribute are
   identified by the LastModifiedByFlag as defined in Section 3.3.

  3.2.8 NumSignalingHops

   This attribute records the maximum and minimum number of signaling
   hops that a signaling message would have to be forwarded when using
   this routing object.  When an LS inserts a new NextHopSignalingServer
   for a call routing object, it increments the minimum and maximum
   number of signaling hops.   When an LS aggregates multiple routing
   objects into a single object, it recalculates the maximum and minimum
   number of signaling hops based on the aggregated routing objects.
   This attribute can be used to select a path with a shorter signaling
   path to the egress gateway.  Note that the media path is independent
   of the signaling path, and that this attribute does not describe
   anything about the media path.

  3.2.9 AtomicAggregate

   If an LS, when presented with a set of overlapping routes from a peer
   LS, selects the a specific route without selecting the more specific
   route, then the LS includes the AtomicAggregate attribute with the
   routing object.  An LS receiving a routing object with an
   AtomicAggregate attribute must not make make the set of destinations
   more specific when advertising it to other LSs.  The AtomicAggregate
   attribute indicates that a routing object may have traversed domains
   not listed in the AdvertisementPath.

  3.2.10 LocalPreference



Rosenberg,Salama,Squire                                         [Page 7]


Internet Draft               GLP Attributes                 25 June 1999


   The LocalPreference attribute is used to inform other LSs *within the
   same domain* of the local LSs preference for a given call routing
   object.  Other LSs within the same ITAD can use this attribute in
   their route selection process.  This attribute has no significance
   between domains.

  3.2.11 MultiExitDisc

   Two internet telephony administrative domains may be connected via
   more than one pair of LSs.  The MultiExitDisc attribute is used by an
   LS to express a preference for one link between the domains over
   another link.  The use of the MultiExitDisc attribute is controlled
   by local policy.

 3.3 Attribute Order

   An LS should order the attributes in any routing object numerically
   to facilitate faster operation.

 3.4 Mandatory Attributes

   Certain attributes are mandatory, ie they must be in every call
   routing object.  The DestinationPhoneNumbers attribute is an example
   of a mandatory attribute.  Mandatory attributes are identified in
   their definition.   Call routing objects that do not include all
   mandatory attributes are discarded.

 3.5 Attribute Flags

   It is clear that the set of attributes for GLP will evolve over time.
   Hence it is essential that mechanisms be provided to handle
   attributes with unrecognized types.  The handling of unrecognized
   attributes is controlled via the flags field of the attribute.
   Recognized attributes should be processed according to their specific
   definition.

   The following flags are recommended for GLP:

     Optional.  If set, the attribute is optional.  If not set, the
          attribute is well-known.  Every well-known attribute must be
          understood in order to process a routing object.

     Partial.  If set, indicates that the information in the attribute
          is partial.  Otherwise, the attribute is complete.  Partial
          attributes have not been processed by every LS along the
          relevant parts of the AdvertisementPath.

     IndependentTransitive.  If set, the attribute is an independent



Rosenberg,Salama,Squire                                         [Page 8]


Internet Draft               GLP Attributes                 25 June 1999


          transitive attribute.  IndependentTransitive attributes can be
          propagated by an LS even if they don't recognize the type.

     DependentTransitive.  If set, the attribute is an dependent transi-
          tive attribute.  DependentTransitive attributes can be pro-
          pagated by an LS even if they don't recognize the type only if
          the LS does not change the next-hop.

     LastModifiedByFlag.  If set, this attribute is covered by the Last-
          ModifiedBy attribute.  The source of this attribute can be
          authenticated by parsing the contents of the LastModifiedBy
          attribute.

   The transitivity flags only apply to optional attributes.  The tran-
   sitivity flags are ignored for well-known attributes.

  3.4.1 Attribute Flags and Route Selection

   The Optional flag determines whether an entire call routing object
   received from a peer should be processed or discarded.  If an LS
   receives a well-known attribute with an unrecognized type, then it
   must ignore the entire routing object.  If an LS receives an optional
   attribute with an unrecognized type, then it should process the rout-
   ing object according to the other flags.

   If a recognized attribute is received for which the flags are not
   properly set, that attribute should be ignored and not propagated.

   Any recognized attribute can be used as input to the route selection
   process, although the utility of some attributes in route selection
   is minimal.

  3.4.2 Attribute Flags and Route Dissemination

   GLP provides for two variations of transitivity due to the fact that
   intermediate LSs need not modify the NextHopSignalingServer when pro-
   pagating call routing objects.  Attributes may be non-transitive,
   dependent transitive, or independent transitive.  An attribute cannot
   be both dependent and independent transitive.  An attribute with both
   transitivity flags set should be ignored.

   Unrecognized *independent* transitive attributes may be propagated by
   any intermediate LS.  Unrecognized *dependent* transitive attributes
   may only be propagated if the LS is NOT changing the next-hop (given
   by the NextHopSignalingServer attribute).  The transitivity varia-
   tions permit some attributes to be carried end-to-end (independent
   transitive), some to be carried between adjacent next-hop signaling
   servers (dependent transitive), and other to be restricted to peer



Rosenberg,Salama,Squire                                         [Page 9]


Internet Draft               GLP Attributes                 25 June 1999


   LSs (non-transitive).

   An LS that passes an unrecognized transitive attribute to a peer must
   set the Partial flag on that attribute.  Any LS along a path may
   insert a transitive attribute into a call routing object.  If any LS
   except the originating LS inserts a new transitive attribute into a
   call routing object, then it must set the Partial flag on that attri-
   bute.  The Partial flag indicates that not every LS along the
   relevant path has processed and understood the attribute.  For
   independent transitive attributes, the "relevant path" is the path
   given in the AdvertisementPath attribute, while for dependent transi-
   tive attributes, it is only those domains that have passed this
   object since the NextHopSignalingServer was last modified.  The Par-
   tial flag in an independent transitive attribute must not be unset by
   any other LS along the path.  The Partial flag in a dependent transi-
   tive attribute must be reset whenever the next-hop is changed.

   The rules governing the addition of new non-transitive attributes are
   defined independently for each new non-transitive attribute.

   Any attribute may be updated by an LS in the path.

  3.4.3 Attribute Flags and Route Aggregation

   Each attribute defines how it is to be handled during route aggrega-
   tion.

   The rules governing the handling of unknown attributes are guided by
   the Attribute Flags.  Unrecognized transitive attributes are dropped.

   There should be no unrecognized non-transitive attributes during
   aggregation because non-transitive attributes must be processed by
   the local LS in order to be propagated.


     Editor's Note.  There are several options available to handle
     unrecognized transitive attributes during aggregation.  We can
     (a) drop them, (b) propagate them if they are binary
     equivalent, (c) define a set of aggregation operations and
     have these indicated by a flag(s) in the attribute (ie addi-
     tion, union, drop if !equal, etc.), (d) other suggestions?



4 Details of GLP Attributes

   This section provides a detailed description for each of the recom-
   mended attributes of GLP.  The processing of the attribute is



Rosenberg,Salama,Squire                                        [Page 10]


Internet Draft               GLP Attributes                 25 June 1999


   addressed in each of the following stages of route processing:  route
   origination, route selection, aggregation, and route dissemination.

 4.1 DestinationPhoneNumbers

   Mandatory: True.
   Flags: Well-known.

   The DestinationPhoneNumbers attribute describes the phone numbers
   that are covered by this call routing object.  If a phone number is
   covered by this call routing object, then this object can be used to
   reach that phone number.  Note that certain phone numbers or ranges
   may not exist on the PSTN, even though they are covered by this set.
   Black-holes (i.e., ranges of non-existant PSTN numbers) should not be
   advertised within GLP.

  4.1.1 Syntax of DestinationPhoneNumbers

   Phone numbers are represented by a string of digits giving a phone
   number prefix.  All phone numbers starting with this prefix are
   covered by this call routing object.

   The syntax for the phone number prefix is:
     phone-number-bound = +1*phone-digit
     phone-digit        = DIGIT
     DIGIT              = '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'

   This format is similar to the format for a global telephone number as
   defined in SIP [4] without visual separators.  This format facili-
   tates efficient comparison when using GLP to route SIP or H323, both
   of which use character based representations of phone numbers.


     Editor's Note.  This section is purposefully left somewhat
     vague due to the fact that one of the GLP proposals under con-
     sideration [2] uses an existing BGP extension to carry the
     this information and the next-hop, while the other proposal
     [3] would use new extensions for both.


  4.1.2 Route Origination and DestinationPhoneNumbers

   A gateway that can reach all valid numbers in the area code +1919
   should advertise +1919 as the DestinationPhoneNumbers, even though
   there may be more specific prefixes that do not actually exist on the
   PSTN.

   Destination phone numbers are injected into GLP by a method outside



Rosenberg,Salama,Squire                                        [Page 11]


Internet Draft               GLP Attributes                 25 June 1999


   the scope of GLP.  Possible methods include the front-end protocol,
   and intra-domain protocol, or static configuration.  The originating
   LS must include the DestinationPhoneNumbers in every call routing
   object.

  4.1.3 Route Selection and DestinationPhoneNumbers

   The destination phone numbers are a necessary criteria for route
   selection.

  4.1.4 Aggregation and DestinationPhoneNumbers

   To aggregate multiple call routing objects, the set of Destination-
   PhoneNumbers must combine to form a less specific set.  For example,
   the prefixes +19190, +19191, +19192, +19193, +19194, +19195, +19196,
   +19197, +19198, and +19199 could be aggregated to form the prefix
   +1919.

   In general, it takes ten (10) prefixes of length n to aggregate into
   a prefix of length n-1.  However, if an LS is aware that a prefix is
   an invalid PSTN prefix, then fewer more specific prefixes may be
   required.  For example, if the prefix +19191 is known not to exist,
   then an LS can aggregate to +1919 without +19191.  A prefix
   representing an invalid set of PSTN destinations is sometimes
   referred to as a "black-hole".   The method by which an LS is aware
   of black-holes is not within the scope of GLP.  It is recommended
   that an LS not explicitly advertise black-holes.


     Editor's Note.  We debated whether an LS should advertise
     black-holes within GLP, but came to the consensus that expli-
     cit black-hole advertisements should not be in GLP.  It seems
     unimportant whether signaling to an invalid number fails at
     the ingress, egress, or such an LS.  Knowledge of black-holes
     helps aggregation, but the best option seemed to be keeping
     the distribution of this knowledge outside of GLP.  Note that
     an LS cannot be prevented from advertising something it knows
     to be a black-hole.

     Editor's Note.  We were unable to reach consensus on the issue
     of "scope".  Using scope to geographically limit the distribu-
     tion of 800 numbers seemed like a bad idea, but there seems to
     be a need to map some non-unique numbers into a globally
     unique number space.  The disagreement over scope centered on
     whether one should apply this concept to just 800-type
     numbers, or to any private numbering space.  One camp believed
     that private numbers should not be advertised between domains,
     that the definition of private implied intra-domain only.  The



Rosenberg,Salama,Squire                                        [Page 12]


Internet Draft               GLP Attributes                 25 June 1999


     other camp believed that a confederation of providers may com-
     bine to provide a "VPN-like" service for handling private
     numbering spaces across domains, and hence that private
     numbers should be mapped into something globally unique and be
     carried between domains.  Comments?


  4.1.5 Route Dissemination and DestinationPhoneNumbers

   The DestinationPhoneNumbers attribute should be propagated to peers
   unchanged except by aggregation.


     Editor's Note.  The following alternative representation to
     prefixes was suggested.  Each digit position is represented by
     a 10-bit bitmask.  If digit position i has bit j set, then the
     digit j can appear in position i.  As an example, to
     [0100000000] represents all numbers starting with 1, and
     [0100000000, 0111111110] represents all numbers starting with
     11, 12, 13, ..., or 18.  This representation is very flexible
     with regards to aggregation, but its unclear how, given a
     phone number, one finds the 'most specific' match in an effi-
     cient manner.


 4.2 NextHopSignalingServer

   Mandatory: True.
   Flags: Well-known.

   The NextHopSignalingServer gives the address to which signaling mes-
   sages should be forwarded when routing a call using this object.

  4.2.1 NextHopSignalingServer Syntax

   For generality, the address of the next-hop signaling server may be
   of various types (IPv4, IPv6, etc).  The NextHopSignalingServer
   attribute includes an address type identifier, address length,  and a
   next-hop address.  The type of address is given by an Address Family
   Identifier as defined in RFC1700 [6].


     Editor's Note.  This section is purposefully left somewhat
     vague due to the fact that one of the GLP proposals under con-
     sideration [2] uses an existing BGP extension to carry the
     this information and the destination phone numbers, while the
     other proposal [3] would use new extensions for both.




Rosenberg,Salama,Squire                                        [Page 13]


Internet Draft               GLP Attributes                 25 June 1999


  4.2.2 Route Origination and NextHopSignalingServer

   When an LS originates a call routing object into GLP, it must include
   a NextHopSignalingServer within its domain.  The NextHopSignaling-
   Server could be an address of the egress gateway or of a signaling
   proxy.

  4.2.3 Route Selection and NextHopSignalingServer

   LS policy may prefer certain next-hops over others.


     Editor's Note:  Is it necessary to include the domain of the
     next-hop for policy applications?  Ie, is it a viable policy
     to prefer the next hop to be in domain X?  It may be possible
     to get the domain of the next-hop from the LastModifiedBy
     attribute, but this needs to be verified.  The SignalingPath
     attribute (Section 5.5) is another possible way to get this
     information.


  4.2.4 Aggregation and NextHopSignalingServer

   When aggregating multiple routing objects into a single routing
   object, an LS must insert a new signaling server from within its
   domain as the new NextHopSignalingServer.

  4.2.5 Route Dissemination and NextHopSignalingServer

   When propagating routing objects to peers, an LS may choose to insert
   an address of a signaling proxy within its domain as the new next-
   hop, or it may leave the next-hop unchanged.  Inserting a new address
   as the next-hop will cause the signaling messages to be sent to that
   address, and will provide finer control over the signaling path.
   Leaving the next-hop unchanged will yield a more efficient signaling
   path (ie fewer hops).  It is a local policy decision of the LS to
   decide whether to propagate or change the NextHopSignalingServer.

 4.3 AdvertisementPath

   Mandatory: True.
   Flags:  Well-known.

   The AdvertisementPath attribute is analogous to the AS_PATH attribute
   in BGP.  The attributes differ in that BGP's AS_PATH also reflects
   the path to the destination.  In GLP, the next-hop need not be modi-
   fied by every domain along the path, so the AdvertisementPath may
   include many more hops than the actual signaling path to the



Rosenberg,Salama,Squire                                        [Page 14]


Internet Draft               GLP Attributes                 25 June 1999


   destination.  The NumSignalingHops attribute reflects the number of
   signaling hops to the destination.

   This attribute identifies the ITADs through which routing information
   carried in an advertisement has passed.

  4.3.1 AdvertisementPath Syntax

   AdvertisementPath is a variable length attribute that is composed of
   a sequence of ITAD path segments. Each ITAD path segment is
   represented by a triple <path segment type, path segment length, path
   segment value>.

   The path segment type is a 1-octet long field with the following
   values defined:

     ValueSegment Type

     1. AP_SET: unordered set of ITADs a route in the advertisement mes-
        sage has traversed

     2. AP_SEQUENCE: ordered set of ITADs a route in the advertisement
        message has traversed


   The path segment length is a 1-octet long field containing  the
   number of ITADs in the path segment value field.

   The path segment value field contains one or more ITAD numbers, each
   encoded as a 2-octets long field.  ITAD numbers uniquely identify an
   Internet Telephony Administrative Domain, and must be obtained from
   IANA.  See Section 7.3 for procedures to obtain an ITAD number from
   IANA.

  4.3.2 Route Origination and AdvertisementPath

   When an LS originates a route then:

     a) The originating LS shall include its own ITAD number in the
     AdvertisementPath attribute of all advertisements sent to LSs
     located in neighboring ITADs.  In this case, the ITAD number of the
     originating LS's ITAD will be the only entry in the Adver-
     tisementPath attribute.

     b) The originating LS shall include an empty AdvertisementPath
     attribute in all advertisements sent to LSs located in its own
     ITAD.  An empty AdvertisementPath attribute is one whose length
     field contains the value zero.



Rosenberg,Salama,Squire                                        [Page 15]


Internet Draft               GLP Attributes                 25 June 1999


  4.3.3 Route Selection and AdvertisementPath

   The AdvertisementPath may be used for route selection. Possible cri-
   teria to be used are the number of hops on the advertisement path and
   the presence or absence of particular ITADs on the advertisement
   path.

  4.3.4 Aggregation and AdvertisementPath

   If routes to be aggregated have identical AdvertisementPath attri-
   butes, then the aggregated route has the same AdvertisementPath
   attribute as each individual route.

   For the purpose of aggregating AdvertisementPath attributes of two
   routes, we model each ITAD as a tuple <type, value>, where "type"
   identifies a type of the path segment the ITAD belongs to (e.g.
   AP_SEQUENCE, AP_SET), and "value" is the ITAD number.  Two ITADs are
   said to be the same if their corresponding <type, value> tuples are
   the same.

   For the purpose of aggregating AdvertisementPath attributes we model
   each ITAD within the AdvertisementPath attribute as a tuple <type,
   value>, where "type" identifies a type of the path segment the ITAD
   belongs to (e.g. AP_SEQUENCE, AP_SET), and "value" is the ITAD
   number.  If the routes to be aggregated have different Adver-
   tisementPath attributes, then the aggregated AdvertisementPath attri-
   bute shall satisfy all of the following conditions:

     - All tuples of the type AP_SEQUENCE in the aggregated Adver-
     tisementPath shall appear in all of the AdvertisementPath in the
     initial set of routes to be aggregated.

     - All tuples of the type AP_SET in the aggregated AdvertisementPath
     shall appear in at least one of the AdvertisementPath in the ini-
     tial set (they may appear as either AP_SET or AP_SEQUENCE types).

     - For any tuple X of the type AP_SEQUENCE in the aggregated Adver-
     tisementPath which precedes tuple Y in the aggregated Adver-
     tisementPath, X precedes Y in each AdvertisementPath in the initial
     set which contains Y, regardless of the type of Y.

     - No tuple with the same value shall appear more than once in the
     aggregated AdvertisementPath, regardless of the tuple's type.

   An implementation may choose any algorithm which conforms to these
   rules.  At a minimum a conformant implementation shall be able to
   perform the following algorithm that meets all of the above condi-
   tions:



Rosenberg,Salama,Squire                                        [Page 16]


Internet Draft               GLP Attributes                 25 June 1999


     - determine the longest leading sequence of tuples (as defined
     above) common to all the AdvertisementPath attributes of the routes
     to be aggregated. Make this sequence the leading sequence of the
     aggregated AdvertisementPath attribute.

     - set the type of the rest of the tuples from the AdvertisementPath
     attributes of the routes to be aggregated to AP_SET, and append
     them to the aggregated AdvertisementPath attribute.

     - if the aggregated AdvertisementPath has more than one tuple with
     the same value (regardless of tuple's type), eliminate all, but one
     such tuple by deleting tuples of the type AP_SET from the aggre-
     gated AdvertisementPath attribute.

   An implementation which chooses to provide a path aggregation algo-
   rithm which retains significant amounts of advertisement path infor-
   mation may wish to use the following procedure:

   For the purpose of aggregating AdvertisementPath attributes of two
   routes, we model each ITAD as a tuple <type, value>, where "type"
   identifies a type of the path segment the ITAD belongs to (e.g.
   AP_SEQUENCE, AP_SET), and "value" is the ITAD number.  Two ITADs are
   said to be the same if their corresponding <type, value> tuples are
   the same.

   The algorithm to aggregate two AdvertisementPath attributes works as
   follows:

     a) Identify the same ITADs (as defined above) within each Adver-
     tisementPath attribute that are in the same relative order within
     both AdvertisementPath attributes.  Two ITADs, X and Y, are said to
     be in the same order if either:
       - X precedes Y in both AdvertisementPath attributes, or
       - Y precedes X in both AdvertisementPath attributes.

     b) The aggregated AdvertisementPath attribute consists of ITADs
     identified in (a) in exactly the same order as they appear in the
     AdvertisementPath attributes to be aggregated. If two consecutive
     ITADs identified in (a) do not immediately follow each other in
     both of the AdvertisementPath attributes to be aggregated, then the
     intervening ITADs (ITADs that are between the two consecutive ITADs
     that are the same) in both attributes are combined into an AP_SET
     path segment that consists of the intervening ITADs from both
     AdvertisementPath attributes; this segment is then placed in
     between the two consecutive ITADs identified in (a) of the aggre-
     gated attribute. If two consecutive ITADs identified in (a) immedi-
     ately follow each other in one attribute, but do not follow in
     another, then the intervening ITADs of the latter are combined into



Rosenberg,Salama,Squire                                        [Page 17]


Internet Draft               GLP Attributes                 25 June 1999


     an AP_SET path segment; this segment is then placed in between the
     two consecutive ITADs identified in (a) of the aggregated attri-
     bute.

   If as a result of the above procedure a given ITAD number appears
   more than once within the aggregated AdvertisementPath attribute,
   all, but the last instance (rightmost occurrence) of that ITAD number
   should be removed from the aggregated AdvertisementPath attribute.


  4.3.5 Route Dissemination and AdvertisementPath

   When an LS propagates a route which it has learned from another LS,
   it shall modify the route's AdvertisementPath attribute based on the
   location of the LS to which the route will be sent:


     a) When a given LS advertises the route to another LS located in
        its own ITAD, the advertising LS shall not modify the Adver-
        tisementPath attribute associated with the route.

     b) When a given LS advertises the route to an LS located in a
        neighboring ITAD, then the advertising LS shall update the
        AdvertisementPath attribute as follows:

        1) if the first path segment of the AdvertisementPath is of type
           AP_SEQUENCE, the local system shall prepend its own ITAD
           number as the last element of the sequence (put it in the
           leftmost position).

        2) if the first path segment of the AdvertisementPath is of type
           AP_SET, the local system shall prepend a new path segment of
           type AP_SEQUENCE to the AdvertisementPath, including its own
           ITAD number in that segment.



 4.4 GatewayCapacity

   Mandatory: True.
   Flags: Well-known.

   The gateway capacity attribute is used to characterize the number of
   calls a gateway is capable of handling. In reality, a gateway's capa-
   city is dependent on many things, including the rates of its
   telephony interfaces (PRI, T1, T3), the rate of its IP interfaces
   (10Base-T, 100Base-T, T1), the number of codecs it can simultaneously
   support, the amount of memory and processing it has for handling



Rosenberg,Salama,Squire                                        [Page 18]


Internet Draft               GLP Attributes                 25 June 1999


   signaling, and local policy. Rather than breaking capacity into a
   complex function of all these factors, it is represented by a single
   metric - gateway capacity - in units of calls.

   The purpose of the metric is twofold.  First, it provides a useful
   input to route selection.  Secondly, it can serve as a means for load
   balancing.

   Its use as a tool for route selection is readily understood.  When
   presented with two routes which can reach the same phone prefixes, an
   LS might prefer to select the route with the larger capacity, and
   propagate that one.  The capacity metric can be used to drive more
   complex logic, limited only by the expressiveness of the policy at
   the LS.

   The capacity metric can also be used as a means for load balancing.
   Consider LS A, which has two routes to the same prefix P. The first
   route has a gateway capacity of 10, and the second route has a gate-
   way capacity of 20. LS A aggregates these two, and propagates a route
   with capacity 30 (see Section 4.4.5 for more details on aggregating
   this attribute).  When signaling messages arrive, the LS must decide
   which route to use.  Since the first gateway has twice the capacity
   of the second, it can send 2/3 of its calls to the first, and 1/3 to
   the second.  It can do so in a round-robin fashion, or through
   weighted hash functions on the call identifiers for each call.


     Editor's Note.  The exact methods for load-balancing require
     more work, but we believe load-balancing to be a valuable and
     important feature for GLP.


   Note, however, that the capacity attribute SHOULD NOT be treated as a
   guarantee on available capacity (i.e., that an LS can always initiate
   calls through a route so long as the number of calls is below the
   capacity), nor should it be treated as an absolute limit on capacity
   (i.e., that if an LS sends a call to a gateway, but there are already
   as many calls as indicated by the capacity, the next is rejected).
   Such guarantees can only be made through static division of capacity
   between peers, which is wasteful and difficult to administer. Furth-
   ermore, the aggregation procedures below are inexact, and the result-
   ing capacities can not carry the same guarantees as the original.

   For this reason, if a gateway has capacity C, it is acceptable for
   the originating gateway to advertise this gateway to two different
   peers, both with the capacity C.

  4.4.1 Capacity Syntax



Rosenberg,Salama,Squire                                        [Page 19]


Internet Draft               GLP Attributes                 25 June 1999


   The gateway capacity is an unsigned 32 bit quantity.

  4.4.2 Route Origination and Capacity

   The capacity attribute is mandatory in originated routes. It is set
   to the actual call capacity of the gateway, determined at the discre-
   tion of the administrator.

  4.4.3 Route Selection and Capacity

   The capacity attribute MAY be used as an input to route selection, as
   discussed above.

  4.4.4 Aggregation and Capacity

   Aggregation of the capacity attribute is non-trivial. The most
   simple-minded approach is to add the capacity attributes of two
   routes when aggregating. This approach is sensible when the prefixes
   are the same. However, when they are not, this approach makes less
   sense.  Consider two routes, A and B. Route A is to the prefix
   15551212 only, with capacity 100. Route B is to the prefix 1, with
   capacity 1.  Aggregating the prefixes is easy - the resulting aggre-
   gate prefix is 1.  However, the capacity is not really 101. Nearly
   all of the calls in this prefix will be routed to B, which only has
   capacity 1. As such, the process of aggregating capacity needs to
   take into consideration the relative size of phone prefixes being
   aggregated.

   The difficulty is that the call capacity in the aggregate is no
   longer uniform across the prefix space. As such, the meaning of capa-
   city must be redefined in such a way as to make sense for aggregates.
   The following definition appears sensible:

     Calls are made randomly and uniformly within the space of the
     prefix advertised by the route. The capacity C of the route is
     one less than the expected number of calls that can occur
     before the route runs out of space. The route runs out of
     space for a set of calls when it is impossible to distribute
     the calls to the component gateways in such a way that all
     calls can go through.

   Lets say an aggregate is composed of two non-overlapping prefixes p1
   and p2, of sizes w1 and w2 numbers respectively, and with capacities
   c1 and c2 respectively.  Here, size refers to the number of phone
   numbers covered by the prefix.  As calls are made to the aggregate,
   the calls fall within prefixes p1 and p2 with certain probabilities.
   So, if there are N calls, a certain number, on average, full within
   p1 (and thus go to the first gateway), and another number, on



Rosenberg,Salama,Squire                                        [Page 20]


Internet Draft               GLP Attributes                 25 June 1999


   average, fall within p2 (and thus go to the second gateway). The
   capacity of the aggregate is the number of calls N which cause either
   the first gateway or the second gateway to run out of room, on aver-
   age.

   Specifically, the probability of a call being within p1 is w1/(w1 +
   w2), and the probability of call being within p2 is w2/(w1+2). When
   there are N calls, there will be, on average, N*w1/(w1+w2) to the
   first prefix, and N*w2/(w1+w2) to the second prefix. The capacities
   of these prefixes are c1 and c2 respectively. Thus, the first prefix
   is exhausted, on average, when N = c1*(w1+w2)/w1, and the second pre-
   fix when N = c2*(w1+w2)/w2. The capacity of the aggregate (c3) is the
   minimum of these. So:

     c3 = min(c1*(w1+w2)/w1, c2(w1+w2)/w2)

   When w1 << w2, c3 = c2, and when w2 << w1, c3=c1. This is intuitive.
   The capacity of the aggregate is closest to the capacity of its larg-
   est component. When w1=w2 and c1=c2, c3=c1+c2, which is also intui-
   tive.

   When the prefixes overlap, the result is different. Assume prefix p2
   is completely within prefix p1. In this case:

     c3 = min(c1*w1/(w1-w2), (c1+c2)*w1/w2)

   Note that in this case, the primary attribute being aggregated is the
   Capacity attribute, not on the DestinationPhoneNumbers attribute.

   So how are w1 and w2 computed? In the case of IP addresses, a prefix
   of M bits contains 2^(32-M) addresses. This is because IP addresses
   are a fixed length of 32 bits. However, phone number prefixes are of
   variable length. Fortunately, the exact size of the prefix does not
   matter. In all of the computations above, it is only the relative
   sizes that are important. So, assume that phone numbers prefixes can
   have at most K digits. In that case, a prefix with d digits is of
   size 10^(K-d). So, with w1 = 10^(K-d1) and w2 = 10^(K-d2), the first
   of the above two equations becomes:

     c3 = min(c1*(10^(K-d1)+10^(K-d2))/10^(K-d1),
              c2*(10^(K-d1)+10^(K-d2))/10^(K-d2))

   Factoring out the 10^K term:

     c3 = min(c1*(10^-d1 + 10^-d2)/10^-d1,
              c2*(10^-d1 + 10^-d2)/10^-d2)        (Eq. 1)

   This means that the actual size of the prefix does not matter, as far



Rosenberg,Salama,Squire                                        [Page 21]


Internet Draft               GLP Attributes                 25 June 1999


   as capacity computations are concerned. Only the relative sizes are
   important. Performing the same computation for the second capacity
   expression:

     c3 = min(c1*(10^-d1)/(10^-d1 - 10^-d2),
              (c1+c2)*10^-d1/10^-d2)              (Eq. 2)

   When performing aggregation of capacity metrics, Eq. 1 SHOULD be used
   when the prefixes being aggregated do not overlap, and Eq. 2 SHOULD
   be used when the second prefix is completely encompassed within the
   first.  If an LS has more precise information about the size of a
   prefix or the probability distribution of calls, it MAY use alternate
   means to compute the aggregated capacity.  These equations should be
   applied iteratively when the set being aggregated contains more than
   two prefixes.

  4.4.5 Route Dissemination and Capacity

   The capacity attribute represents the call handling capacity of the
   gateway itself. This says nothing about the capacity of the media
   path or of the capacity of the signaling path. However, an intermedi-
   ate LS MAY modify the gateway capacity if it modifies the next hop,
   to reflect any known restrictions in capacity from the signaling and
   or media paths. An LS MAY increase or decrease the capacity, but it
   is RECOMMENDED that an LS only decrease it. If an LS propagates a
   route but does not modify the next hop, it SHOULD NOT modify the
   capacity.

 4.5 SignalingProtocols

   Mandatory: False.
   Flags: Optional, DependentTransitive.

   The signaling protocols attribute specifies the signaling protocols
   and key signaling protocol parameters that are understood by the next
   hop signaling server. It is always re-originated by an LS which modi-
   fies the next hop, to reflect the capabilities of that next hop.

   The attribute contains both the basic protocol (currently, codepoints
   exist for SIP, H.323/Q.931 and H.323/RAS; others can be registered
   with ICANN), and parameters of that protocol necessary to determine
   interoperability or required for signaling exchange. Specifically,
   this includes transport protocols (TCP or UDP), port numbers, and
   ISUP-variants. The ISUP-variants component is present since some sig-
   naling protocols, such as SIP, can carry ISUP messages in their
   bodies. These ISUP messages are analyzed, processed, and potentially
   translated by intermediate  signaling servers. As such, it is impor-
   tant to know what ISUP variants, if any, are supported by a signaling



Rosenberg,Salama,Squire                                        [Page 22]


Internet Draft               GLP Attributes                 25 June 1999


   server.

  4.5.1 SignalingProtocols Syntax

   The signaling protocols attribute is a set of TLV objects. The type
   field is one byte, length is two bytes, and value has the length
   specified by the length field. Some objects may appear more than
   once.  Whether this is allowed, and the meaning when this happens,
   depends on the type.


     Editor's Note:  We should probably make each signalling proto-
     col into its own attribute because much of the related infor-
     mation is specific to one particular signalling protocol.  For
     example, the UDP port numbers will likely be different if a
     single server supports both SIP & H323.


   4.5.1.1 Base Protocol

   The base protocol object is variable length, as indicated by the
   length field. In indicates the base signaling protocols supported.
   Each protocol is indicate by a single byte. Thus, if three signaling
   protocols are supported, the length of the object is three bytes.
   Currently defined values are:


       0: SIP
       1: H323/Q.931
       2: H323/RAS


   Others can be registered with IANA as needed.

   4.5.1.2 Transport Protocol

   The transport protocol object is variable length, as indicated by the
   length field. In indicates the base transport protocols supported.
   Each protocol is indicate by a single byte. Thus, if two transport
   protocols are supported, the length of the object is two bytes.
   Currently defined values are:

       0: UDP
       1: TCP


   Others may be defined in future versions of GLP as needed.




Rosenberg,Salama,Squire                                        [Page 23]


Internet Draft               GLP Attributes                 25 June 1999


   4.5.1.3 ISUP flavors supported

   The ISUP flavors protocol object is variable length, as indicated by
   the length field. It contains a number of ISUP flavors, each of which
   is a NULL terminated string. These strings are the ISUP flavor type
   names registered with IANA.


     Editors Note: This registry doesn't exist right now, but its
     not really a GLP specific thing. So, its not clear whether
     registration procedures should be established here or else-
     where.


   4.5.1.4 Port Number

   The port number object is a single, 16 bit quantity. It represents
   the port number to use for the signaling. If not specified, the
   default port for the signaling protocol is used.

  4.5.2 Route Origination and SignalingProtocols

   Routing objects MAY be originated with a signaling types attribute.
   If not present, it is assumed that the signaling protocol is deter-
   mined out of bands by some other means (i.e., a closed network of GLP
   peers may be a strictly H.323 or SIP network), and all other parame-
   ters take their defaults.

  4.5.3 Route Selection and SignalingProtocols

   Signaling types MAY be used as an input to route selection. Possible
   criteria include the base protocol itself and ISUP variants under-
   stood.

  4.5.4 Route Aggregation and SignalingProtocols

   The signaling type attribute is never aggregated. When the next hop
   signaling server changes (as it must when aggregation occurs), the
   signaling protocol attribute MUST be changed to reflect the capabili-
   ties of the local signaling server.

  4.5.5 Route Dissemination and SignalingProtocols

   When the next hop is unchanged, the LS MUST NOT modify the signaling
   type attribute. When the LS changes the next hop signaling attribute,
   it MUST modify the signaling types attribute to reflect the capabili-
   ties of the new path.  An LS must have knowledge of the signaling
   capabilities of the next-hop when inserting a SignalingProtocols



Rosenberg,Salama,Squire                                        [Page 24]


Internet Draft               GLP Attributes                 25 June 1999


   attribute into a routing object with that next-hop.  When advertising
   a signaling protocol as being supported by a next-hop, the LS must
   also ensure that the signaling protocol is supported by the entire
   path.  As an example, an LS must not insert a SignalingProtocols
   attribute advertising SIP is supported by the next-hop unless the
   next-hop supports SIP AND either
     - the inbound routing object also advertised SIP, or
     - the next-hop is known to support translation from SIP into a sig-
     naling protocol supported by the previous hop.

 4.6 Pricing

   Mandatory: False.
   Flags: Well-known.

   The pricing attribute conveys information about the cost of terminat-
   ing calls at a gateway.  The pricing reflects the cost of the PSTN
   component of the call only.  The actual cost of a completing a call
   to a gateway might include costs for media transport, but these are
   outside the scope of this attribute.

   When the cost attribute is sent in a route from A to B, it indicates
   the amount that A will charge B for calls along the route.  As such,
   the pricing attribute is non-transitive - it has significance only
   between peers.  This is in line with the GLP model overall, since two
   LS's communicate only when their administrators have established
   administrative agreements with each other.

   Since pricing is at the discretion of the provider, GLP does not res-
   trict the pricing models that can be used. It provides a common set
   of pricing mechanisms. Additional ones can be registered with ICANN
   and used, as needed. The common pricing mechanisms provided are:
     * connect charge plus per minute rate

  4.6.1 Pricing Syntax

   The capacity attribute contains a 16 bit sub-type field and a vari-
   able length value. The sub-type field indicates the specific type of
   cost. Several sub-types are defined here. Others can be registered
   with ICANN. The value depends on the sub-type.

   4.6.1.1 Subtype 0: connect charge plus per minute rate

   The value field contains a 32 bit currency value, a 32 bit floating
   point connect charge value, and a 32 bit floating point per minute
   rate value.

   Currency values can be registered with ICANN. Some common types are



Rosenberg,Salama,Squire                                        [Page 25]


Internet Draft               GLP Attributes                 25 June 1999


   provided here. They include:
     0: US Dollar
     1: Japanese Yen
     2: British Pound
     3: Euro
     4: German Deutchmark
     5: French Franc
   Procedures for registering additional currency types are given in
   section 7.4.

   The currency value has the same syntax and semantics as described
   above. The connect charge value indicates the number of units of the
   currency charged for each call completed. The per minute rate value
   indicates the number of units of the currency charged per minute in
   addition to the connect rate.


     Editor's Note.  We believe currency codes are already
     used/defined in other IETF documents (OTP?).  We should use
     the same currency codes if possible.  Registering new codes is
     only required if we have to define them.

     Editor's Note.  We need to specify a floating point represen-
     tation.

     Editor's Note.  We probably need to provide a time unit as
     well because different plans have different time units (ie the
     rate gets incremented every 6 seconds, every minute, etc).  We
     should look at ITU SG16 Annex G for a good example.


  4.6.2 Route Origination and Pricing

   Routes originating by an LS may contain a Pricing attribute.  It is a
   local policy issue whether the Pricing attribute is included in ori-
   ginated call routing objects, and what the Pricing attribute con-
   tains.

  4.6.3 Route Selection and Pricing

   Route selection is definitely driven by the Pricing attribute. An LS
   may decide to prefer routes that are cheaper, for example.

  4.6.4 Aggregation and Pricing

   The Pricing attribute is never aggregated. It is always re-originated
   at each LS. This is because it represents a charging agreement
   between the sending LS and the receiving LS. The Pricing attribute



Rosenberg,Salama,Squire                                        [Page 26]


Internet Draft               GLP Attributes                 25 June 1999


   re-originated at each LS may bear no resemblance at all to the Pric-
   ing attribute received by that LS for the same route, or it may be
   identical.

  4.6.5 Route Dissemination and Pricing

   When an LS disseminates a route, it must re-originate the pricing
   attribute as if it had created the route itself.


     Editor's Note:  Should we relax these rules a bit? Can an LS
     propagate the pricing attribute if it doesn't change the next
     hop? This would allow the LastModifiedBy attribute to contain
     a signature for the pricing attribute as well.  Should a LS be
     allowed to alter the Pricing attribute if it is not altering
     the next-hop?  In this case, its not on the signalling path,
     so how would payment be received?

     Editor's Note.  There a some possible methods for handling
     aggregation and route propagation of the Pricing attribute
     that might be worth investigation.   The attribute itself
     might indicate its processing.  For example, it could refer-
     ence a Java applet, or could be written in a well-known
     language like TCL or XML so that the data itself defines its
     properties.  This possibility would definitely need more
     investigation.

     Editor's Note.  It would seem beneficial if the Pricing attri-
     bute subtypes could be negotiated during peer session estab-
     lishment, so that an LS uses a pricing language understood by
     its peer.


 4.7 LastModifiedBy

   Mandatory: False.
   Flags: Well-known.

   The LastModifiedBy attribute provides information about the last LS
   that modified certain attributes of an advertisement. It also con-
   tains information to authenticate these attributes.

   GLP will provide a mechanism for hop-by-hop authentication between
   GLP peers.  Peer-to-peer authentication is independent of the data
   elements.

   Some GLP attributes are for GLP's internal use, e.g. LocalPreference,
   AtomicAggregate, and MultiExitDisc.  For these, hop-by-hop



Rosenberg,Salama,Squire                                        [Page 27]


Internet Draft               GLP Attributes                 25 June 1999


   authentication is sufficient.  However, attributes that are passed to
   the application in response to a call routing query probably require
   end-to-end authentication, or at least authentication since the last
   point of modification. For example, end-to-end authentication is not
   possible after route aggregation.  In this case, authentication from
   the point of aggregation is the best possible.  It is a local policy
   decision to determine whether authentication of received attributes
   is necessary.  It is also a local policy decision to determine
   whether to add or propagate the LastModifiedBy attribute, and which
   attributes should be covered by the authentication.  The attributes
   requiring authentication since the last modification point will prob-
   ably include:
     - DestinationPhoneNumbers
     - NextHopSignalingServer
     - SignalingProtocols
     - GatewayCapacity
     - Pricing
     - LastModifiedBy

   When computing the authentication data, an LS must consider only
   those attributes with the LastModifiedByFlag set, and must consider
   these in numerical order.

  4.7.1 LastModifiedBy Syntax

   The LastModifiedBy attribute is a variable length attribute. It con-
   sists of:
     (1) Type of LS identifier, 1 byte
     (2) Length of LS identifier, 1 byte
     (3) ITAD number of LS, 2 bytes (similar to BGP ASes)
     (4) LS identifier, variable
     (5) Authentication data, variable

   The detailed format of these fields are TBD.


     Editor's Note.  The intent of this attribute is to allow an LS
     to 'sign' certain attributes.  Receivers must be able to ver-
     ify this signature, so some type of identification of the pro-
     vider must be provided.  This might be an IPv4 address, an
     IPv6 address, a DNS name, etc.  The LS-type above should
     define what kind of identifier is provided (IPv, IPv6, DNS,
     etc.), and the identifier should carry that value.


  4.7.2 Route Origination and LastModifiedBy

   When an LS originates a call routing object into GLP, it may include



Rosenberg,Salama,Squire                                        [Page 28]


Internet Draft               GLP Attributes                 25 June 1999


   the LastModifiedBy attribute. If the LastModifiedBy attribute is
   included, the the LastmodifiedByFlag must be set for all attributes
   included in the LastModifiedBy authentication.

  4.7.3 Route Selection and LastModifiedBy

   The LS identifier and the ITAD number field of the LastModifiedBy
   attribute may be used a route selection criteria.

  4.7.4 Aggregation and LastModifiedBy

   The aggregating LS may choose to include the LastModifiedBy attribute
   in an aggregated object.  The aggregating LS may select those attri-
   butes covered by the inserted LastModifiedBy attribute, and must set
   the LastModifiedBy flags accordingly.

  4.7.5 Route Dissemination and LastModifiedBy

   The values of the LastModifiedBy attribute must be recalculated
   before disseminating the route whenever:
     * The LastModifiedByFlag of an attribute changes, or
     * an attribute for which the LastModifiedByFlag is set changes.

 4.8 NumSignalingHops

   Mandatory: False.
   Flags: Optional, DependentTransitive.

   The NumSignalingHops attribute records the number of signaling hops
   between the local LS and the destination.  The primary purpose of
   this attribute is as a criteria for route selection.


     Editor's Note.  As an alternative to NumSignalingHops, a Sig-
     nalingPath attribute was considered.  The SignalingPath attri-
     bute would be much like the AdvertisementPath, except it would
     only be updated when the next-hop changed.  Thus, it would
     record the signaling path to the destination.  It was not
     clear whether the SignalingPath attribute would be more useful
     than simply counting the number of hops, so for simplicity we
     went with the NumSignalingHops attribute.  Would a Signaling-
     Path attribute be useful enough in policy to justify the added
     complexity?


  4.8.1 NumSignalingHops Syntax

   The NumSignalingHops attribute contains two unsigned 16-bit numeric



Rosenberg,Salama,Squire                                        [Page 29]


Internet Draft               GLP Attributes                 25 June 1999


   values, the minNumSignalingHops and maxNumSignalingHops.  Due to
   aggregation, a single call routing object may represent paths of
   varying lengths.  The minimum and maximum give bounds on the lengths
   of these paths.

  4.8.2 Route Origination and NumSignalingHops

   When a LS originates a route into GLP, it may include the NumSig-
   nalingHops attribute with the minNumSignalingHops and maxNumSig-
   nalingHops set to zero (0).

  4.8.3 Route Selection and NumSignalingHops

   This attribute may be used in route selection to select routes with
   shorter signaling paths.

  4.8.4 Aggregation and NumSignalingHops

   When aggregating multiple routing objects into a single call routing
   object, an LS may choose to propagate the NumSignalingHops attribute.
   If it chooses to do so, the LS must propagate the minimum of the min-
   NumSignalingHops and the maximum of the maxNumSignalingHops in the
   NumSignalingHops attribute of the aggregated object.

  4.8.5 Route Dissemination and NumSignalingHops

   Intermediate LSs that alter the NextHopSignalingServer must increment
   the minimum and maximum values before propagating the NumSig-
   nalingHops attribute.  Intermediate LSs that do not modify the Nex-
   tHopSignalingServer attribute should not modify this attribute.

 4.9 AtomicAggregate

   Mandatory: False.
   Flags: Well-known.

   The AtomicAggregate attribute indicates that a routing object may
   have traversed domains not listed in the AdvertisementPath.  If an
   LS, when presented with a set of overlapping routes from a peer LS,
   selects the less specific (ie more phone number destinations) route
   without selecting the more specific route, then the LS includes the
   AtomicAggregate attribute with the routing object.

  4.9.1 AtomicAggregate Syntax

   This attribute has length zero (0).

  4.9.2 Route Origination and AtomicAggregate



Rosenberg,Salama,Squire                                        [Page 30]


Internet Draft               GLP Attributes                 25 June 1999


   Call routing objects are never originated with the AtomicAggregate
   attribute.

  4.9.3 Route Selection and AtomicAggregate

   The AtomicAggregate attribute may be used in route selection - it
   indicates that the AdvertisementPath may be incomplete.

  4.9.4 Aggregation and AtomicAggregate

   If any of the call routing objects to aggregate has the AtomicAggre-
   gate attribute, so should the resultant aggregated object.

  4.9.5 Route Dissemination and AtomicAggregate

   If an LS, when presented with a set of overlapping routes from a peer
   LS, selects the less specific (ie more phone number destinations)
   route without selecting the more specific route, then the LS includes
   the AtomicAggregate attribute with the routing object (if its not
   already present).

   An LS receiving a routing object with an AtomicAggregate attribute
   must not make the set of destinations more specific when advertising
   it to other LSs, and must not remove the attribute when propagating
   this object to a peer LS.

 4.10 LocalPreference

   Mandatory: False.
   Flags: Well-known.

   The LocalPreference attribute is used intra-domain only, it indicates
   the local LS's preference for the routing object to other LSs within
   the same domain.  This attribute should not be included when communi-
   cating to an LS in another domain.

  4.10.1 LocalPreference Syntax

   The LocalPreference attribute is a 4-octet unsigned numeric value.  A
   higher value indicates a higher preference.

  4.10.2 Route Origination and LocalPreference

   Call routing objects should not be originated with the LocalPrefer-
   ence attribute.

  4.10.3 Route Selection and LocalPreference




Rosenberg,Salama,Squire                                        [Page 31]


Internet Draft               GLP Attributes                 25 June 1999


   The LocalPreference attribute allows one LS in a domain to calculate
   a preference for a route, and to communicate this preference to other
   LSs in the domain.  During route selection, a LS may determine its
   own preference for a call routing object, or it may use the
   LocalPreference attribute as its preference (if included).

  4.10.4 Aggregation and LocalPreference

   The LocalPreference attribute is not affected by aggregation.  The
   inclusion of this attribute must follow the rules in Section 4.10.5.

  4.10.5 Route Dissemination and LocalPreference

   An LS must include the LocalPreference attribute when communicating
   with peer LSs within its own domain.  An LS must not include the
   LocalPreference attribute when communicating with LSs in other
   domains.  LocalPreference attributes received from inter-domain peers
   must be ignored.

 4.11 MultiExitDisc

   Mandatory: False.
   Flags: Optional, non-transitive.

   When two ITADs are connected by more than one set of peers, the Mul-
   tiExitDisc attribute may be used to specify preferences for routing
   objects received over one of those links over the others.  The Mul-
   tiExitDisc parameter is used in route selection.

  4.11.1 MultiExitDisc Syntax

   The MultiExitDisc attribute carries a 4-octet unsigned numeric value.
   A lower value represents a more preferred routing object.

  4.11.2 Route Origination and MultiExitDisc

   Call routing objects should not be originated with the MultiExitDisc
   attribute.

  4.11.3 Route Selection and MultiExitDisc

   The MultiExitDisc attribute is used to express a preference when
   there are multiple links between two domains.  If all other factors
   are equal, then a routing object with a lower MultiExitDisc attribute
   should be preferred over a routing object with a higher MultiExitDisc
   attribute.

  4.11.4 Aggregation and MultiExitDisc



Rosenberg,Salama,Squire                                        [Page 32]


Internet Draft               GLP Attributes                 25 June 1999


   Call routing objects with differing MultiExitDisc parameters must not
   be aggregated.  Call routing objects with the same value in the Mul-
   tiExitDisc attribute may be aggregated and the same MultiExitDisc
   attribute attached to the aggregated object.

  4.11.5 Route Dissemination and MultiExitDisc

   If received over from a peer LS in another domain, a LS may propagate
   the MultiExitDisc to other LSs within its domain.  The MultiExitDisc
   attribute should not be propagated to LSs in other domains.

   An LS may add the MultiExitDisc attribute when propagating routing
   objects to an LS in another domain.  The inclusion of the MultiExit-
   Disc attribute is a matter of policy, as is the value of the attri-
   bute.


5 Recommended Non-Attributes

   In addition to the attributes mentioned in Section 4, many other
   attributes were under consideration for inclusion into GLP.  In this
   section, we briefly mention these attributes, and why they weren't
   recommended for GLP in this draft.

   Some of the criteria used to select recommended attributes were:

    (a) If a value can be determined via signaling protocols, then it
        was not recommended.

    (b) If there were no good suggestions on how to aggregate it, it was
        not recommended.

 5.1 Origin

   BGP4 has an Origin attribute, which indicates whether the route ori-
   ginated from within the originating AS, or via a different exterior
   routing protocol.  With GLP, there are no other existing routing pro-
   tocols, either interior or exterior, so Origin has no current func-
   tion in GLP.

 5.2 CodecsSupported

   The CodecsSupported attribute was considered to indicate the codes
   supported for the media path by the egress gateway(s).

   The codec to use for an RTP session can often be negotiated during
   signaling.  For this reason, in addition to an effort to "keep it
   simple, stupid" (KISS), CodecsSupported is not recommended.



Rosenberg,Salama,Squire                                        [Page 33]


Internet Draft               GLP Attributes                 25 June 1999


 5.3 EncryptionAlgsSupported

   Like CodecsSupported, the EncryptionAlgsSupported was considered to
   indicate the encryption algorithms supported by the egress gateway.

   This attribute is not recommended for the same reasons as the
   CodecsSupported attribute.

 5.4 TelephonyFeaturesSupported

   Like CodecsSupported, the TelephonyFeaturesSupported was considered
   to indicate the telephony features supported by the egress gateway.
   Potential telephony features considered were multi-party conferencing
   and video conferencing.

   This attribute is not recommended for the same reasons as the
   CodecsSupported attribute.

 5.5 SignalingPath

   The SignalingPath attribute was considered to record the signaling
   hops in the same way that the AdvertisementPath records the domains
   that the routing object has traversed.  This attribute was targeted
   at route selection so that the administrator may choose shorter sig-
   naling paths or choose paths that go through certain domains.

   In an effort to simplify, the NumSignalingHops attribute is recom-
   mended instead.  If the SignalingPath attribute can be demonstrated
   to be more useful than the NumSignalingHops attribute, then Sig-
   nalingPath may replace NumSignalingHops.

 5.6 SignalingPathCapacity

   The GatewayCapacity attribute indicates the relative size of egress
   gateways.  The SignalingPathCapacity was suggested as an analog to
   the GatewayCapacity so that the signaling path could also be taken
   into consideration in route selection and load balancing.

   In general, the capacity of a signaling path is going to be limited
   by that of the egress gateways, so the usefulness of this metric was
   not demonstrated.  Also, LSs could modify the GatewayCapacity attri-
   bute so that the signaling path is taken into account.

 5.7 MediaPathCapacity

   The MediaPathCapacity attribute was considered as another potential
   analog of GatewayCapacity, providing a metric on the size of the data
   path to the egress.



Rosenberg,Salama,Squire                                        [Page 34]


Internet Draft               GLP Attributes                 25 June 1999


   This metric is only possible if the media path is tied to the signal-
   ing path.  In general, this is not true because the media may go
   directly to the egress gateway even if the signaling goes to a proxy
   server.  So this attribute was not recommended.

 5.8 GatewayProvider, NextHopProvider, Aggregator

   These attributes were intended to identify (perhaps in an authenti-
   cated manner) certain important domains along the advertised path,
   sometimes in an authenticated manner.

   Most of the function of these attributes is provided by the LastModi-
   fiedBy attribute, so these attributes were not recommended.

 5.9 Lifetime

   The Lifetime attribute was considered so that gateways could adver-
   tise the times at which certain routing objects are valid.  For exam-
   ple, a gateway could indicate that a certain route (and the associ-
   ated price, etc) is only valid between the hours of 10:00 pm and 6:00
   am.

   Explicitly adding and removing routing objects seemed preferable to
   giving attributes Lifetimes, which would have required periodically
   sweeping the call routing table to remove and insert expired entries.

 5.10 Time-To-Live

   The Time-To-Live attribute was considered to limit the number of hops
   that a routing object may propagate.  If LS peering relationships had
   some geographic significance, then the TTL attribute could be used to
   limit how far the information propagates.  Such an attribute might be
   useful for certain "800" type services.

   Without a clearly demonstrated benefit for the TTL attribute, it was
   decided to not recommend this attribute for now.  However, the rela-
   tive simplicity in supporting the attribute makes the attribute a
   good candidate to bring back of a clear need can be demonstrated.

6 Security Considerations

   Peer-to-peer security (between adjacent LSs) is assumed to be pro-
   vided by the transport protocol.

   Security between LSs that are not adjacent is provided in two ways.
   First, the transitivity of the peer relationship provides some level
   of security.  Second, the LastModifiedBy attribute can be used to
   sign a set of attributes, so that the receivers of the attributes can



Rosenberg,Salama,Squire                                        [Page 35]


Internet Draft               GLP Attributes                 25 June 1999


   verify the authenticity of certain attributes.

7 IANA Considerations

   This section discusses IANA registration procedures for parameters
   defined in GLP.

 7.1 IANA Considerations for registering new GLP attributes

   When registering new GLP attributes, the following information must
   be provided to IANA:


    1   Name of registering organization: company name, university,
        organization name.

    2.  Name of principal contact: Name of the individual that is the
        primary contact point for questions and comments regarding the
        attribute.

    3.  Email address of principal contact.

    4.  Phone number of principal contact.

    5.  Name of attribute: A short, descriptive name describing the
        attribute. For example - "supported codecs".

    6.  Attribute Number: The numeric identifier for the attribute. This
        must not conflict with attribute numbers already defined in GLP
        or already registered.

    7.  Description: Several sentences or paragraphs describing the pur-
        pose of the attribute. Sufficient detail must be provided to
        allow an implementor to determine whether or not the attribute
        is needed in their implementation, and if so, what its value
        should be.

    8.  Flags: The values for the attribute flags.

    9.  Originating considerations: Information useful for originating
        this attribute. Specifically, under what conditions it should be
        originated.

   10.  Selection considerations: Information useful in using the attri-
        bute for route selection.

   11.  Aggregation considerations: Clear rules on how the attribute is
        aggregated.



Rosenberg,Salama,Squire                                        [Page 36]


Internet Draft               GLP Attributes                 25 June 1999


   12.  Dissemination considerations: Information useful when dissem-
        inating the attribute.


   This information parallels that provided here in Section 4 for each
   attribute.

 7.2 Registering new pricing attribute sub-types with IANA

   When registering new pricing sub-types with IANA, the following
   information must be provided:


    1.  Name of registering organization: company name, university, or
        organization name.

    2.  Name of principal contact: Name of the individual that is the
        primary contact point for questions and comments regarding the
        sub-type.

    3.  Email address of principal contact.

    4.  Phone number of principal contact.

    5.  Name of sub-type: A short, descriptive name describing the pric-
        ing sub-type. For example - ``per minute with peak''

    6.  Subtype Number: The numeric identifier for the sub-type. This
        must not conflict with sub-type numbers already defined in GLP
        or already registered.

    7.  Description: Several sentences or paragraphs describing the
        meaning of the sub-type.

    8.  Syntax of the value: The detailed syntax and semantics for the
        value component of the pricing element must be provided.

    9.  Example: An example of a correctly formatted pricing attribute
        of this sub-type must be provided.

 7.3 Registering new ITAD Numbers with IANA

   When registering new ITAD numbers with IANA, the following informa-
   tion must be provided:


    1.  Name of registering organization: company name, university, or
        organization name. This name must be unique.



Rosenberg,Salama,Squire                                        [Page 37]


Internet Draft               GLP Attributes                 25 June 1999


    2.  Name of principal contact: Name of the individual that is the
        primary contact point for questions and comments regarding the
        sub-type.

    3.  Email address of principal contact.

    4.  Phone number of principal contact.

     Editors Note: How is registration of AS's in BGP handled?
     RFC1771 has no IANA considerations section.


 7.4 Registering new Currency Types with IANA

   When registering new Currency types with IANA, the following informa-
   tion must be provided:


    1.  Name of country: Name of country where currency is used

    2.  Name of currency: Name of the currency

    3.  Currency type number: An unused and unregistered type number for
        this currency.

8 Open Issues

   In this section, we capture the open issues as identified throughout
   the document by Editor's Notes.  This section just collects these
   notes, no new information is provided.

 8.1 Aggregation Rules for Transitive Attributes

   From Section 3.4.3:

     Editor's Note.  There are several options available to handle
     unrecognized transitive attributes during aggregation.  We can
     (a) drop them, (b) propagate them if they are binary
     equivalent, (c) define a set of aggregation operations and
     have these indicated by a flag(s) in the attribute (ie addi-
     tion, union, drop if !equal, etc.), (d) other suggestions?


 8.2 Black-holes

   From Section 4.1.4:

     Editor's Note.  We debated whether an LS should advertise



Rosenberg,Salama,Squire                                        [Page 38]


Internet Draft               GLP Attributes                 25 June 1999


     black-holes within GLP, but came to the consensus that expli-
     cit black-hole advertisements should not be in GLP.  It seems
     unimportant whether signaling to an invalid number fails at
     the ingress, egress, or such an LS.  Knowledge of black-holes
     helps aggregation, but the best option seemed to be keeping
     the distribution of this knowledge outside of GLP.  Note that
     an LS cannot be prevented from advertising something it knows
     to be a black-hole.


 8.3 Scope

   From Section 4.1.4:

     Editor's Note.  We were unable to reach consensus on the issue
     of "scope".  Using scope to geographically limit the distribu-
     tion of 800 numbers seemed like a bad idea, but there seems to
     be a need to map some non-unique numbers into a globally
     unique number space.  The disagreement over scope centered on
     whether one should apply this concept to just 800-type
     numbers, or to any private numbering space.  One camp believed
     that private numbers should not be advertised between domains
     - that the definition of private implied intra-domain only.
     The other camp believed that a confederation of providers may
     combine to provide a "VPN-like" service for handling private
     numbering spaces across domains, and hence that private
     numbers should be mapped into something globally unique and be
     carried between domains.  Comments?


 8.4 Phone number representation using bitmasks

   From Section 4.1.5:

     Editor's Note.  The following alternative representation to
     prefixes was suggested.  Each digit position is represented by
     a 10-bit bitmask.  If digit position i has bit j set, then the
     digit j can appear in position i.  As an example, to
     [0100000000] represents all numbers starting with 1, and
     [0100000000, 0111111110] represents all numbers starting with
     11, 12, 13, ..., or 18.  This representation is very flexible
     with regards to aggregation, but its unclear how, given a
     phone number, one finds the 'most specific' match.


 8.5 Domain of NextHopSignalingServer

   From Section 4.2.3:



Rosenberg,Salama,Squire                                        [Page 39]


Internet Draft               GLP Attributes                 25 June 1999


     Editor's Note:  Is it necessary to include the domain of the
     next-hop for policy applications?  Ie, is it a viable policy
     to prefer the next hop to be in domain X?  It may be possible
     to get the domain of the next-hop from the LastModifiedBy
     attribute, but this needs to be verified.  The SignalingPath
     attribute would represent another way to get this information.


 8.6 Load-balancing on capacity

   From Section 4.4:

     Editor's Note.  The exact methods for load-balancing require
     more work, but we believe load-balancing to be a valuable and
     important feature for GLP.


 8.7 Separation of Signalling Protocols

   From Section 4.5.1 on SignallingProtocols syntax:

     Editor's Note:  We should probably make each signalling proto-
     col into its own attribute because much of the related infor-
     mation is specific to one particular signalling protocol.  For
     example, the UDP port numbers will likely be different if a
     single server supports both SIP & H323.


 8.8 Pricing

   From Section 4.6.1 on the syntax of the Pricing attribute:

     Editor's Note.  We believe currency codes are already
     used/defined in other IETF documents (OTP?).  We should use
     the same currency codes if possible.  Registering new codes is
     only required if we have to define them.

     Editor's Note.  We need to specify a floating point represen-
     tation.

     Editor's Note.  We probably need to provide a time unit as
     well because different plans have different time units (ie the
     rate gets incremented every 6 seconds, every minute, etc).  We
     should look at ITU SG16 Annex G for a good example.


   From Section 4.6.5 on disseminating the Pricing attribute.




Rosenberg,Salama,Squire                                        [Page 40]


Internet Draft               GLP Attributes                 25 June 1999


     Editor's Note:  Should we relax these rules a bit? Can an LS
     propagate the pricing attribute if it doesn't change the next
     hop? This would allow the LastModifiedBy attribute to contain
     a signature for the pricing attribute as well.

     Editor's Note.  There a some possible methods for handling
     aggregation and route propagation of the Pricing attribute
     that might be worth investigation.   The attribute itself
     might indicate its processing.  For example, it could refer-
     ence a Java applet, or could be written in a well-known
     language like TCL or XML so that the data itself defines its
     properties.  This possibility would definitely need more
     investigation.

     Editor's Note.  It would seem beneficial if the Pricing attri-
     bute subtypes could be negotiatiated during peer session
     establishment, so that an LS uses a pricing language under-
     stood by its peer.


 8.9 Authentication via LastModifiedBy

   The following issue discusses the syntax of the LastModifiedBy attri-
   bute:


     Editor's Note.  The intent of this attribute is to allow an LS
     to 'sign' certain attributes.  Receivers must be able to ver-
     ify this signature, so some type of identification of the pro-
     vider must be provided.  This might be an IPv4 address, an
     IPv6 address, a DNS name, etc.  The LS-type above should
     define what kind of identifier is provided (IPv, IPv6, DNS,
     etc.), and the identifier should carry that value.



 8.10 Number of hops versus path

   The following note is in Section 4.8:


     Editor's Note.  As an alternative to NumSignalingHops, a Sig-
     nalingPath attribute was considered.  The SignalingPath attri-
     bute would be much like the AdvertisementPath, except it would
     only be updated when the next-hop changed.  Thus, it would
     record the signaling path to the destination.  It was not
     clear whether the SignalingPath attribute would be more useful
     than simply counting the number of hops, so for simplicity we



Rosenberg,Salama,Squire                                        [Page 41]


Internet Draft               GLP Attributes                 25 June 1999


     went with the NumSignalingHops attribute.  Would a Signaling-
     Path attribute be useful enough in policy to justify the added
     complexity?



9 Conclusions

   This draft recommends a set of attributes for initial consideration
   for GLP.  These attributes is independent of the transport and syn-
   chronization issues that also have to be decided.

   This attribute set is intended as the final set, but merely as the
   starting point for further discussions.  The function and suggested
   implementation of each attribute should be reviewed by the IPTEL WG
   community.


10 References

   [1] J. Rosenberg and H. Schulzrinne, "A Framework for a Gateway Loca-
   tion Protocol," Internet Draft, Internet Engineering Task Force, Work
   in Progress, June 1999.

   [2] D. Hampton, D. Oran, H. Salama, and D. Shah, "The IP Telephony
   Border Gateway Protocol Architecture," Internet Draft, Internet
   Engineering Task Force, February 1999.

   [3] M. Squire, "A Gateway Location Protocol," Internet Draft, Inter-
   net Engineering Task Force, Work in Progress, February 1999.

   [4] Y. Rekhter and T. Li, "A border gateway protocol 4 (BGP-4),"
   Request for Comments (Draft Standard) 1771, Internet Engineering Task
   Force, March 1995.

   [5] J. Moy, "OSPF Version 2," Request For Comments (Draft Standard)
   2328, Internet Engineering Task Force, April 1998.

   [6] J. Reynolds and J. Postel, "Assigned Numbers," Request For Com-
   ments (Draft Standard) 1700, Internet Engineering Task Force, October
   1994.



Author's Address

   Jonathan Rosenberg
   Lucent Technologies, Bell Laboratories



Rosenberg,Salama,Squire                                        [Page 42]


Internet Draft               GLP Attributes                 25 June 1999


   101 Crawfords Corner Rd.
   Holmdel, NJ 07733
   RM 4C-526
   email: jdrosen@bell-labs.com

   Hussein Salama
   Cisco Systems
   170 W. Tasman Drive
   San Jose, CA 95134
   hsalama@cisco.com

   Matt Squire
   Nortel Networks
   4309 Emporer Blvd
   Suite 200
   Durham, NC 27703
   msquire@nortelnetworks.com


































Rosenberg,Salama,Squire                                        [Page 43]