HONEYCOMB-177: expose device instance attribute 66/4266/2
authorMarek Gradzki <[email protected]>
Tue, 13 Dec 2016 13:01:31 +0000 (14:01 +0100)
committerMarek Gradzki <[email protected]>
Wed, 14 Dec 2016 11:29:58 +0000 (12:29 +0100)
Change-Id: I7a1a5a2d338c39bb7a5f869660fcce06ef59515d
Signed-off-by: Marek Gradzki <[email protected]>
v3po/api/src/main/yang/v3po.yang
v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/VhostUserCustomizer.java

index 7f093c9..d1af611 100644 (file)
@@ -338,6 +338,15 @@ module v3po {
     description "vhost-user settings";
   }
 
+  grouping vhost-user-interface-config-attributes {
+    leaf device-instance {
+      type uint32;
+      mandatory false;
+      description "Custom device instance. Autogenerated will be used if not configured";
+    }
+    description "vhost-user settings";
+  }
+
   grouping vhost-user-interface-state-attributes {
     leaf features {
       type uint64;
@@ -552,6 +561,7 @@ module v3po {
     container vhost-user {
       when "../if:type = 'v3po:vhost-user'";
       uses vhost-user-interface-base-attributes;
+      uses vhost-user-interface-config-attributes;
     }
 
     container vxlan {
index dc8fade..152e6d1 100644 (file)
@@ -85,9 +85,13 @@ public class VhostUserCustomizer extends AbstractInterfaceTypeCustomizer<VhostUs
         CreateVhostUserIf request = new CreateVhostUserIf();
         request.isServer = booleanToByte(VhostUserRole.Server.equals(vhostUser.getRole()));
         request.sockFilename = vhostUser.getSocket().getBytes();
-        // TODO HONEYCOMB-177 expose device instance attribute just like for TAP
-        request.renumber = 0;
-        request.customDevInstance = 0;
+        final Long deviceInstance = vhostUser.getDeviceInstance();
+        if (deviceInstance == null) {
+            request.renumber = 0;
+        } else {
+            request.renumber = 1;
+            request.customDevInstance = Math.toIntExact(deviceInstance);
+        }
         request.useCustomMac = 0;
         request.macAddress = new byte[]{};
         return request;
@@ -120,9 +124,13 @@ public class VhostUserCustomizer extends AbstractInterfaceTypeCustomizer<VhostUs
         ModifyVhostUserIf request = new ModifyVhostUserIf();
         request.isServer = booleanToByte(VhostUserRole.Server.equals(vhostUser.getRole()));
         request.sockFilename = vhostUser.getSocket().getBytes();
-        // TODO HONEYCOMB-177
-        request.renumber = 0;
-        request.customDevInstance = 0;
+        final Long deviceInstance = vhostUser.getDeviceInstance();
+        if (deviceInstance == null) {
+            request.renumber = 0;
+        } else {
+            request.renumber = 1;
+            request.customDevInstance = Math.toIntExact(deviceInstance);
+        }
         request.swIfIndex = swIfIndex;
         return request;
     }