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 <jayanna@codeaurora.org>
Signed-off-by: Chris Lew <quic_clew@quicinc.com>
This commit is contained in:
Chris Lew 2022-10-11 13:03:42 -07:00
parent 718816b952
commit 1dfa161834

View File

@ -8,6 +8,7 @@
#define pr_fmt(fmt) "qrtr: %s(): " fmt, __func__
#include <linux/ipc_logging.h>
#include <linux/module.h>
#include <linux/qrtr.h>
#include <linux/workqueue.h>
@ -19,6 +20,10 @@
#define CREATE_TRACE_POINTS
#include <trace/events/qrtr.h>
#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)