Subject: -17 review Section 6 - BGP Error Handling.

From: "Michael C. Cambria" <[email-masked]>
Date: Fri, 20 Sep 2002 14:35:27 -0400

Hi,

At the beginning of Section 6. BGP Error Handling:

    "When any of the conditions described here are detected, a
    NOTIFICATION message with the indicated Error Code, Error Subcode,
    and Data fields is sent, and the BGP connection is closed."

There are several cases where the conditions described in this section 
do not result in the BGP connection being closed.  These conditions 
should either state that the connection stays up.  Another possibility 
is to remove "and the BGP connection is closed." above, and for each 
listed connection, state what happens to the BGP connection.  This 
already takes place for certain conditions, but isn't done consistantly.

I tried to list what I found (which may be wrong or incomplete) below:

"If the NEXT_HOP attribute is semantically incorrect, the error should 
be logged, and the route should be ignored. In this case, no 
NOTIFICATION message should be sent."

* Append the connection is not closed.

"(a) discard new address prefixes from the neighbor, or (b) terminate 
the BGP peering with the neighbor."

* Append "the connection is not closed" to case (a)

    "If
    the autonomous system number appears in the AS path the route may be
    stored in the Adj-RIB-In,"

* append and the BGP connection stays up.

                                "but unless the router is configured to
    accept routes with its own autonomous system in the AS path, the
    route shall not be passed to the BGP Decision Process."

* Q1) does the BGP connection stay up?

* Q2) what if the router isn't configured to accept routes with its own 
AS in the AS path?  One _may_ store the route in Adj-RIB-In, but if one 
doesn't want to?  Is the BGP connection closed?  If so, what subcode?

    "If an optional attribute is recognized, then the value of this
    attribute is checked. If an error is detected, the attribute is
    discarded, and the Error Subcode is set to Optional Attribute Error.
    The Data field contains the attribute (type, length and value)."

* Append and the BGP conneciton stays up after "the attribute is discarded".

Thanks,
MikeC

---

From: Yakov Rekhter <[email-masked]>
Date: Fri, 20 Sep 2002 12:39:21 -0700

Mike,

> already takes place for certain conditions, but isn't done consistantly.

How about replacing the above with the following:

   When any of the conditions described here are detected, a NOTIFICATION
   message with the indicated Error Code, Error Subcode, and Data
   fields is sent, and the BGP connection is closed, unless it is
   explicitly stated that no NOTIFICATION message is to be sent and
   the BGP connection is not to be close. 
> * Append the connection is not closed.

Done.

> * Append "the connection is not closed" to case (a)

added "(while maintaining BGP peering with the neighbor)" to case (a).

>     route shall not be passed to the BGP Decision Process."

I would suggest to move this text to Section 9 (UPDATE message handling),
as receiving a route with your own AS in the AS path isn't really
an error. It is just that usually (but not always) you can't put
this route in your Adj-RIB-In. 

> * Q1) does the BGP connection stay up?

yes.

> doesn't want to?  

So, don't store them.

> Is the BGP connection closed?  If so, what subcode?

The connection is *not* closed.

> * Append and the BGP conneciton stays up after "the attribute is discarded".

Since you have to close the connection, you have to discard all the
routes received via this connection, including the route with the
incorrect attribute. So, there is no need to say that "the attribute
is discarded".

Yakov.