[BGPCEP-218] Capability Parameter Parse Issue Created: 05/May/15  Updated: 03/Mar/19  Resolved: 03/Jun/15

Status: Resolved
Project: bgpcep
Component/s: BGP
Affects Version/s: Bugzilla Migration
Fix Version/s: Bugzilla Migration

Type: Bug
Reporter: Claudio David Gasparini Assignee: Claudio David Gasparini
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 3117

 Description   

1) ODL only accepts BGP connection if 4-byte AS capability is sent by peer
2) When I enable 4-byte AS support in Spirent it sends the capability along with other capabilities in the same parameter as I show below:

rame 5: 113 bytes on wire (904 bits), 113 bytes captured (904 bits) Ethernet II, Src: Performa_00:00:05 (00:10:94:00:00:05), Dst: Vmware_ce:72:24 (00:0c:29:ce:72:24) Internet Protocol Version 4, Src: 3.3.3.4 (3.3.3.4), Dst: 3.3.3.3 (3.3.3.3) Transmission Control Protocol, Src Port: 179 (179), Dst Port: 34078 (34078), Seq: 1, Ack: 62, Len: 43 Border Gateway Protocol - OPEN Message
Marker: ffffffffffffffffffffffffffffffff
Length: 43
Type: OPEN Message (1)
Version: 4
My AS: 200
Hold Time: 180
BGP Identifier: 3.3.3.4 (3.3.3.4)
Optional Parameters Length: 14
Optional Parameters
Optional Parameter: Capability
Parameter Type: Capability (2)
Parameter Length: 12
Capability: Multiprotocol extensions capability
Type: Multiprotocol extensions capability (1)
Length: 4
AFI: IPv4 (1)
Reserved: 00
SAFI: Unicast (1)
Capability: Support for 4-octet AS number capability
Type: Support for 4-octet AS number capability (65)
Length: 4
AS Number: 200

ODL seems not to like this format because it still complaints about missing 4-byte AS capability where it is clearly there.



 Comments   
Comment by Vratko Polak [ 05/May/15 ]

> ODL seems not to like this format

Other devices, including ExaBGP, do put every Capability in separate "Optional Parameter: Capability" container (so "Optional Parameters" becomes a list).
This Open message from Spirent has single element in "Optional Parameters", and "Optional Parameter: Capability" is a list.

The current ODL parsing logic expect the ExaBGP case, not the Spirent case.

The second paragraph of https://tools.ietf.org/html/rfc5492#section-3 states:
"A BGP speaker determines the capabilities supported by its peer by
examining the list of capabilities present in the Capabilities
Optional Parameter carried by the OPEN message that the speaker
receives from the peer."
which I read as "Spirent is right", but for interoperability reasons, ODL should perhaps expect lists on both levels.

Comment by Claudio David Gasparini [ 07/May/15 ]

https://git.opendaylight.org/gerrit/#/c/19787/

Comment by Luis Gomez [ 14/May/15 ]

Is it possible to cherry-pick this to stable/helium?

Thanks/Luis

Comment by Vratko Polak [ 03/Jun/15 ]

> Is it possible to cherry-pick this to stable/helium?

I have heard the answer is "No.", because the patch introduces a rather significant change to internal APIs.

Generated at Wed Feb 07 19:12:23 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.