Handling of table entry messages in P4Runtime
+ synchonized method execution in P4RuntimeClient
+ support for cancellable contexts (for client shutdown)
+ logging of sent/received messages in GrpcControllerImpl
+ minor refactorings
Change-Id: I43f0fcc263579e01957a02ef3392105aed476f33
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java
index 06376ca..ca78652 100644
--- a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java
@@ -44,7 +44,6 @@
import static com.google.common.base.Preconditions.checkNotNull;
import static java.lang.String.format;
-import static java.util.concurrent.Executors.newSingleThreadExecutor;
import static org.slf4j.LoggerFactory.getLogger;
/**
@@ -56,18 +55,16 @@
extends AbstractListenerManager<P4RuntimeEvent, P4RuntimeEventListener>
implements P4RuntimeController {
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected GrpcController grpcController;
-
private final Logger log = getLogger(getClass());
-
private final NameResolverProvider nameResolverProvider = new DnsNameResolverProvider();
private final Map<DeviceId, P4RuntimeClient> clients = Maps.newHashMap();
private final Map<DeviceId, GrpcChannelId> channelIds = Maps.newHashMap();
-
// TODO: should use a cache to delete unused locks.
private final Map<DeviceId, ReadWriteLock> deviceLocks = Maps.newConcurrentMap();
+ @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+ protected GrpcController grpcController;
+
@Activate
public void activate() {
log.info("Started");
@@ -117,8 +114,7 @@
return false;
}
- P4RuntimeClient client = new P4RuntimeClientImpl(deviceId, p4DeviceId, channel, this,
- newSingleThreadExecutor());
+ P4RuntimeClient client = new P4RuntimeClientImpl(deviceId, p4DeviceId, channel, this);
channelIds.put(deviceId, channelId);
clients.put(deviceId, client);