From 1dfa161834fdaa503f8caf38173ce5f29b664b02 Mon Sep 17 00:00:00 2001 From: Chris Lew Date: Tue, 11 Oct 2022 13:03:42 -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 Signed-off-by: Chris Lew --- net/qrtr/ns.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/net/qrtr/ns.c b/net/qrtr/ns.c index bd6b250617e2..ce1eca947cc9 100644 --- a/net/qrtr/ns.c +++ b/net/qrtr/ns.c @@ -8,6 +8,7 @@ #define pr_fmt(fmt) "qrtr: %s(): " fmt, __func__ +#include #include #include #include @@ -19,6 +20,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 DEFINE_XARRAY(nodes); static struct { @@ -117,6 +122,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); @@ -144,6 +151,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); @@ -260,6 +270,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: @@ -581,6 +594,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 node[0x%x]\n", cmd, sq->sq_node); + else if (cmd == QRTR_TYPE_DEL_CLIENT) + NS_INFO("cmd:0x%x addr[0x%x: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 kthread_work *work) { const struct qrtr_ctrl_pkt *pkt; @@ -622,6 +658,8 @@ static void qrtr_ns_worker(struct kthread_work *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: @@ -688,6 +726,8 @@ int qrtr_ns_init(void) kthread_init_worker(&qrtr_ns.kworker); kthread_init_work(&qrtr_ns.work, qrtr_ns_worker); + ns_ilc = ipc_log_context_create(NS_LOG_PAGE_CNT, "qrtr_ns", 0); + ret = sock_create_kern(&init_net, AF_QIPCRTR, SOCK_DGRAM, PF_QIPCRTR, &qrtr_ns.sock); if (ret < 0)