ns: Move qrtr_ctrl_cmd struct to ns.h

Move the qrtr_ctrl_cmd struct to the shared header file, order to
facilitate sending control messages directly from the library.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
Bjorn Andersson
2017-06-06 12:39:43 -07:00
parent 533edf89f5
commit 35db849ec9
2 changed files with 41 additions and 41 deletions

View File

@@ -17,38 +17,6 @@
#include "util.h"
#include "ns.h"
enum ctrl_pkt_cmd {
QRTR_CMD_HELLO = 2,
QRTR_CMD_BYE = 3,
QRTR_CMD_NEW_SERVER = 4,
QRTR_CMD_DEL_SERVER = 5,
QRTR_CMD_DEL_CLIENT = 6,
QRTR_CMD_RESUME_TX = 7,
QRTR_CMD_EXIT = 8,
QRTR_CMD_PING = 9,
_QRTR_CMD_CNT,
_QRTR_CMD_MAX = _QRTR_CMD_CNT - 1
};
struct ctrl_pkt {
__le32 cmd;
union {
struct {
__le32 service;
__le32 instance;
__le32 node;
__le32 port;
} server;
struct {
__le32 node;
__le32 port;
} client;
};
} __attribute__((packed));
static const char *ctrl_pkt_strings[] = {
[QRTR_CMD_HELLO] = "hello",
[QRTR_CMD_BYE] = "bye",
@@ -60,8 +28,6 @@ static const char *ctrl_pkt_strings[] = {
[QRTR_CMD_PING] = "ping",
};
#define QRTR_CTRL_PORT ((unsigned int)-2)
#define dprintf(...)
struct context {
@@ -169,7 +135,7 @@ static int service_announce_new(struct context *ctx,
struct sockaddr_qrtr *dest,
struct server *srv)
{
struct ctrl_pkt cmsg;
struct qrtr_ctrl_pkt cmsg;
int rc;
dprintf("advertising new server [%d:%x]@[%d:%d]\n",
@@ -193,7 +159,7 @@ static int service_announce_del(struct context *ctx,
struct sockaddr_qrtr *dest,
struct server *srv)
{
struct ctrl_pkt cmsg;
struct qrtr_ctrl_pkt cmsg;
int rc;
dprintf("advertising removal of server [%d:%x]@[%d:%d]\n",
@@ -359,7 +325,7 @@ static void ctrl_port_fn(void *vcontext, struct waiter_ticket *tkt)
struct context *ctx = vcontext;
struct sockaddr_qrtr sq;
int sock = ctx->ctrl_sock;
struct ctrl_pkt *msg;
struct qrtr_ctrl_pkt *msg;
unsigned int cmd;
char buf[4096];
socklen_t sl;
@@ -420,14 +386,15 @@ static void ctrl_port_fn(void *vcontext, struct waiter_ticket *tkt)
}
if (rc < 0)
warn("failed while handling packet");
warnx("failed while handling packet from %d:%d",
sq.sq_node, sq.sq_port);
out:
waiter_ticket_clear(tkt);
}
static int say_hello(struct context *ctx)
{
struct ctrl_pkt pkt;
struct qrtr_ctrl_pkt pkt;
int rc;
memset(&pkt, 0, sizeof(pkt));
@@ -444,8 +411,8 @@ static int say_hello(struct context *ctx)
static void ns_pkt_publish(int sock, struct sockaddr_qrtr *sq_src,
unsigned int service, unsigned int instance)
{
struct qrtr_ctrl_pkt cmsg;
struct sockaddr_qrtr sq;
struct ctrl_pkt cmsg;
struct server *srv;
int rc;
@@ -472,8 +439,8 @@ static void ns_pkt_publish(int sock, struct sockaddr_qrtr *sq_src,
static void ns_pkt_bye(int sock, struct sockaddr_qrtr *sq_src)
{
struct qrtr_ctrl_pkt cmsg;
struct sockaddr_qrtr sq;
struct ctrl_pkt cmsg;
struct server *srv;
int rc;

View File

@@ -15,6 +15,7 @@ static inline __le32 cpu_to_le32(uint32_t x) { return htole32(x); }
static inline uint32_t le32_to_cpu(__le32 x) { return le32toh(x); }
#define NS_PORT 53
#define QRTR_CTRL_PORT ((unsigned int)-2)
enum ns_pkt_type {
NS_PKT_RESET = 0,
@@ -48,4 +49,36 @@ struct ns_pkt {
};
} __attribute__((packed));
enum ctrl_pkt_cmd {
QRTR_CMD_HELLO = 2,
QRTR_CMD_BYE = 3,
QRTR_CMD_NEW_SERVER = 4,
QRTR_CMD_DEL_SERVER = 5,
QRTR_CMD_DEL_CLIENT = 6,
QRTR_CMD_RESUME_TX = 7,
QRTR_CMD_EXIT = 8,
QRTR_CMD_PING = 9,
_QRTR_CMD_CNT,
_QRTR_CMD_MAX = _QRTR_CMD_CNT - 1
};
struct qrtr_ctrl_pkt {
__le32 cmd;
union {
struct {
__le32 service;
__le32 instance;
__le32 node;
__le32 port;
} server;
struct {
__le32 node;
__le32 port;
} client;
};
} __attribute__((packed));
#endif