Per off-list conversation with Roland, add some new enums for the
Cisco Ethernet Virtual NIC (it's not an RNIC/iWARP device, so it
doesn't fit in the same category as RDMA_NODE_RNIC / RDMA_TRANSPORT_IWARP).

"USNIC" = "Userspace NIC".

---
 examples/devinfo.c         | 1 +
 include/infiniband/verbs.h | 6 ++++--
 src/enum_strs.c            | 5 +++--
 src/init.c                 | 5 ++++-
 4 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/examples/devinfo.c b/examples/devinfo.c
index 7dc0463..98a6b4b 100644
--- a/examples/devinfo.c
+++ b/examples/devinfo.c
@@ -72,6 +72,7 @@ static const char *transport_str(enum ibv_transport_type 
transport)
        switch (transport) {
        case IBV_TRANSPORT_IB:    return "InfiniBand";
        case IBV_TRANSPORT_IWARP: return "iWARP";
+       case IBV_TRANSPORT_USNIC: return "USNIC";
        default:                  return "invalid transport";
        }
 }
diff --git a/include/infiniband/verbs.h b/include/infiniband/verbs.h
index 6acfc81..6a6944c 100644
--- a/include/infiniband/verbs.h
+++ b/include/infiniband/verbs.h
@@ -68,13 +68,15 @@ enum ibv_node_type {
        IBV_NODE_CA             = 1,
        IBV_NODE_SWITCH,
        IBV_NODE_ROUTER,
-       IBV_NODE_RNIC
+       IBV_NODE_RNIC,
+       IBV_NODE_USNIC
 };
 
 enum ibv_transport_type {
        IBV_TRANSPORT_UNKNOWN   = -1,
        IBV_TRANSPORT_IB        = 0,
-       IBV_TRANSPORT_IWARP
+       IBV_TRANSPORT_IWARP,
+       IBV_TRANSPORT_USNIC
 };
 
 enum ibv_device_cap_flags {
diff --git a/src/enum_strs.c b/src/enum_strs.c
index 54d71a6..0d68c75 100644
--- a/src/enum_strs.c
+++ b/src/enum_strs.c
@@ -38,10 +38,11 @@ const char *ibv_node_type_str(enum ibv_node_type node_type)
                [IBV_NODE_CA]           = "InfiniBand channel adapter",
                [IBV_NODE_SWITCH]       = "InfiniBand switch",
                [IBV_NODE_ROUTER]       = "InfiniBand router",
-               [IBV_NODE_RNIC]         = "iWARP NIC"
+               [IBV_NODE_RNIC]         = "iWARP NIC",
+               [IBV_NODE_USNIC]        = "Ethernet USNIC"
        };
 
-       if (node_type < IBV_NODE_CA || node_type > IBV_NODE_RNIC)
+       if (node_type < IBV_NODE_CA || node_type > IBV_NODE_USNIC)
                return "unknown";
 
        return node_type_str[node_type];
diff --git a/src/init.c b/src/init.c
index 8d6786e..e4ef001 100644
--- a/src/init.c
+++ b/src/init.c
@@ -346,7 +346,7 @@ static struct ibv_device *try_driver(struct ibv_driver 
*driver,
                        dev->node_type = IBV_NODE_UNKNOWN;
        } else {
                dev->node_type = strtol(value, NULL, 10);
-               if (dev->node_type < IBV_NODE_CA || dev->node_type > 
IBV_NODE_RNIC)
+               if (dev->node_type < IBV_NODE_CA || dev->node_type > 
IBV_NODE_USNIC)
                        dev->node_type = IBV_NODE_UNKNOWN;
        }
 
@@ -359,6 +359,9 @@ static struct ibv_device *try_driver(struct ibv_driver 
*driver,
        case IBV_NODE_RNIC:
                dev->transport_type = IBV_TRANSPORT_IWARP;
                break;
+       case IBV_NODE_USNIC:
+               dev->transport_type = IBV_TRANSPORT_USNIC;
+               break;
        default:
                dev->transport_type = IBV_TRANSPORT_UNKNOWN;
                break;
-- 
1.8.1.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to