Subject: [Idr] Clarification requested for RFC 4271 Section 6.8 'Connection Collision Detection'

From: "Rohan Sen" <[email-masked]>
Date: Sun, 9 Dec 2007 23:30:43 +0530

Hello,

 I am implementing a BGP state machine on Linux and am facing a doubt
related to connection collision which seem to rise from a possibly
contradicting statement in RFC 4271.

 Let me try to explain my understanding with 2 routers L (local BGP)
and R (remote BGP).

 if (routerId(L) < routerId(R)) {
  1. the local system closes the BGP connection that
         already exists (the one that is already in the OpenConfirm
         state)  <--------- What if this is the connection initiated
by the remote peer then this connection cannot be closed and accepted
at the same time
  2. accepts the BGP connection initiated by the remote  system.
 } else {
  3. the local system closes the newly created BGP
         connection (the one associated with the newly received OPEN
         message) <-------- What if this is the connection initiated
by L then we are closing the connection opened by us even if we have
higher router id
  4. continues to use the existing one (the one that is already in the
OpenConfirm state)
 }

Also elsewhere in this RFC (Page 35) it states that:
"Based on the value of the BGP Identifier, a convention is established
 for detecting which BGP connection is to be preserved when a
 collision occurs. The convention is to compare the BGP Identifiers
 of the peers involved in the collision and to retain only the
 connection initiated by the BGP speaker with the higher-valued BGP
 Identifier."

This statement is again contradicting the other cases viz. case (1)
and case (3).

I am really confused in this regard and would really appreciate any
help to understand this scenario better/correctly.

-- 
thanks,
Rohan Sen

_______________________________________________
Idr mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/idr

---

From: "Jan Novak (janovak)" <[email-masked]>
Date: Mon, 10 Dec 2007 13:18:22 +0100

Hi,

I think you just miss the significance of this:

If, among
   these connections, there is a connection to a remote BGP speaker
   whose BGP Identifier equals the one in the OPEN message, and this
   connection collides with the connection over which the OPEN message
   is received, then the local system performs the following collision
   resolution procedure:

so the first connection has already been accepted since at the
time when the first OPEN message was received there was no collision
detected yet and only upon the receival of the second OPEN message
the collision resolution procedure as specified by you below
is executed - and that procedure clearly states which of the two
connections will be closed.

Jan

The climate of Edinburgh is such that the weak
succumb young .... and the strong envy them.

                                 Dr. Johnson  

> -----Original Message-----
> From: Rohan Sen [mailto:[email-masked]] 
> Sent: 09 December 2007 18:01
> To: [email-masked]
> Subject: [Idr] Clarification requested for RFC 4271 Section 
> 6.8 'ConnectionCollision Detection'
> 
> Hello,
> 
>