[PATCH 8/8] nodedev: add qeth layer2 and layer3 device types

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Boris Fiuczynski <fiuczy@xxxxxxxxxxxxx>
---
 src/conf/node_device_conf.c        | 8 ++++++++
 src/conf/node_device_conf.h        | 2 ++
 src/conf/schemas/nodedev.rng       | 6 +++++-
 src/node_device/node_device_udev.c | 6 +++++-
 4 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 3e88f5da87..30c2b4440e 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -78,6 +78,8 @@ VIR_ENUM_IMPL(virNodeDevCap,
 VIR_ENUM_IMPL(virNodeDevCCWGroupCap,
               VIR_NODE_DEV_CAP_CCWGROUP_LAST,
               "qeth_generic",
+              "qeth_layer2",
+              "qeth_layer3",
 );
 
 VIR_ENUM_IMPL(virNodeDevNetCap,
@@ -731,6 +733,8 @@ virNodeDeviceCapCCWGroupDefFormat(virBuffer *buf,
     virBufferAdjustIndent(buf, 2);
     switch (ccwgroup_dev.type) {
     case VIR_NODE_DEV_CAP_CCWGROUP_QETH_GENERIC:
+    case VIR_NODE_DEV_CAP_CCWGROUP_QETH_LAYER2:
+    case VIR_NODE_DEV_CAP_CCWGROUP_QETH_LAYER3:
         virNodeDeviceCapCCWGroupQethFormat(buf, &ccwgroup_dev.qeth);
         break;
     case VIR_NODE_DEV_CAP_CCWGROUP_LAST:
@@ -1509,6 +1513,8 @@ virNodeDevCapCCWGroupParseXML(xmlXPathContextPtr ctxt,
 
     switch (ccwgroup_dev->type) {
     case VIR_NODE_DEV_CAP_CCWGROUP_QETH_GENERIC:
+    case VIR_NODE_DEV_CAP_CCWGROUP_QETH_LAYER2:
+    case VIR_NODE_DEV_CAP_CCWGROUP_QETH_LAYER3:
         if (virNodeDevCapCCWGroupQethParseXML(ctxt, cap_node, &ccwgroup_dev->qeth) < 0)
             return -1;
         break;
@@ -2865,6 +2871,8 @@ virNodeDevCapsDefFree(virNodeDevCapsDef *caps)
         g_free(data->ccwgroup_dev.members);
         switch (data->ccwgroup_dev.type) {
         case VIR_NODE_DEV_CAP_CCWGROUP_QETH_GENERIC:
+        case VIR_NODE_DEV_CAP_CCWGROUP_QETH_LAYER2:
+        case VIR_NODE_DEV_CAP_CCWGROUP_QETH_LAYER3:
             virCCWGroupTypeQethFree(&data->ccwgroup_dev.qeth);
             break;
         case VIR_NODE_DEV_CAP_CCWGROUP_LAST:
diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h
index a6cef57b95..c66660342f 100644
--- a/src/conf/node_device_conf.h
+++ b/src/conf/node_device_conf.h
@@ -80,6 +80,8 @@ typedef enum {
 typedef enum {
     /* Keep in sync with VIR_ENUM_IMPL in node_device_conf.c */
     VIR_NODE_DEV_CAP_CCWGROUP_QETH_GENERIC,     /* s390 CCWGROUP QETH generic device */
+    VIR_NODE_DEV_CAP_CCWGROUP_QETH_LAYER2,      /* s390 CCWGROUP QETH layer 2 device */
+    VIR_NODE_DEV_CAP_CCWGROUP_QETH_LAYER3,      /* s390 CCWGROUP QETH layer 3 device */
     VIR_NODE_DEV_CAP_CCWGROUP_LAST
 } virNodeDevCCWGroupCapType;
 
diff --git a/src/conf/schemas/nodedev.rng b/src/conf/schemas/nodedev.rng
index f52c6ab752..31ce517e4d 100644
--- a/src/conf/schemas/nodedev.rng
+++ b/src/conf/schemas/nodedev.rng
@@ -672,7 +672,11 @@
 
   <define name="capccwgrouptypeqeth">
     <attribute name="type">
-      <value>qeth_generic</value>
+      <choice>
+        <value>qeth_generic</value>
+        <value>qeth_layer2</value>
+        <value>qeth_layer3</value>
+      </choice>
     </attribute>
     <interleave>
       <element name="card_type"><text/></element>
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index ba5727ed8f..082f9d5cf0 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -1410,6 +1410,8 @@ udevProcessCCWGroup(struct udev_device *device,
 
     switch (data->ccwgroup_dev.type) {
     case VIR_NODE_DEV_CAP_CCWGROUP_QETH_GENERIC:
+    case VIR_NODE_DEV_CAP_CCWGROUP_QETH_LAYER2:
+    case VIR_NODE_DEV_CAP_CCWGROUP_QETH_LAYER3:
         {
             virCCWGroupTypeQeth *qeth = &data->ccwgroup_dev.qeth;
             /* process qeth device information */
@@ -1487,7 +1489,9 @@ udevGetDeviceType(struct udev_device *device,
             *type = VIR_NODE_DEV_CAP_AP_CARD;
         else if (STREQ(devtype, "ap_queue"))
             *type = VIR_NODE_DEV_CAP_AP_QUEUE;
-        else if (STREQ(devtype, "qeth_generic"))
+        else if (STREQ(devtype, "qeth_generic") ||
+                 STREQ(devtype, "qeth_layer2") ||
+                 STREQ(devtype, "qeth_layer3"))
             *type = VIR_NODE_DEV_CAP_CCWGROUP_DEV;
     } else {
         /* PCI devices don't set the DEVTYPE property. */
-- 
2.47.0



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux