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 <[email protected]>
---
 net/ncsi/ncsi-pkt.h |  5 +++++
 net/ncsi/ncsi-rsp.c | 11 +++++++++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/net/ncsi/ncsi-pkt.h b/net/ncsi/ncsi-pkt.h index 
a8e9def593f2..80938b338fee 100644
--- a/net/ncsi/ncsi-pkt.h
+++ b/net/ncsi/ncsi-pkt.h
@@ -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        */
diff --git a/net/ncsi/ncsi-rsp.c b/net/ncsi/ncsi-rsp.c index 
5254004f2b42..524974af0db6 100644
--- a/net/ncsi/ncsi-rsp.c
+++ b/net/ncsi/ncsi-rsp.c
@@ -1035,6 +1035,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;
@@ -1088,8 +1093,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,
--
2.17.1

Reply via email to