Priyanka B
Committed by Gerrit Code Review

[ONOS-4671]PCECC defect fix , bgp pcep provider having same scheme problem

Change-Id: Ibfb18cfa79ec04ec2a62b2139d28b9c7b03d0a07
...@@ -38,6 +38,7 @@ import org.onosproject.net.intent.constraint.BandwidthConstraint; ...@@ -38,6 +38,7 @@ import org.onosproject.net.intent.constraint.BandwidthConstraint;
38 import org.onosproject.net.DeviceId; 38 import org.onosproject.net.DeviceId;
39 import org.onosproject.net.Link; 39 import org.onosproject.net.Link;
40 import org.onosproject.net.resource.ResourceConsumer; 40 import org.onosproject.net.resource.ResourceConsumer;
41 +import org.onosproject.pce.pceservice.constraint.CapabilityConstraint;
41 import org.onosproject.pce.pceservice.constraint.CostConstraint; 42 import org.onosproject.pce.pceservice.constraint.CostConstraint;
42 import org.onosproject.pce.pceservice.TunnelConsumerId; 43 import org.onosproject.pce.pceservice.TunnelConsumerId;
43 import org.onosproject.pce.pceservice.LspType; 44 import org.onosproject.pce.pceservice.LspType;
...@@ -132,6 +133,8 @@ public class DistributedPceStore implements PceStore { ...@@ -132,6 +133,8 @@ public class DistributedPceStore implements PceStore {
132 CostConstraint.class, 133 CostConstraint.class,
133 CostConstraint.Type.class, 134 CostConstraint.Type.class,
134 BandwidthConstraint.class, 135 BandwidthConstraint.class,
136 + CapabilityConstraint.class,
137 + CapabilityConstraint.CapabilityType.class,
135 LspType.class) 138 LspType.class)
136 .build())) 139 .build()))
137 140
......
...@@ -80,7 +80,7 @@ public interface PcepBandwidthObject { ...@@ -80,7 +80,7 @@ public interface PcepBandwidthObject {
80 * 80 *
81 * @return bandwidth 81 * @return bandwidth
82 */ 82 */
83 - int getBandwidth(); 83 + float getBandwidth();
84 84
85 /** 85 /**
86 * Sets bandwidth value and return its builder. 86 * Sets bandwidth value and return its builder.
...@@ -88,7 +88,7 @@ public interface PcepBandwidthObject { ...@@ -88,7 +88,7 @@ public interface PcepBandwidthObject {
88 * @param iBandwidth bandwidth value 88 * @param iBandwidth bandwidth value
89 * @return Builder by setting bandwidth 89 * @return Builder by setting bandwidth
90 */ 90 */
91 - Builder setBandwidth(int iBandwidth); 91 + Builder setBandwidth(float iBandwidth);
92 92
93 /** 93 /**
94 * Sets P flag in Bandwidth object header and returns its builder. 94 * Sets P flag in Bandwidth object header and returns its builder.
......
...@@ -169,7 +169,7 @@ public class PcepBandwidthObjectVer1 implements PcepBandwidthObject { ...@@ -169,7 +169,7 @@ public class PcepBandwidthObjectVer1 implements PcepBandwidthObject {
169 private PcepObjectHeader bandwidthObjHeader; 169 private PcepObjectHeader bandwidthObjHeader;
170 private boolean bIsHeaderSet = false; 170 private boolean bIsHeaderSet = false;
171 171
172 - private int iBandwidth; 172 + private float iBandwidth;
173 private boolean bIsBandwidthSet = false; 173 private boolean bIsBandwidthSet = false;
174 174
175 private boolean bPFlag; 175 private boolean bPFlag;
...@@ -200,7 +200,7 @@ public class PcepBandwidthObjectVer1 implements PcepBandwidthObject { ...@@ -200,7 +200,7 @@ public class PcepBandwidthObjectVer1 implements PcepBandwidthObject {
200 } 200 }
201 201
202 @Override 202 @Override
203 - public int getBandwidth() { 203 + public float getBandwidth() {
204 return this.iBandwidth; 204 return this.iBandwidth;
205 } 205 }
206 206
...@@ -216,7 +216,7 @@ public class PcepBandwidthObjectVer1 implements PcepBandwidthObject { ...@@ -216,7 +216,7 @@ public class PcepBandwidthObjectVer1 implements PcepBandwidthObject {
216 } 216 }
217 217
218 @Override 218 @Override
219 - public Builder setBandwidth(int iBandwidth) { 219 + public Builder setBandwidth(float iBandwidth) {
220 this.iBandwidth = iBandwidth; 220 this.iBandwidth = iBandwidth;
221 this.bIsBandwidthSet = true; 221 this.bIsBandwidthSet = true;
222 return this; 222 return this;
......
...@@ -21,9 +21,6 @@ import org.apache.felix.scr.annotations.Deactivate; ...@@ -21,9 +21,6 @@ import org.apache.felix.scr.annotations.Deactivate;
21 import org.apache.felix.scr.annotations.Reference; 21 import org.apache.felix.scr.annotations.Reference;
22 import org.apache.felix.scr.annotations.ReferenceCardinality; 22 import org.apache.felix.scr.annotations.ReferenceCardinality;
23 import org.onlab.packet.ChassisId; 23 import org.onlab.packet.ChassisId;
24 -import org.onosproject.cluster.ClusterService;
25 -import org.onosproject.mastership.MastershipAdminService;
26 -import org.onosproject.mastership.MastershipService;
27 import org.onosproject.net.ConnectPoint; 24 import org.onosproject.net.ConnectPoint;
28 import org.onosproject.net.DefaultAnnotations; 25 import org.onosproject.net.DefaultAnnotations;
29 import org.onosproject.net.Device; 26 import org.onosproject.net.Device;
...@@ -55,7 +52,6 @@ import org.onosproject.net.link.LinkDescription; ...@@ -55,7 +52,6 @@ import org.onosproject.net.link.LinkDescription;
55 import org.onosproject.net.link.LinkProvider; 52 import org.onosproject.net.link.LinkProvider;
56 import org.onosproject.net.link.LinkProviderRegistry; 53 import org.onosproject.net.link.LinkProviderRegistry;
57 import org.onosproject.net.link.LinkProviderService; 54 import org.onosproject.net.link.LinkProviderService;
58 -import org.onosproject.net.link.LinkService;
59 import org.onosproject.net.provider.AbstractProvider; 55 import org.onosproject.net.provider.AbstractProvider;
60 import org.onosproject.net.provider.ProviderId; 56 import org.onosproject.net.provider.ProviderId;
61 import org.onosproject.pcep.api.DeviceCapability; 57 import org.onosproject.pcep.api.DeviceCapability;
...@@ -94,7 +90,9 @@ public class PcepTopologyProvider extends AbstractProvider ...@@ -94,7 +90,9 @@ public class PcepTopologyProvider extends AbstractProvider
94 * Creates instance of PCEP topology provider. 90 * Creates instance of PCEP topology provider.
95 */ 91 */
96 public PcepTopologyProvider() { 92 public PcepTopologyProvider() {
97 - super(new ProviderId("l3", "org.onosproject.provider.pcep")); 93 + //In BGP-PCEP app, since both BGP and PCEP topology provider have same scheme
94 + //so BGP will be primary and PCEP topology provider will be ancillary.
95 + super(new ProviderId("l3", "org.onosproject.provider.pcep", true));
98 } 96 }
99 97
100 private static final Logger log = LoggerFactory 98 private static final Logger log = LoggerFactory
...@@ -113,18 +111,6 @@ public class PcepTopologyProvider extends AbstractProvider ...@@ -113,18 +111,6 @@ public class PcepTopologyProvider extends AbstractProvider
113 protected DeviceService deviceService; 111 protected DeviceService deviceService;
114 112
115 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) 113 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
116 - protected LinkService linkService;
117 -
118 - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
119 - protected MastershipAdminService mastershipAdminService;
120 -
121 - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
122 - protected MastershipService mastershipService;
123 -
124 - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
125 - protected ClusterService clusterService;
126 -
127 - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
128 protected PcepClientController pcepClientController; 114 protected PcepClientController pcepClientController;
129 115
130 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) 116 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
...@@ -156,6 +142,7 @@ public class PcepTopologyProvider extends AbstractProvider ...@@ -156,6 +142,7 @@ public class PcepTopologyProvider extends AbstractProvider
156 controller.addLinkListener(listener); 142 controller.addLinkListener(listener);
157 pcepClientController.addNodeListener(listener); 143 pcepClientController.addNodeListener(listener);
158 netConfigRegistry.registerConfigFactory(configFactory); 144 netConfigRegistry.registerConfigFactory(configFactory);
145 + log.info("Started");
159 } 146 }
160 147
161 @Deactivate 148 @Deactivate
...@@ -166,6 +153,7 @@ public class PcepTopologyProvider extends AbstractProvider ...@@ -166,6 +153,7 @@ public class PcepTopologyProvider extends AbstractProvider
166 controller.removeLinkListener(listener); 153 controller.removeLinkListener(listener);
167 pcepClientController.removeNodeListener(listener); 154 pcepClientController.removeNodeListener(listener);
168 netConfigRegistry.unregisterConfigFactory(configFactory); 155 netConfigRegistry.unregisterConfigFactory(configFactory);
156 + log.info("Stopped");
169 } 157 }
170 158
171 private List<PortDescription> buildPortDescriptions(PcepDpid dpid, 159 private List<PortDescription> buildPortDescriptions(PcepDpid dpid,
......
...@@ -24,6 +24,7 @@ import org.apache.felix.scr.annotations.Property; ...@@ -24,6 +24,7 @@ import org.apache.felix.scr.annotations.Property;
24 import org.apache.felix.scr.annotations.Reference; 24 import org.apache.felix.scr.annotations.Reference;
25 import org.apache.felix.scr.annotations.ReferenceCardinality; 25 import org.apache.felix.scr.annotations.ReferenceCardinality;
26 import org.apache.felix.scr.annotations.Service; 26 import org.apache.felix.scr.annotations.Service;
27 +import org.onlab.packet.Ip4Address;
27 import org.onlab.packet.IpAddress; 28 import org.onlab.packet.IpAddress;
28 import org.onosproject.cfg.ComponentConfigService; 29 import org.onosproject.cfg.ComponentConfigService;
29 import org.onosproject.core.DefaultGroupId; 30 import org.onosproject.core.DefaultGroupId;
...@@ -306,18 +307,13 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid ...@@ -306,18 +307,13 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid
306 return; 307 return;
307 } 308 }
308 309
309 - if (!(srcElement instanceof IpElementId)) {
310 - log.error("Element id is not valid");
311 - return;
312 - }
313 -
314 // check for tunnel end points 310 // check for tunnel end points
315 if (!(tunnel.src() instanceof IpTunnelEndPoint) || !(tunnel.dst() instanceof IpTunnelEndPoint)) { 311 if (!(tunnel.src() instanceof IpTunnelEndPoint) || !(tunnel.dst() instanceof IpTunnelEndPoint)) {
316 log.error("Tunnel source or destination is not valid"); 312 log.error("Tunnel source or destination is not valid");
317 return; 313 return;
318 } 314 }
319 315
320 - PcepClient pc = pcepClientController.getClient(PccId.pccId(((IpElementId) srcElement).ipAddress())); 316 + PcepClient pc = pcepClientController.getClient(PccId.pccId(((IpTunnelEndPoint) tunnel.src()).ip()));
321 317
322 if (!(pc instanceof PcepClient)) { 318 if (!(pc instanceof PcepClient)) {
323 log.error("There is no PCC connected with ip addresss {}" 319 log.error("There is no PCC connected with ip addresss {}"
...@@ -822,21 +818,27 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid ...@@ -822,21 +818,27 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid
822 IpAddress ipDstAddress = null; 818 IpAddress ipDstAddress = null;
823 IpAddress ipSrcAddress = null; 819 IpAddress ipSrcAddress = null;
824 PcepValueType subObj = null; 820 PcepValueType subObj = null;
821 + long portNo;
825 822
826 for (Link link : listLink) { 823 for (Link link : listLink) {
827 source = link.src(); 824 source = link.src();
828 if (!(source.equals(destination))) { 825 if (!(source.equals(destination))) {
829 //set IPv4SubObject for ERO object 826 //set IPv4SubObject for ERO object
830 - ipSrcAddress = source.ipElementId().ipAddress(); 827 + portNo = source.port().toLong();
828 + portNo = ((portNo & IDENTIFIER_SET) == IDENTIFIER_SET) ? portNo & SET : portNo;
829 + ipSrcAddress = Ip4Address.valueOf((int) portNo);
831 subObj = new IPv4SubObject(ipSrcAddress.getIp4Address().toInt()); 830 subObj = new IPv4SubObject(ipSrcAddress.getIp4Address().toInt());
832 llSubObjects.add(subObj); 831 llSubObjects.add(subObj);
833 } 832 }
834 833
835 destination = link.dst(); 834 destination = link.dst();
836 - ipDstAddress = destination.ipElementId().ipAddress(); 835 + portNo = destination.port().toLong();
836 + portNo = ((portNo & IDENTIFIER_SET) == IDENTIFIER_SET) ? portNo & SET : portNo;
837 + ipDstAddress = Ip4Address.valueOf((int) portNo);
837 subObj = new IPv4SubObject(ipDstAddress.getIp4Address().toInt()); 838 subObj = new IPv4SubObject(ipDstAddress.getIp4Address().toInt());
838 llSubObjects.add(subObj); 839 llSubObjects.add(subObj);
839 } 840 }
841 +
840 return llSubObjects; 842 return llSubObjects;
841 } 843 }
842 844
...@@ -904,9 +906,9 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid ...@@ -904,9 +906,9 @@ public class PcepTunnelProvider extends AbstractProvider implements TunnelProvid
904 //build ERO object 906 //build ERO object
905 PcepEroObject eroobj = pc.factory().buildEroObject().setSubObjects(llSubObjects).build(); 907 PcepEroObject eroobj = pc.factory().buildEroObject().setSubObjects(llSubObjects).build();
906 908
907 - int iBandwidth = DEFAULT_BANDWIDTH_VALUE; 909 + float iBandwidth = DEFAULT_BANDWIDTH_VALUE;
908 if (tunnel.annotations().value(BANDWIDTH) != null) { 910 if (tunnel.annotations().value(BANDWIDTH) != null) {
909 - iBandwidth = Integer.parseInt(tunnel.annotations().value(BANDWIDTH)); 911 + iBandwidth = Float.parseFloat(tunnel.annotations().value(BANDWIDTH));
910 } 912 }
911 // build bandwidth object 913 // build bandwidth object
912 PcepBandwidthObject bandwidthObject = pc.factory().buildBandwidthObject().setBandwidth(iBandwidth).build(); 914 PcepBandwidthObject bandwidthObject = pc.factory().buildBandwidthObject().setBandwidth(iBandwidth).build();
......