-
Bug
-
Resolution: Unresolved
-
High
-
None
-
Magnesium
-
None
Hello,
context : I use Opendaylight with CSR1000v and BGP-LS protocol for link state topology. my network is configured to use TE class, and for clear understanding with the example below, I have the following TE-class mapping :
TE-Class Class-Type Priority 0 0 7 1 0 6 2 0 4 3 0 1 4 1 7 5 1 4 6 1 2 7 1 1
The problem is the class-type of the path computation request is not matched with class-type of edge attributes, but matched with the list index of unreserved bandwitdh from edge attributes. it's not the same.
AbstractPathComputation line 230 :
(attributes.getUnreservedBandwidth().get(constraints.getClassType().intValue()).getBandwidth().getValue().longValue() < bandwidth)
Below an example with one edge and bandwidth contraints (I have hidden id and ip for security reasons) and the various results gathered using path computation request.
{ "edge-id": xxxxxxxxx, "remote-vertex-id": yyyyyyyyy, "local-vertex-id": xxxxxxxxx, "name": "xxxxxxxxx - yyyyyyyyy", "edge-attributes": { "metric": 1, "max-resv-link-bandwidth": 1000000, "remote-address": "x.x.x.x", "local-address": "x.x.x.x", "admin-group": 4, "unreserved-bandwidth": [ { "class-type": 7, "bandwidth": 200000 }, { "class-type": 6, "bandwidth": 200000 }, { "class-type": 5, "bandwidth": 75000 }, { "class-type": 4, "bandwidth": 75000 }, { "class-type": 3, "bandwidth": 1000000 }, { "class-type": 2, "bandwidth": 875000 }, { "class-type": 1, "bandwidth": 875000 }, { "class-type": 0, "bandwidth": 875000 } ], "max-link-bandwidth": 1000000, "te-metric": 1 } }
cisco topology on this edge :
BC Model Id: RDM BC0 (max_reservable): 8000 (kbps) BC0 (max_reservable_bw_global): 8000 (kbps) BC1 (max_reservable_bw_sub): 1600 (kbps) Total Allocated Reservable BW (kbps) BW (kbps) --------------- ----------- TE-Class[0]: 1000 7000 TE-Class[1]: 1000 7000 TE-Class[2]: 1000 7000 TE-Class[3]: 0 8000 TE-Class[4]: 1000 600 TE-Class[5]: 1000 600 TE-Class[6]: 0 1600 TE-Class[7]: 0 1600
tests and results with computation request :
{"input":{"algorithm":"cspf","constraints":{"address-family":"ipv4","bandwidth":200000,"class-type":0},"destination":AAAAAA,"graph-name":"ted://netip-bgp-linkstate-topology","source":BBBBBBB}} => Ero contains yyyyyyyyy {"input":{"algorithm":"cspf","constraints":{"address-family":"ipv4","bandwidth":210000,"class-type":0},"destination":AAAAAA,"graph-name":"ted://netip-bgp-linkstate-topology","source":BBBBBBB}} => I have another ero without yyyyyyyyy
in this result, classtype 0 in resquest correspond to class type 7 from the edge.
{"input":{"algorithm":"cspf","constraints":{"address-family":"ipv4","bandwidth":75000,"class-type":3},"destination":AAAAAA,"graph-name":"ted://netip-bgp-linkstate-topology","source":BBBBBBB}} => Ero contains yyyyyyyyy {"input":{"algorithm":"cspf","constraints":{"address-family":"ipv4","bandwidth":80000,"class-type":3},"destination":AAAAAA,"graph-name":"ted://netip-bgp-linkstate-topology","source":BBBBBBB}} => I have another ero without yyyyyyyyy
=> above, class type 3 in path computation request correspond to class type 4 from edge unreserved bandwidth attributes.
another example :
{"input":{"algorithm":"cspf","constraints":{"address-family":"ipv4","bandwidth":1000000,"class-type":4},"destination":AAAAAA,"graph-name":"ted://netip-bgp-linkstate-topology","source":BBBBBBB}} => Ero contains yyyyyyyyy
best regards
Jean-Marc