Subject: issue 10

From: Yakov Rekhter <[email-masked]>
Date: Wed, 25 Sep 2002 11:46:45 -0700

10) Extending AS_PATH Attribute
  ----------------------------------------------------------------------------
  Status: No Consensus
  Change: Potentially
  Summary: Specific text required to delimit behavior when AS_PATH length
   is exceeded.
  
  Discussion:
  
  The "Extending AS_PATH attribute length en route" thread brought up
  the issue of what action should we specify when we receive a route
  with an AS_PATH that exceeds the defined maximum length.  There was
  some discussion, and it was suggested that, after logging the error,
  the route not be propegated.  No text was proposed.  This issue needs
  consensus:  Do we specify the behavior?  If so what with what text?

The real issue here is how to handle the case when a route
(a single address prefix + path attributes) doesn't fit into
4K bytes (as the max BGP message size is 4 K). To address
this issue I would suggest to add the following to 9.2:

   If due to the limits on the maximum size of an UPDATE message
   (see Section 4) a single route doesn't fit into the message,
   the BGP speaker may choose not to advertise the route to its
   peers.  Other alternatives of handling this situation are outside
   the scope of this document.

Yakov.

---

From: Jeffrey Haas <[email-masked]>
Date: Wed, 25 Sep 2002 14:54:20 -0400

Yakov,

> this issue I would suggest to add the following to 9.2:

If I might suggest that although this is the most "valid" 
(for some value judgement of "valid") case for this problem,
implementations may choose for whatever reason to deal with
attribute overflows differently.  For example, if a certain vendor
didn't want to support AS_PATHS over 256 AS's, that's their
prerogative.

Thus, we might want to just say something about "If you can't
send an update that properly contains all required information,
do not send the update".  I apologize for not having the proper
wording for it, but this also covers the case where a packet
is almost full and you can discard communities (for example)
to make AS_PATH fit.

-- 
Jeff Haas 
NextHop Technologies

---

From: Yakov Rekhter <[email-masked]>
Date: Wed, 25 Sep 2002 12:08:39 -0700

Jeff,

> is almost full and you can discard communities (for example)

Please propose the proper wording...

Yakov.

---

From: "Michael C. Cambria" <[email-masked]>
Date: Wed, 25 Sep 2002 15:06:17 -0400

>   10) Extending AS_PATH Attribute

Perhaps I'm missing something.

I thought the total AS_PATH attribute length could be just 1 octet? 
Thus, in the case of extended length = 0, the sequence of path segments 
had to fit in 255 octets, the total length of the path attribute, less 
type & length fields of each path segment.

On a related note, "i.e. more than 255 elements" on page 22 should be 
removed, or changed to e.g. as extended length can contain more than 255 
elements (where element means octets?  2-octet AS field?)

MikeC

---

From: Jeffrey Haas <[email-masked]>
Date: Wed, 25 Sep 2002 15:28:14 -0400

> I thought the total AS_PATH attribute length could be just 1 octet? 

Total path attr length is 2 octets.
A given path attribute may have a size of one or two octets depending on the
flags.
Maximum aspath SEGMENT size is one octet.
You can have more than one segment.

Segments don't NEED to be optimally packed - the same information
is conveyed if they aren't.
So, if I have an AS_PATH of 1 2 3 4 5, I can have 5 segments if I
wanted to.  It'd just be inefficient.

> elements (where element means octets?  2-octet AS field?)

This refers to the fact that when a given segment needs to overflow,
the proper behavior is create a new segment.

-- 
Jeff Haas 
NextHop Technologies

---

From: Yakov Rekhter <[email-masked]>
Date: Wed, 25 Sep 2002 12:31:58 -0700

Mike,

> >   -------------------------------------------------------------------------
> >   Status: No Consensus
> >   Change: Potentially

Or it could be 2 octets - it depends on the length of the attribute.

> type & length fields of each path segment.

and if it doesn't fit then you need to use extended length.

> elements (where element means octets?  2-octet AS field?)

While the extended length can contain the value field that carries
more than 255 AS numbers, the path segment lenght field is just *1*
octet, and thus can not contain more than 255 elements. So, the text
is correct.

Yakov.

---

From: "Michael C. Cambria" <[email-masked]>
Date: Wed, 25 Sep 2002 15:27:18 -0400

> Total path attr length is 2 octets.

Understood.

> A given path attribute may have a size of one or two octets depending on the

Assume a one octet flag for the AS_PATH attribute.

> Maximum aspath SEGMENT size is one octet.

This would be less than the one octet size of the remaining AS_PATH 
attribute (i.e. segment type and segment length take 2 of the 255 bytes, 
leaving only 253.)

> You can have more than one segment.

Understood.

But can you have more than one AS_PATH attribute?  My understanding is 
no, only one AS_PATH attribute per UPDATE.  Thus, if this attribute has 
an "unextended", one octet length, the fact that the UPDATE can be 4K is 
a different problem.

If more than one AS_PATH attribute is allowed per UPDATE, I 
mis-understood, withdraw the question, but do point out that this wasn't 
clear in the draft :-)

Thanks,
MikeC

---

From: Curtis Villamizar <[email-masked]>
Date: Thu, 26 Sep 2002 11:53:48 -0400

> didn't want to support AS_PATHS over 256 AS's, that's their

I'd call it marginally broken rather than their prerogative.  AS path
padding has gotten out of hand but not this bad so it shouldn't be an
issue if such a route was dropped, but it is technically wrong unless
policy was configured to do so.

Curtis

---

From: Curtis Villamizar <[email-masked]>
Date: Thu, 26 Sep 2002 11:58:41 -0400

In message <[email-masked]>, Curtis Villamizar 
> policy was configured to do so.

Actually the length is one octet so ignore the above.

Never mind,

Curtis

---

From: Curtis Villamizar <[email-masked]>
Date: Thu, 26 Sep 2002 12:15:31 -0400

In message <[email-masked]>, Curtis Villamizar 
> Actually the length is one octet so ignore the above.

But the AS_PATH can have multiple AS_SEQMENTs each with 255 AS ....

In any case, I like Yakov's suggestion to leave the text as is "don't
advertise, if you do truncate somehow its outside the scope of the
spec" (paraphrased).

Curtis