Carmelo Cascone
Committed by Gerrit Code Review

BMv2 device friendly name set during device discovery

Change-Id: Iddc7a45a86364103bdc6e4a51b5aca2a483aecc1
...@@ -40,6 +40,8 @@ import org.onosproject.net.config.ConfigFactory; ...@@ -40,6 +40,8 @@ import org.onosproject.net.config.ConfigFactory;
40 import org.onosproject.net.config.NetworkConfigEvent; 40 import org.onosproject.net.config.NetworkConfigEvent;
41 import org.onosproject.net.config.NetworkConfigListener; 41 import org.onosproject.net.config.NetworkConfigListener;
42 import org.onosproject.net.config.NetworkConfigRegistry; 42 import org.onosproject.net.config.NetworkConfigRegistry;
43 +import org.onosproject.net.config.NetworkConfigService;
44 +import org.onosproject.net.config.basics.BasicDeviceConfig;
43 import org.onosproject.net.device.DeviceDescription; 45 import org.onosproject.net.device.DeviceDescription;
44 import org.onosproject.net.device.DeviceDescriptionDiscovery; 46 import org.onosproject.net.device.DeviceDescriptionDiscovery;
45 import org.onosproject.net.device.DeviceService; 47 import org.onosproject.net.device.DeviceService;
...@@ -120,6 +122,9 @@ public class Bmv2DeviceProvider extends AbstractDeviceProvider { ...@@ -120,6 +122,9 @@ public class Bmv2DeviceProvider extends AbstractDeviceProvider {
120 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) 122 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
121 protected Bmv2TableEntryService tableEntryService; 123 protected Bmv2TableEntryService tableEntryService;
122 124
125 + @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
126 + protected NetworkConfigService configService;
127 +
123 private ApplicationId appId; 128 private ApplicationId appId;
124 private ScheduledFuture<?> poller; 129 private ScheduledFuture<?> poller;
125 130
...@@ -224,6 +229,7 @@ public class Bmv2DeviceProvider extends AbstractDeviceProvider { ...@@ -224,6 +229,7 @@ public class Bmv2DeviceProvider extends AbstractDeviceProvider {
224 initPortCounters(did); 229 initPortCounters(did);
225 providerService.deviceConnected(did, thisDescription); 230 providerService.deviceConnected(did, thisDescription);
226 updatePortsAndStats(did); 231 updatePortsAndStats(did);
232 + setNameIfNone(did);
227 } 233 }
228 lastDescriptions.put(did, thisDescription); 234 lastDescriptions.put(did, thisDescription);
229 } else { 235 } else {
...@@ -294,6 +300,16 @@ public class Bmv2DeviceProvider extends AbstractDeviceProvider { ...@@ -294,6 +300,16 @@ public class Bmv2DeviceProvider extends AbstractDeviceProvider {
294 } 300 }
295 } 301 }
296 302
303 + private void setNameIfNone(DeviceId did) {
304 + BasicDeviceConfig cfg = configService.addConfig(did, BasicDeviceConfig.class);
305 + if (cfg.name().equals(did.toString())) {
306 + // Use only internal device ID, e.g. bmv2:10
307 + String name = did.uri().getScheme() + ":" + did.uri().getFragment();
308 + cfg.name(name);
309 + cfg.apply();
310 + }
311 + }
312 +
297 private void disconnectDevice(DeviceId did) { 313 private void disconnectDevice(DeviceId did) {
298 log.debug("Disconnecting device from core... deviceId={}", did); 314 log.debug("Disconnecting device from core... deviceId={}", did);
299 providerService.deviceDisconnected(did); 315 providerService.deviceDisconnected(did);
......