Mailing List Archive

[Bug 368] error in bgp fsm transitions (OpenSent)
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug
report.

http://bugzilla.quagga.net/show_bug.cgi?id=368


paul@dishone.st changed:

What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|maintainers@quagga.net |paul@dishone.st




------- Additional Comments From paul@dishone.st 2007-06-11 01:49 -------
Created an attachment (id=150)
--> (http://bugzilla.quagga.net/attachment.cgi?id=150&action=view)
Change to Active on TCP failures in OpenSent (untested)

Untested, off the cuff patch.

Just change the state to active, calling bgp_stop. This should result in the
outgoing struct peer being quiescent, with bgp_timer_set setting up the connect
timer. Thus hopefully allowing the other side a chance to connect without
colliding.

Seems to simple to be correct, I may have overlooked some details.

Can you test?

------- Additional Comments From paul@dishone.st 2007-06-20 11:02 -------
Does the patch attached to this bug address the issues?




------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
_______________________________________________
Quagga-bugs mailing list
Quagga-bugs@lists.quagga.net
http://lists.quagga.net/mailman/listinfo/quagga-bugs
[Bug 368] error in bgp fsm transitions (OpenSent) [ In reply to ]
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug
report.

http://bugzilla.quagga.net/show_bug.cgi?id=368





------- Additional Comments From paul@dishone.st 2007-06-22 16:19 -------
The patch seems stable in testing for me. I havn't determined through testing
whether it fixes the problem, but it seems it shouldd in theory, as described here.

Are you in a position to test this patch? If not, could you review it possibly?



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
_______________________________________________
Quagga-bugs mailing list
Quagga-bugs@lists.quagga.net
http://lists.quagga.net/mailman/listinfo/quagga-bugs
[Bug 368] error in bgp fsm transitions (OpenSent) [ In reply to ]
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug
report.

http://bugzilla.quagga.net/show_bug.cgi?id=368





------- Additional Comments From mukesh@cs.cmu.edu 2007-06-22 19:14 -------
Hi Paul,

Sorry for the delay in getting back to you. Somehow, I didn't get a notification
about your first comment. Anyway, I can confirm that the change for
TCP_fatal_error fixes the problem for me. (I applied that change, and tested the
behavior.)

The other two changes (for TCP_connection_open and TCP_connection_open_failed) I
haven't applied or tested. It would be a couple of weeks before I got try that
out. And even then, I don't think my test environment would test the
TCP_connection_open_failed case.

That said, the change for TCP_connection_open_failed makes sense.

For TCP_connection_open, however, both the existing code, and the proposed
patch, seem wrong. According to the RFC, a TCP_connection_open event in the
OpenSent state should be dealt with via Connection Collision processing
mechanism. So the call to bgp_stop seems premature (regardless of whether Quagga
transitions to Idle or Active).

Does that sound right, or have I missed something?



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
_______________________________________________
Quagga-bugs mailing list
Quagga-bugs@lists.quagga.net
http://lists.quagga.net/mailman/listinfo/quagga-bugs
[Bug 368] error in bgp fsm transitions (OpenSent) [ In reply to ]
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug
report.

http://bugzilla.quagga.net/show_bug.cgi?id=368


paul@dishone.st changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Status|ASSIGNED |CLOSED
Resolution| |FIXED




------- Additional Comments From paul@dishone.st 2007-06-22 20:08 -------
That's great, thanks!

The TCP_connection_open is special. It's even special in the RFC, cause it's
just such an ugly part of BGP. Essentially the FSM is per-tcp-session, not per
peer (the fact the RFC itself is mildly confused itself about this duality -
elsewhere it makes it quite clear that FSM is per connection, not per peer).

So connection-open is always an error, cause in either case, if a connection is
already open and it can't be opened.

All the TCP/connection error cases that went to Idle need to go to Active, as
far as i can tell from the RFC and your comments.

Thanks very much for report and review, I'll commit the patch.


------- Additional Comments From paul@dishone.st 2007-06-22 20:12 -------
Integrated to CVS, closing as fixed.

Thanks.





------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
_______________________________________________
Quagga-bugs mailing list
Quagga-bugs@lists.quagga.net
http://lists.quagga.net/mailman/listinfo/quagga-bugs