[ONOS] cherry picked from 1.6, bandwidth, CR and resilency fix

Change-Id: Ifd7bf886d2725db1f5e2f7a1eac739d9a446f868
diff --git a/providers/bgpcep/flow/src/main/java/org/onosproject/provider/bgpcep/flow/impl/BgpcepFlowRuleProvider.java b/providers/bgpcep/flow/src/main/java/org/onosproject/provider/bgpcep/flow/impl/BgpcepFlowRuleProvider.java
index 4369f48..7330a3a 100644
--- a/providers/bgpcep/flow/src/main/java/org/onosproject/provider/bgpcep/flow/impl/BgpcepFlowRuleProvider.java
+++ b/providers/bgpcep/flow/src/main/java/org/onosproject/provider/bgpcep/flow/impl/BgpcepFlowRuleProvider.java
@@ -89,11 +89,14 @@
 import org.onosproject.pcepio.types.StatefulIPv4LspIdentifiersTlv;
 import org.onosproject.pcepio.types.SymbolicPathNameTlv;
 import org.onosproject.pcep.controller.LspType;
+import org.onosproject.pcepio.protocol.PcepAttribute;
+import org.onosproject.pcepio.protocol.PcepBandwidthObject;
 import org.onosproject.pcep.controller.SrpIdGenerators;
 import org.onosproject.pcep.controller.PcepAnnotationKeys;
 import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
 
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.BANDWIDTH;
 import static org.onosproject.pcep.controller.PcepAnnotationKeys.DELEGATE;
 import static org.onosproject.pcep.controller.PcepAnnotationKeys.LSP_SIG_TYPE;
 import static org.onosproject.pcep.controller.PcepAnnotationKeys.PCE_INIT;
@@ -530,8 +533,23 @@
                               .setSubObjects(subObjects)
                               .build();
 
+        float  iBandwidth = 0;
+        if (tunnel.annotations().value(BANDWIDTH) != null) {
+            //iBandwidth = Float.floatToIntBits(Float.parseFloat(tunnel.annotations().value(BANDWIDTH)));
+            iBandwidth = Float.parseFloat(tunnel.annotations().value(BANDWIDTH));
+        }
+        // build bandwidth object
+        PcepBandwidthObject bandwidthObject = pc.factory().buildBandwidthObject()
+                                              .setBandwidth(iBandwidth)
+                                              .build();
+        // build pcep attribute
+        PcepAttribute pcepAttribute = pc.factory().buildPcepAttribute()
+                                      .setBandwidthObject(bandwidthObject)
+                                      .build();
+
         PcepMsgPath msgPath = pc.factory().buildPcepMsgPath()
                               .setEroObject(eroObj)
+                              .setPcepAttribute(pcepAttribute)
                               .build();
 
         PcepUpdateRequest updateReq = pc.factory().buildPcepUpdateRequest()