Subject: [Idr] Comments on draft-ietf-idr-bgp-prefix-sid-01

From: Eric C Rosen <[email-masked]>
Date: Thu, 22 Oct 2015 16:16:22 -0400

I'd like to make some suggestions for textual changes to sections 3.1 and
4.3 of draft-ietf-idr-prefix-sid.  The main purpose of these suggestions is
to clarify the use of the Originator SRGB TLV, and to remove what I
think is an excessive and distracting amount of repetition about the
inadvisability of allowing different nodes to use different SRGBs.

My proposal for the text of these sections follows.  In addition to the
changes I mentioned above, some typos in the original text are fixed, and
there is a suggestion (explained below in brackets) for slightly modifying
the text about the AFI/SAFIs with which the Prefix-SID attribute may be
used.  A few other explanations can be found in brackets below inside the
proposed text.

--------------------

3.1.  MPLS Prefix Segment

    In this document, we specify "MPLS Prefix Segments" only for BGP routes
    that have an AFI/SAFI of 1/4 or 2/4.  The applicability of MPLS prefix
    segments to other AFI/SAFIs is outside the scope of this document.

[The original text said "A Multiprotocol BGP labeled IPv4/IPv6 Unicast
([RFC3107]) session type is required", I don't think that is quite precise.
If a session has multiple AFI/SAFIs, including 1/4, I don't think we 
want to
say that the attribute can be placed in any UPDATE on that session.  Also,
it's not quite accurate to say that RFC3107 is restricted to 1/4 and 2/4;
RFC3107 doesn't mention the AFI.  And we may want to leave it open that the
Prefix Segment notion may eventually be applied somehow to SAFI-128 
routes.]

    The BGP Prefix Segment is realized on the MPLS dataplane in the
    following way:

       As described in [I-D.ietf-spring-segment-routing-msdc] the
       operator assigns a globally unique "index", L_I, to a locally
       sourced prefix of a BGP speaker N which is advertised to all other
       BGP speakers in the SR domain.

       According to [I-D.ietf-spring-segment-routing], each BGP speaker
       is configured with a label block called the Segment Routing Global
       Block (SRGB).  (While it is recommended to use the same SRGB across
       all the nodes within the SR domain, the SRGB of a node is a local
       property and could be different on different speakers).

       The index L_I is a 32 bit offset in the SRGB.  Each BGP speaker
       derives its local MPLS label, L, by adding L_I to the start value
       of its own SRGB, and programs L in its MPLS dataplane as its
       incoming/local label for the prefix.  (See section 5.1 for more
       details.)

[Added reference to section 5.1.]

       The outgoing label for the prefix is found in the NLRI of the
       Multiprotocol BGP labeled IPv4/IPv6 Unicast prefix advertisement.
       The index L_I is only used as a hint to derive the local/incoming
       label.

    Section 4.1 of this document specifies the Label-Index TLV of the BGP
    Prefix-SID attribute; this TLV can be used to advertise the label index
    of a given prefix.

    If the BGP speakers are not all configured with the same SRGB, and if
    traffic-engineering within the SR domain is required, each node may be
    required to advertise its local SRGB.  One way of advertising the local
    SRGB is to use the segment routing extensions of BGP-LS
    (draft-gredler-idr-bgp-ls-segment-routing-ext-00.txt). An alternative
    option is to use the Originator SRGB TLV of the prefix-SID 
attribute, as
    specified in Section 4.3 of this document.

[Rearranged last paragraphs slightly to improve flow, imo.]

4.3.  Originator SRGB TLV

    The Originator SRGB TLV is an optional TLV and has the following
    format:

      0                   1 2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     Type      |          Length               | Flags      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     Flags     |
     +-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |         SRGB 1 (6 octets)                                     |
     | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |         SRGB n (6 octets)                                     |
     | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

[I can rarely get the ascii art to render correctly, but the diagram above
is supposed to be unchanged from what appears in the draft.]

    where:

    o  Type is 3.

    o  Length is the total length of the value portion of the TLV: 2 +
       multiple of 6.

    o  Flags: 16 bits of flags.  None are defined in this document.
       Flags SHOULD be clear on transmission and MUST be ignored at
       reception.

    o  SRGB: 3 octets of base followed by 3 octets of range.  Note that the
       SRGB field MAY appear multiple times.  If the SRGB field appears
       multiple times, the SRGB consists of multiple ranges.  The 
meaning of
       an SRGB with multiple ranges is explained in Section 3.2 ("SID/Label
       Range TLV") of [I-D.ietf-ospf-segment-routing-extensions].

[Added some text about the semantics of the SRGB field appearing multiple
times, with reference to a document that actually explains it.]

    When a BGP speaker attaches a Prefix-SID attribute to a given route, 
the
    Originator SRGB TLV MUST NOT be included in the attribute unless the
    following conditions hold:

    - The prefix field of the route's NLRI contains a host address (i.e., a
      /32 IPv4 address or a /128 IPv6 address).

    - The value of the Originator SRGB TLV specifies the SRGB of the node
      that is identified by the prefix field of the NLRI.

[This paragraph and bullet items are added in order to make clear just what
the semantics of the TLV are.]

    If a BGP route is received that contains a Prefix-SID attribute with an
    Originator SRGB TLV, but the prefix field of the NLRI does not 
contain a
    host address, the attribute SHOULD be regarded as malformed. If a
    Prefix-SID attribute contains more than one SRGB TLV, it SHOULD be
    regarded as malformed.  See section 7 for the treatment of a malformed
    Prefix-SID attribute.

    When a route carrying the Prefix-SID attribute is propagated, the
    Originator SRGB TLV (if present) MUST NOT be changed.

-----------------