Bump version of P4Runtime to 1.0.0rc3 and P4 tools
Change-Id: I3082b4bd772d692830bd5af8e326a0fd5fb2f167
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java
index 54d284d..c291db4 100644
--- a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java
@@ -1053,7 +1053,15 @@
WriteOperationType opType) {
final List<Update> updateMsgs = entries.stream()
- .map(MulticastGroupEntryCodec::encode)
+ .map(piEntry -> {
+ try {
+ return MulticastGroupEntryCodec.encode(piEntry);
+ } catch (EncodeException e) {
+ log.warn("Unable to encode PiMulticastGroupEntry: {}", e.getMessage());
+ return null;
+ }
+ })
+ .filter(Objects::nonNull)
.map(mcMsg -> PacketReplicationEngineEntry.newBuilder()
.setMulticastGroupEntry(mcMsg)
.build())
@@ -1117,13 +1125,22 @@
WriteOperationType opType,
String entryType) {
// True if all entities were successfully written.
- return writeAndReturnSuccessEntities(updates, writeEntities, opType,
- entryType).size() == writeEntities.size();
+ return writeAndReturnSuccessEntities(updates, writeEntities, opType, entryType)
+ .size() == writeEntities.size();
}
private <T> List<T> writeAndReturnSuccessEntities(
List<Update> updates, List<T> writeEntities,
WriteOperationType opType, String entryType) {
+ if (updates.isEmpty()) {
+ return Collections.emptyList();
+ }
+ if (updates.size() != writeEntities.size()) {
+ log.error("Cannot perform {} operation, provided {} " +
+ "update messages for {} {} - BUG?",
+ opType, updates.size(), writeEntities.size(), entryType);
+ return Collections.emptyList();
+ }
try {
//noinspection ResultOfMethodCallIgnored
blockingStub.write(writeRequest(updates));