Cherry picks from 1.6 branch
Change-Id: I596247425802fc759463bcf77ea3c885f3161581
Showing
9 changed files
with
22 additions
and
23 deletions
| ... | @@ -254,6 +254,7 @@ public class PceManager implements PceService { | ... | @@ -254,6 +254,7 @@ public class PceManager implements PceService { |
| 254 | 254 | ||
| 255 | tunnelConsumerIdGen = coreService.getIdGenerator(TUNNEL_CONSUMER_ID_GEN_TOPIC); | 255 | tunnelConsumerIdGen = coreService.getIdGenerator(TUNNEL_CONSUMER_ID_GEN_TOPIC); |
| 256 | localLspIdIdGen = coreService.getIdGenerator(LOCAL_LSP_ID_GEN_TOPIC); | 256 | localLspIdIdGen = coreService.getIdGenerator(LOCAL_LSP_ID_GEN_TOPIC); |
| 257 | + localLspIdIdGen.getNewId(); // To prevent 0, the 1st value generated from being used in protocol. | ||
| 257 | localLspIdFreeList = storageService.<Short>setBuilder() | 258 | localLspIdFreeList = storageService.<Short>setBuilder() |
| 258 | .withName("pcepLocalLspIdDeletedList") | 259 | .withName("pcepLocalLspIdDeletedList") |
| 259 | .withSerializer(Serializer.using(KryoNamespaces.API)) | 260 | .withSerializer(Serializer.using(KryoNamespaces.API)) | ... | ... |
| ... | @@ -406,15 +406,6 @@ public final class PceccSrTeBeHandler { | ... | @@ -406,15 +406,6 @@ public final class PceccSrTeBeHandler { |
| 406 | DeviceId deviceId = null; | 406 | DeviceId deviceId = null; |
| 407 | for (Iterator<Link> iterator = linkList.iterator(); iterator.hasNext();) { | 407 | for (Iterator<Link> iterator = linkList.iterator(); iterator.hasNext();) { |
| 408 | link = iterator.next(); | 408 | link = iterator.next(); |
| 409 | - // Add source device label now | ||
| 410 | - deviceId = link.src().deviceId(); | ||
| 411 | - nodeLabelId = pceStore.getGlobalNodeLabel(deviceId); | ||
| 412 | - if (nodeLabelId == null) { | ||
| 413 | - log.error("Unable to find node label for a device id {} in store.", deviceId.toString()); | ||
| 414 | - return null; | ||
| 415 | - } | ||
| 416 | - labelStack.add(nodeLabelId); | ||
| 417 | - | ||
| 418 | // Add adjacency label for this link | 409 | // Add adjacency label for this link |
| 419 | adjLabelId = pceStore.getAdjLabel(link); | 410 | adjLabelId = pceStore.getAdjLabel(link); |
| 420 | if (adjLabelId == null) { | 411 | if (adjLabelId == null) { |
| ... | @@ -422,11 +413,7 @@ public final class PceccSrTeBeHandler { | ... | @@ -422,11 +413,7 @@ public final class PceccSrTeBeHandler { |
| 422 | return null; | 413 | return null; |
| 423 | } | 414 | } |
| 424 | labelStack.add(adjLabelId); | 415 | labelStack.add(adjLabelId); |
| 425 | - } | ||
| 426 | 416 | ||
| 427 | - // This is the last link in path | ||
| 428 | - // Add destination device label now. | ||
| 429 | - if (link != null) { | ||
| 430 | deviceId = link.dst().deviceId(); | 417 | deviceId = link.dst().deviceId(); |
| 431 | nodeLabelId = pceStore.getGlobalNodeLabel(deviceId); | 418 | nodeLabelId = pceStore.getGlobalNodeLabel(deviceId); |
| 432 | if (nodeLabelId == null) { | 419 | if (nodeLabelId == null) { | ... | ... |
| ... | @@ -417,11 +417,8 @@ public class PceccSrTeBeHandlerTest { | ... | @@ -417,11 +417,8 @@ public class PceccSrTeBeHandlerTest { |
| 417 | // Compute label stack | 417 | // Compute label stack |
| 418 | LabelStack labelStack = srTeHandler.computeLabelStack(path1); | 418 | LabelStack labelStack = srTeHandler.computeLabelStack(path1); |
| 419 | 419 | ||
| 420 | - // check node-label of D1.deviceId() | ||
| 421 | List<LabelResourceId> labelList = labelStack.labelResources(); | 420 | List<LabelResourceId> labelList = labelStack.labelResources(); |
| 422 | Iterator<LabelResourceId> iterator = labelList.iterator(); | 421 | Iterator<LabelResourceId> iterator = labelList.iterator(); |
| 423 | - labelId = iterator.next(); | ||
| 424 | - assertThat(labelId, is(LabelResourceId.labelResourceId(4097))); | ||
| 425 | 422 | ||
| 426 | // check adjacency label of D1.deviceId() | 423 | // check adjacency label of D1.deviceId() |
| 427 | labelId = iterator.next(); | 424 | labelId = iterator.next(); | ... | ... |
| ... | @@ -438,6 +438,7 @@ public class PcepClientControllerImpl implements PcepClientController { | ... | @@ -438,6 +438,7 @@ public class PcepClientControllerImpl implements PcepClientController { |
| 438 | // When there are no LSPs to sync, directly end-of-sync PCRpt will come and the | 438 | // When there are no LSPs to sync, directly end-of-sync PCRpt will come and the |
| 439 | // list will be null. | 439 | // list will be null. |
| 440 | syncStateRptList = Collections.EMPTY_LIST; | 440 | syncStateRptList = Collections.EMPTY_LIST; |
| 441 | + log.debug("No LSPs reported from PCC during sync."); | ||
| 441 | } | 442 | } |
| 442 | 443 | ||
| 443 | Iterator<PcepStateReport> stateRptListIterator = syncStateRptList.iterator(); | 444 | Iterator<PcepStateReport> stateRptListIterator = syncStateRptList.iterator(); |
| ... | @@ -502,9 +503,9 @@ public class PcepClientControllerImpl implements PcepClientController { | ... | @@ -502,9 +503,9 @@ public class PcepClientControllerImpl implements PcepClientController { |
| 502 | } catch (PcepParseException e) { | 503 | } catch (PcepParseException e) { |
| 503 | log.error("Exception occured while sending initiate delete message {}", e.getMessage()); | 504 | log.error("Exception occured while sending initiate delete message {}", e.getMessage()); |
| 504 | } | 505 | } |
| 505 | - } | ||
| 506 | continue; | 506 | continue; |
| 507 | } | 507 | } |
| 508 | + } | ||
| 508 | 509 | ||
| 509 | if (!lspObj.getCFlag()) { | 510 | if (!lspObj.getCFlag()) { |
| 510 | // For learned LSP process both add/update PCRpt. | 511 | // For learned LSP process both add/update PCRpt. | ... | ... |
| ... | @@ -186,6 +186,7 @@ public class PcepClientImpl implements PcepClientDriver { | ... | @@ -186,6 +186,7 @@ public class PcepClientImpl implements PcepClientDriver { |
| 186 | 186 | ||
| 187 | @Override | 187 | @Override |
| 188 | public void setLspDbSyncStatus(PcepSyncStatus syncStatus) { | 188 | public void setLspDbSyncStatus(PcepSyncStatus syncStatus) { |
| 189 | + log.debug("LSP DB sync status set from {} to {}", this.lspDbSyncStatus, syncStatus); | ||
| 189 | this.lspDbSyncStatus = syncStatus; | 190 | this.lspDbSyncStatus = syncStatus; |
| 190 | } | 191 | } |
| 191 | 192 | ||
| ... | @@ -199,7 +200,7 @@ public class PcepClientImpl implements PcepClientDriver { | ... | @@ -199,7 +200,7 @@ public class PcepClientImpl implements PcepClientDriver { |
| 199 | 200 | ||
| 200 | PcepSyncStatus syncOldStatus = labelDbSyncStatus(); | 201 | PcepSyncStatus syncOldStatus = labelDbSyncStatus(); |
| 201 | this.labelDbSyncStatus = syncStatus; | 202 | this.labelDbSyncStatus = syncStatus; |
| 202 | - | 203 | + log.debug("Label DB sync status set from {} to {}", syncOldStatus, syncStatus); |
| 203 | if ((syncOldStatus == PcepSyncStatus.IN_SYNC) && (syncStatus == PcepSyncStatus.SYNCED)) { | 204 | if ((syncOldStatus == PcepSyncStatus.IN_SYNC) && (syncStatus == PcepSyncStatus.SYNCED)) { |
| 204 | // Perform end of LSP DB sync actions. | 205 | // Perform end of LSP DB sync actions. |
| 205 | this.agent.analyzeSyncMsgList(pccId); | 206 | this.agent.analyzeSyncMsgList(pccId); | ... | ... |
| ... | @@ -59,6 +59,14 @@ public class PcepNaiIpv4Adjacency implements PcepNai { | ... | @@ -59,6 +59,14 @@ public class PcepNaiIpv4Adjacency implements PcepNai { |
| 59 | return ST_TYPE; | 59 | return ST_TYPE; |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | + public int getLocalIpv4Addr() { | ||
| 63 | + return localIpv4Addr; | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + public int getRemoteIpv4Addr() { | ||
| 67 | + return remoteIpv4Addr; | ||
| 68 | + } | ||
| 69 | + | ||
| 62 | @Override | 70 | @Override |
| 63 | public int write(ChannelBuffer bb) { | 71 | public int write(ChannelBuffer bb) { |
| 64 | int iLenStartIndex = bb.writerIndex(); | 72 | int iLenStartIndex = bb.writerIndex(); | ... | ... |
| ... | @@ -84,7 +84,7 @@ public class SrEroSubObject implements PcepValueType { | ... | @@ -84,7 +84,7 @@ public class SrEroSubObject implements PcepValueType { |
| 84 | */ | 84 | */ |
| 85 | protected static final Logger log = LoggerFactory.getLogger(SrEroSubObject.class); | 85 | protected static final Logger log = LoggerFactory.getLogger(SrEroSubObject.class); |
| 86 | 86 | ||
| 87 | - public static final short TYPE = 0x60; //TODO : type to be defined | 87 | + public static final short TYPE = 0x24; //TODO : type to be defined |
| 88 | public static final short LENGTH = 12; | 88 | public static final short LENGTH = 12; |
| 89 | public static final short VALUE_LENGTH = 10; | 89 | public static final short VALUE_LENGTH = 10; |
| 90 | public static final int SET = 1; | 90 | public static final int SET = 1; |
| ... | @@ -243,9 +243,10 @@ public class SrEroSubObject implements PcepValueType { | ... | @@ -243,9 +243,10 @@ public class SrEroSubObject implements PcepValueType { |
| 243 | @Override | 243 | @Override |
| 244 | public int write(ChannelBuffer c) { | 244 | public int write(ChannelBuffer c) { |
| 245 | int iLenStartIndex = c.writerIndex(); | 245 | int iLenStartIndex = c.writerIndex(); |
| 246 | - | 246 | + c.writeByte(TYPE); |
| 247 | - c.writeShort(TYPE); | 247 | + // Store the position of object length |
| 248 | - c.writeShort(LENGTH); | 248 | + int objectLenIndex = c.writerIndex(); |
| 249 | + c.writeByte(0); | ||
| 249 | 250 | ||
| 250 | short temp = 0; | 251 | short temp = 0; |
| 251 | if (bMFlag) { | 252 | if (bMFlag) { |
| ... | @@ -264,13 +265,14 @@ public class SrEroSubObject implements PcepValueType { | ... | @@ -264,13 +265,14 @@ public class SrEroSubObject implements PcepValueType { |
| 264 | temp = (short) (temp | tempST); | 265 | temp = (short) (temp | tempST); |
| 265 | c.writeShort(temp); | 266 | c.writeShort(temp); |
| 266 | if (bMFlag) { | 267 | if (bMFlag) { |
| 267 | - int tempSid = (int) sid << 12; | 268 | + int tempSid = sid << 12; |
| 268 | c.writeInt(tempSid); | 269 | c.writeInt(tempSid); |
| 269 | } else { | 270 | } else { |
| 270 | c.writeInt(sid); | 271 | c.writeInt(sid); |
| 271 | } | 272 | } |
| 272 | nai.write(c); | 273 | nai.write(c); |
| 273 | 274 | ||
| 275 | + c.setByte(objectLenIndex, (c.writerIndex() - iLenStartIndex)); | ||
| 274 | return c.writerIndex() - iLenStartIndex; | 276 | return c.writerIndex() - iLenStartIndex; |
| 275 | } | 277 | } |
| 276 | 278 | ... | ... |
| ... | @@ -10,6 +10,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; | ... | @@ -10,6 +10,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 10 | import org.apache.felix.scr.annotations.Service; | 10 | import org.apache.felix.scr.annotations.Service; |
| 11 | import org.onlab.packet.Ethernet; | 11 | import org.onlab.packet.Ethernet; |
| 12 | import org.onlab.packet.IPv4; | 12 | import org.onlab.packet.IPv4; |
| 13 | +import org.onlab.packet.MacAddress; | ||
| 13 | import org.onlab.packet.TCP; | 14 | import org.onlab.packet.TCP; |
| 14 | import org.onosproject.net.AnnotationKeys; | 15 | import org.onosproject.net.AnnotationKeys; |
| 15 | import org.onosproject.net.ConnectPoint; | 16 | import org.onosproject.net.ConnectPoint; |
| ... | @@ -90,6 +91,7 @@ public class PcepPacketProvider extends AbstractProvider implements PacketProvid | ... | @@ -90,6 +91,7 @@ public class PcepPacketProvider extends AbstractProvider implements PacketProvid |
| 90 | 91 | ||
| 91 | Ethernet eth = new Ethernet(); | 92 | Ethernet eth = new Ethernet(); |
| 92 | eth.setEtherType(Ethernet.TYPE_IPV4); | 93 | eth.setEtherType(Ethernet.TYPE_IPV4); |
| 94 | + eth.setDestinationMACAddress(MacAddress.NONE); | ||
| 93 | eth.setPayload(ipv4); | 95 | eth.setPayload(ipv4); |
| 94 | 96 | ||
| 95 | // Get lsrId of the PCEP client from the PCC ID. Session info is based on lsrID. | 97 | // Get lsrId of the PCEP client from the PCC ID. Session info is based on lsrID. | ... | ... |
This diff is collapsed. Click to expand it.
-
Please register or login to post a comment