From 078f847da5cc33bb4d2f0da137d174a45dacd649 Mon Sep 17 00:00:00 2001 From: Jay Jayanna Date: Fri, 19 Jun 2020 17:27:14 -0700 Subject: [PATCH] net: qrtr: ns: Add ipc logging to ns Log packets processed by ns using ipc logging framework. Change-Id: I08e9b8551efb4a58cf899835cfac25c1952bd4b8 Signed-off-by: Jay Jayanna --- net/qrtr/ns.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/net/qrtr/ns.c b/net/qrtr/ns.c index 45672ee24e46..dd90dab6c09f 100644 --- a/net/qrtr/ns.c +++ b/net/qrtr/ns.c @@ -7,6 +7,7 @@ #define pr_fmt(fmt) "qrtr: %s(): " fmt, __func__ +#include #include #include #include @@ -17,6 +18,10 @@ #define CREATE_TRACE_POINTS #include +#define NS_LOG_PAGE_CNT 4 +static void *ns_ilc; +#define NS_INFO(x, ...) ipc_log_string(ns_ilc, x, ##__VA_ARGS__) + static RADIX_TREE(nodes, GFP_KERNEL); static struct { @@ -113,6 +118,8 @@ static int service_announce_new(struct sockaddr_qrtr *dest, trace_qrtr_ns_service_announce_new(srv->service, srv->instance, srv->node, srv->port); + NS_INFO("%s: [0x%x:0x%x]@[0x%x:0x%x]\n", __func__, srv->service, + srv->instance, srv->node, srv->port); iv.iov_base = &pkt; iv.iov_len = sizeof(pkt); @@ -140,6 +147,9 @@ static int service_announce_del(struct sockaddr_qrtr *dest, trace_qrtr_ns_service_announce_del(srv->service, srv->instance, srv->node, srv->port); + NS_INFO("%s: [0x%x:0x%x]@[0x%x:0x%x]\n", __func__, srv->service, + srv->instance, srv->node, srv->port); + iv.iov_base = &pkt; iv.iov_len = sizeof(pkt); @@ -268,6 +278,9 @@ static struct qrtr_server *server_add(unsigned int service, trace_qrtr_ns_server_add(srv->service, srv->instance, srv->node, srv->port); + NS_INFO("%s: [0x%x:0x%x]@[0x%x:0x%x]\n", __func__, srv->service, + srv->instance, srv->node, srv->port); + return srv; err: @@ -671,6 +684,29 @@ static void ctrl_cmd_del_lookup(struct sockaddr_qrtr *from, } } +static void ns_log_msg(const struct qrtr_ctrl_pkt *pkt, + struct sockaddr_qrtr *sq) +{ + unsigned int cmd = le32_to_cpu(pkt->cmd); + + if (cmd == QRTR_TYPE_HELLO || cmd == QRTR_TYPE_BYE) + NS_INFO("cmd:0x%x addr[0x%x]\n", cmd, sq->sq_node, sq->sq_port); + else if (cmd == QRTR_TYPE_DEL_CLIENT) + NS_INFO("cmd:0x%x addr[0x%x]\n", cmd, + le32_to_cpu(pkt->client.node), + le32_to_cpu(pkt->client.port)); + else if (cmd == QRTR_TYPE_NEW_SERVER || cmd == QRTR_TYPE_DEL_SERVER) + NS_INFO("cmd:0x%x SVC[0x%x:0x%x] addr[0x%x:0x%x]\n", cmd, + le32_to_cpu(pkt->server.service), + le32_to_cpu(pkt->server.instance), + le32_to_cpu(pkt->server.node), + le32_to_cpu(pkt->server.port)); + else if (cmd == QRTR_TYPE_NEW_LOOKUP || cmd == QRTR_TYPE_DEL_LOOKUP) + NS_INFO("cmd:0x%x SVC[0x%x:0x%x]\n", cmd, + le32_to_cpu(pkt->server.service), + le32_to_cpu(pkt->server.instance)); +} + static void qrtr_ns_worker(struct work_struct *work) { const struct qrtr_ctrl_pkt *pkt; @@ -712,6 +748,8 @@ static void qrtr_ns_worker(struct work_struct *work) trace_qrtr_ns_message(qrtr_ctrl_pkt_strings[cmd], sq.sq_node, sq.sq_port); + ns_log_msg(pkt, &sq); + ret = 0; switch (cmd) { case QRTR_TYPE_HELLO: @@ -776,6 +814,8 @@ void qrtr_ns_init(void) INIT_LIST_HEAD(&qrtr_ns.lookups); INIT_WORK(&qrtr_ns.work, qrtr_ns_worker); + ns_ilc = ipc_log_context_create(NS_LOG_PAGE_CNT, "ns", 0); + ret = sock_create_kern(&init_net, AF_QIPCRTR, SOCK_DGRAM, PF_QIPCRTR, &qrtr_ns.sock); if (ret < 0)