OSDN Git Service

net/ncsi: add response handlers for PLDM over NC-SI
authorBen Wei <benwei@fb.com>
Fri, 30 Aug 2019 20:50:51 +0000 (20:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 1 Sep 2019 06:54:03 +0000 (23:54 -0700)
This patch adds handlers for PLDM over NC-SI command response.

This enables NC-SI driver recognizes the packet type so the responses
don't get dropped as unknown packet type.

PLDM over NC-SI are not handled in kernel driver for now, but can be
passed back to user space via Netlink for further handling.

Signed-off-by: Ben Wei <benwei@fb.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ncsi/ncsi-pkt.h
net/ncsi/ncsi-rsp.c

index a8e9def..80938b3 100644 (file)
@@ -387,6 +387,9 @@ struct ncsi_aen_hncdsc_pkt {
 #define NCSI_PKT_CMD_OEM       0x50 /* OEM                              */
 #define NCSI_PKT_CMD_PLDM      0x51 /* PLDM request over NCSI over RBT  */
 #define NCSI_PKT_CMD_GPUUID    0x52 /* Get package UUID                 */
+#define NCSI_PKT_CMD_QPNPR     0x56 /* Query Pending NC PLDM request */
+#define NCSI_PKT_CMD_SNPR      0x57 /* Send NC PLDM Reply  */
+
 
 /* NCSI packet responses */
 #define NCSI_PKT_RSP_CIS       (NCSI_PKT_CMD_CIS    + 0x80)
@@ -419,6 +422,8 @@ struct ncsi_aen_hncdsc_pkt {
 #define NCSI_PKT_RSP_OEM       (NCSI_PKT_CMD_OEM    + 0x80)
 #define NCSI_PKT_RSP_PLDM      (NCSI_PKT_CMD_PLDM   + 0x80)
 #define NCSI_PKT_RSP_GPUUID    (NCSI_PKT_CMD_GPUUID + 0x80)
+#define NCSI_PKT_RSP_QPNPR     (NCSI_PKT_CMD_QPNPR   + 0x80)
+#define NCSI_PKT_RSP_SNPR      (NCSI_PKT_CMD_SNPR   + 0x80)
 
 /* NCSI response code/reason */
 #define NCSI_PKT_RSP_C_COMPLETED       0x0000 /* Command Completed        */
index dacabff..d5611f0 100644 (file)
@@ -1038,6 +1038,11 @@ static int ncsi_rsp_handler_gpuuid(struct ncsi_request *nr)
        return 0;
 }
 
+static int ncsi_rsp_handler_pldm(struct ncsi_request *nr)
+{
+       return 0;
+}
+
 static int ncsi_rsp_handler_netlink(struct ncsi_request *nr)
 {
        struct ncsi_dev_priv *ndp = nr->ndp;
@@ -1091,8 +1096,10 @@ static struct ncsi_rsp_handler {
        { NCSI_PKT_RSP_GNPTS,  48, ncsi_rsp_handler_gnpts   },
        { NCSI_PKT_RSP_GPS,     8, ncsi_rsp_handler_gps     },
        { NCSI_PKT_RSP_OEM,    -1, ncsi_rsp_handler_oem     },
-       { NCSI_PKT_RSP_PLDM,    0, NULL                     },
-       { NCSI_PKT_RSP_GPUUID, 20, ncsi_rsp_handler_gpuuid  }
+       { NCSI_PKT_RSP_PLDM,   -1, ncsi_rsp_handler_pldm    },
+       { NCSI_PKT_RSP_GPUUID, 20, ncsi_rsp_handler_gpuuid  },
+       { NCSI_PKT_RSP_QPNPR,  -1, ncsi_rsp_handler_pldm    },
+       { NCSI_PKT_RSP_SNPR,   -1, ncsi_rsp_handler_pldm    }
 };
 
 int ncsi_rcv_rsp(struct sk_buff *skb, struct net_device *dev,