Priyanka B

[ONOS] Bandwidth issue fix

Change-Id: I72007a2e211b807906d58172d3c58b07f6613a55
...@@ -152,7 +152,16 @@ public class PcepBandwidthObjectVer1 implements PcepBandwidthObject { ...@@ -152,7 +152,16 @@ public class PcepBandwidthObjectVer1 implements PcepBandwidthObject {
152 throw new PcepParseException("Failed to write bandwidth object header. Index " + objLenIndex); 152 throw new PcepParseException("Failed to write bandwidth object header. Index " + objLenIndex);
153 } 153 }
154 154
155 - cb.writeInt(Float.floatToIntBits(iBandwidth)); 155 + //Convert to bytes per second
156 + float bwBytes = iBandwidth / 8.0f;
157 + //Bytes/sec to IEEE floating format
158 + int bandwidth = Float.floatToIntBits(bwBytes);
159 +
160 + cb.writeByte(bandwidth >>> 24);
161 + cb.writeByte(bandwidth >> 16 & 0xff);
162 + cb.writeByte(bandwidth >> 8 & 0xff);
163 + cb.writeByte(bandwidth & 0xff);
164 +
156 short hLength = (short) (cb.writerIndex() - objStartIndex); 165 short hLength = (short) (cb.writerIndex() - objStartIndex);
157 cb.setShort(objLenIndex, hLength); 166 cb.setShort(objLenIndex, hLength);
158 //will be helpful during print(). 167 //will be helpful during print().
......
...@@ -492,6 +492,8 @@ public class BgpTopologyProvider extends AbstractProvider implements DeviceProvi ...@@ -492,6 +492,8 @@ public class BgpTopologyProvider extends AbstractProvider implements DeviceProvi
492 switch (tlv.getType()) { 492 switch (tlv.getType()) {
493 case LinkStateAttributes.ATTR_LINK_MAX_RES_BANDWIDTH: 493 case LinkStateAttributes.ATTR_LINK_MAX_RES_BANDWIDTH:
494 maxReservableBw = ((BgpLinkAttrMaxLinkBandwidth) tlv).linkAttrMaxLinkBandwidth(); 494 maxReservableBw = ((BgpLinkAttrMaxLinkBandwidth) tlv).linkAttrMaxLinkBandwidth();
495 + //will get in bytes/second , convert to MBPS to store in network config service
496 + maxReservableBw = maxReservableBw * 8 / 1000000;
495 break; 497 break;
496 default: // do nothing 498 default: // do nothing
497 } 499 }
......
...@@ -1005,7 +1005,8 @@ public class BgpTopologyProviderTest { ...@@ -1005,7 +1005,8 @@ public class BgpTopologyProviderTest {
1005 linkStateAttr.add(tlv); 1005 linkStateAttr.add(tlv);
1006 tlv = BgpLinkAttrTeDefaultMetric.of(20); 1006 tlv = BgpLinkAttrTeDefaultMetric.of(20);
1007 linkStateAttr.add(tlv); 1007 linkStateAttr.add(tlv);
1008 - tlv = BgpLinkAttrMaxLinkBandwidth.of(70, LinkStateAttributes.ATTR_LINK_MAX_RES_BANDWIDTH); 1008 + tlv = BgpLinkAttrMaxLinkBandwidth.of((float) 8.75 * 1_000_000L,
1009 + LinkStateAttributes.ATTR_LINK_MAX_RES_BANDWIDTH);
1009 linkStateAttr.add(tlv); 1010 linkStateAttr.add(tlv);
1010 linkPathAttributes.add(new LinkStateAttributes(linkStateAttr)); 1011 linkPathAttributes.add(new LinkStateAttributes(linkStateAttr));
1011 details.setPathAttribute(linkPathAttributes); 1012 details.setPathAttribute(linkPathAttributes);
......
...@@ -1010,9 +1010,9 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid ...@@ -1010,9 +1010,9 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid
1010 //build ERO object 1010 //build ERO object
1011 PcepEroObject eroobj = pc.factory().buildEroObject().setSubObjects(llSubObjects).build(); 1011 PcepEroObject eroobj = pc.factory().buildEroObject().setSubObjects(llSubObjects).build();
1012 1012
1013 - int iBandwidth = DEFAULT_BANDWIDTH_VALUE; 1013 + float iBandwidth = DEFAULT_BANDWIDTH_VALUE;
1014 if (tunnel.annotations().value(BANDWIDTH) != null) { 1014 if (tunnel.annotations().value(BANDWIDTH) != null) {
1015 - iBandwidth = Float.floatToIntBits(Float.parseFloat(tunnel.annotations().value(BANDWIDTH))); 1015 + iBandwidth = Float.valueOf(tunnel.annotations().value(BANDWIDTH));
1016 } 1016 }
1017 // build bandwidth object 1017 // build bandwidth object
1018 PcepBandwidthObject bandwidthObject = pc.factory().buildBandwidthObject().setBandwidth(iBandwidth).build(); 1018 PcepBandwidthObject bandwidthObject = pc.factory().buildBandwidthObject().setBandwidth(iBandwidth).build();
......