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>
This commit is contained in:
parent
4732d66e5f
commit
078f847da5
@ -7,6 +7,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>
|
||||
@ -17,6 +18,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 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)
|
||||
|
Loading…
Reference in New Issue
Block a user