From ebd289dac84abd135b4a7bbd58d26e39ad522cc4 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Thu, 29 Jun 2017 19:36:06 +0200 Subject: [PATCH] opal: fix incompatability of UDP message format --- .../models/send_receive/include/msg_format.h | 12 ++++++++++-- .../opal/villas_udp/models/send_receive/src/main.c | 4 ++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/clients/opal/villas_udp/models/send_receive/include/msg_format.h b/clients/opal/villas_udp/models/send_receive/include/msg_format.h index beeca4c1b..0a9ba3202 100644 --- a/clients/opal/villas_udp/models/send_receive/include/msg_format.h +++ b/clients/opal/villas_udp/models/send_receive/include/msg_format.h @@ -62,11 +62,19 @@ **/ struct msg { +#if BYTE_ORDER == BIG_ENDIAN unsigned version: 4; /**< Specifies the format of the remaining message (see MGS_VERSION) */ unsigned type : 2; /**< Data or control message (see MSG_TYPE_*) */ unsigned rsvd1 : 2; /**< Reserved bits */ - unsigned rsvd2 : 8; /**< Reserved bits */ - +#elif BYTE_ORDER == LITTLE_ENDIAN + unsigned rsvd1 : 2; /**< Reserved bits */ + unsigned type : 2; /**< Data or control message (see MSG_TYPE_*) */ + unsigned version: 4; /**< Specifies the format of the remaining message (see MGS_VERSION) */ +#else + #error Invalid byte-order +#endif + + uint8_t rsvd2; /**< Reserved bits */ uint16_t length; /**< The number of values in msg::data[]. */ uint32_t sequence; /**< The sequence number is incremented by one for consecutive messages. */ diff --git a/clients/opal/villas_udp/models/send_receive/src/main.c b/clients/opal/villas_udp/models/send_receive/src/main.c index be933f950..30f83006e 100644 --- a/clients/opal/villas_udp/models/send_receive/src/main.c +++ b/clients/opal/villas_udp/models/send_receive/src/main.c @@ -116,6 +116,10 @@ static void * SendToIPPort(void *arg) struct timespec now; clock_gettime(CLOCK_REALTIME, &now); + msg->version = MSG_VERSION; + msg->type = MSG_TYPE_DATA; + msg->rsvd1 = 0; + msg->rsvd2 = 0; msg->length = cnt; msg->sequence = Sequence++; msg->ts.sec = now.tv_sec;