Subject: Encoding of MP_REACH_NLRI

From: Janardan Ramesh <[email-masked]>
Date: Fri, 27 Oct 2000 08:17:09 -0700

draft-ietf-mpls-bgp4-mpls-04.txt has the following sentence
for the NLRI.

Length(1), Label (3 - octest 1 or more labels), Prefix (variable)

The description of length says:

The length field indicates the length in bits of the address
prefix plus the label(s).

- First interpretation of this is that the label lengths are also
  encoded in bits.

  Take the example of 2 labels (48 bits) and a 26 bit prefix.
  The count will be 74. From the count it is not possible
   to say whether we have 2 labels (48 bits) and a 26 bit prefix or
   3 labels (72 bits) and a 4 bit prefix.

- Second interpretation of this is that the length field contains the
   label counbt and prefix length in bits.

   Take tha example of 2 labels and a 26 bit prefix. The length
   field will contain a count of 28. Assuming that there is
   always 1 label, this can mean that either we have 1 label
   and a 27 bir prefix or 2 labels and a 26 bit prefix.

It would be really helpful to expand the semantics of this field
and include a few examples to avoid ambiguity.

Regards
Ramesh

---

From: Yakov Rekhter <[email-masked]>
Date: Fri, 27 Oct 2000 08:49:01 -0700

Janardan,

>    and a 27 bir prefix or 2 labels and a 26 bit prefix.

quoting from the Internet Draft:

   a) Length:
   
      The Length field indicates the length in bits of the address prefix plus
      the label(s).
   
   b) Label:
   
      The Label field carries one or more labels (that corresponds to the
      stack of labels [MPLS-ENCAPS]). Each label is encoded as 3 octets,
      where the high-order bit contains "Bottom of Stack" (as defined in
      [MPLS-ENCAPS]). The following high-order three bits must be zero.
      The remaining 20 bits contain the label value.

From (a) is seems quite clear that the length is the length in bits of
the address prefix *plus* the label field. From (b) it seems quite clear that
the label field could carry one or more labels, and that the number
of labels carried in the label field is determined by looking at the
"Bottom of Stack" field of each label.

Yakov.