pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-pcu/+/27623 )

Change subject: llc: Convert to C
......................................................................

llc: Convert to C

There's no real reason (other than historical) why code in llc should be
kept as c++ code. Let's rewrite it as C so that it can be included by
existing C code without having to add C->C++ shim, ifdefs all around,
etc.
This simplifies code and easies modification/improvement of the related
objects.

Change-Id: I250680ba581167d7398b2f734769c756cbb61c48
---
M debian/copyright
M src/Makefile.am
R src/llc.c
M src/llc.h
M src/tbf.cpp
M src/tbf_dl.cpp
M src/tbf_ul.cpp
M tests/edge/EdgeTest.cpp
M tests/llc/LlcTest.cpp
M tests/types/TypesTest.cpp
10 files changed, 131 insertions(+), 143 deletions(-)

Approvals:
  Jenkins Builder: Verified
  fixeria: Looks good to me, but someone else must approve
  osmith: Looks good to me, but someone else must approve
  lynxis lazus: Looks good to me, approved



diff --git a/debian/copyright b/debian/copyright
index 4e9347e..4a2b5dd 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -42,7 +42,7 @@
            src/tbf_dl.cpp
            src/sba.cpp
            src/sba.h
-           src/llc.cpp
+           src/llc.c
            src/encoding.cpp
            src/encoding.h
            src/gprs_rlcmac.cpp
@@ -50,6 +50,7 @@
 Copyright: 2012 Ivan Klyuchnikov
            2012 Andreas Eversberg <jo...@eversberg.eu>
            2013 by Holger Hans Peter Freyther
+           2022 by by Sysmocom s.f.m.c. GmbH
 License:   GPL-2.0+

 Files:     src/gprs_rlcmac.h
diff --git a/src/Makefile.am b/src/Makefile.am
index 25fdab2..fedc96f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -73,7 +73,7 @@
        encoding.cpp \
        sba.c \
        decoding.cpp \
-       llc.cpp \
+       llc.c \
        rlc.cpp \
        osmobts_sock.c \
        gprs_codel.c \
diff --git a/src/llc.cpp b/src/llc.c
similarity index 69%
rename from src/llc.cpp
rename to src/llc.c
index 5cf2213..700585a 100644
--- a/src/llc.cpp
+++ b/src/llc.c
@@ -15,32 +15,36 @@
  * GNU General Public License for more details.
  */

-#include <bts.h>

 #include <stdio.h>

-extern "C" {
 #include <osmocom/core/msgb.h>
-}

+#include "bts.h"
 #include "pcu_utils.h"
+#include "llc.h"
+
+void llc_init(struct gprs_llc *llc)
+{
+       llc_reset(llc);
+}

 /* reset LLC frame */
-void gprs_llc::reset()
+void llc_reset(struct gprs_llc *llc)
 {
-       index = 0;
-       length = 0;
+       llc->index = 0;
+       llc->length = 0;

-       memset(frame, 0x42, sizeof(frame));
+       memset(llc->frame, 0x42, sizeof(llc->frame));
 }

-void gprs_llc::reset_frame_space()
+void llc_reset_frame_space(struct gprs_llc *llc)
 {
-       index = 0;
+       llc->index = 0;
 }

 /* Put an Unconfirmed Information (UI) Dummy command, see GSM 44.064, 6.4.2.2 
*/
-void gprs_llc::put_dummy_frame(size_t req_len)
+void llc_put_dummy_frame(struct gprs_llc *llc, size_t req_len)
 {
        /* The shortest dummy command (the spec requests at least 6 octets) */
        static const uint8_t llc_dummy_command[] = {
@@ -48,39 +52,34 @@
        };
        static const size_t max_dummy_command_len = 79;

-       put_frame(llc_dummy_command, sizeof(llc_dummy_command));
+       llc_put_frame(llc, llc_dummy_command, sizeof(llc_dummy_command));

        if (req_len > max_dummy_command_len)
                req_len = max_dummy_command_len;

        /* Add further stuffing, if the requested length exceeds the minimum
         * dummy command length */
-       if (length < req_len) {
-               memset(&frame[length], 0x2b, req_len - length);
-               length = req_len;
+       if (llc->length < req_len) {
+               memset(&llc->frame[llc->length], 0x2b, req_len - llc->length);
+               llc->length = req_len;
        }
 }

-void gprs_llc::put_frame(const uint8_t *data, size_t len)
+void llc_put_frame(struct gprs_llc *llc, const uint8_t *data, size_t len)
 {
        /* only put frames when we are empty */
-       OSMO_ASSERT(index == 0 && length == 0);
-       append_frame(data, len);
+       OSMO_ASSERT(llc->index == 0 && llc->length == 0);
+       llc_append_frame(llc, data, len);
 }

-void gprs_llc::append_frame(const uint8_t *data, size_t len)
+void llc_append_frame(struct gprs_llc *llc, const uint8_t *data, size_t len)
 {
        /* TODO: bounds check */
-       memcpy(frame + length, data, len);
-       length += len;
+       memcpy(llc->frame + llc->length, data, len);
+       llc->length += len;
 }

-void gprs_llc::init()
-{
-       reset();
-}
-
-bool gprs_llc::is_user_data_frame(uint8_t *data, size_t len)
+bool llc_is_user_data_frame(const uint8_t *data, size_t len)
 {
        if (len < 2)
                return false;
@@ -104,20 +103,20 @@
 }


-void gprs_llc_queue::enqueue(struct msgb *llc_msg, const struct timespec 
*expire_time)
+void llc_queue_enqueue(struct gprs_llc_queue *q, struct msgb *llc_msg, const 
struct timespec *expire_time)
 {
-       MetaInfo *meta_storage;
+       struct MetaInfo *meta_storage;

        osmo_static_assert(sizeof(*meta_storage) <= sizeof(llc_msg->cb), 
info_does_not_fit);

-       queue_size += 1;
-       queue_octets += msgb_length(llc_msg);
+       q->queue_size += 1;
+       q->queue_octets += msgb_length(llc_msg);

-       meta_storage = (MetaInfo *)&llc_msg->cb[0];
+       meta_storage = (struct MetaInfo *)&llc_msg->cb[0];
        osmo_clock_gettime(CLOCK_MONOTONIC, &meta_storage->recv_time);
        meta_storage->expire_time = *expire_time;

-       msgb_enqueue(&queue, llc_msg);
+       msgb_enqueue(&q->queue, llc_msg);
 }

 void llc_queue_clear(struct gprs_llc_queue *q, struct gprs_rlcmac_bts *bts)
@@ -159,8 +158,8 @@
                        msg = msg1;
                        msg1 = NULL;
                } else {
-                       const MetaInfo *mi1 = (MetaInfo *)&msg1->cb[0];
-                       const MetaInfo *mi2 = (MetaInfo *)&msg2->cb[0];
+                       const struct MetaInfo *mi1 = (struct MetaInfo 
*)&msg1->cb[0];
+                       const struct MetaInfo *mi2 = (struct MetaInfo 
*)&msg2->cb[0];

                        if (timespeccmp(&mi2->recv_time, &mi1->recv_time, >)) {
                                msg = msg1;
@@ -189,24 +188,24 @@

 #define ALPHA 0.5f

-struct msgb *gprs_llc_queue::dequeue(const MetaInfo **info)
+struct msgb *llc_queue_dequeue(struct gprs_llc_queue *q, const struct MetaInfo 
**info)
 {
        struct msgb *msg;
        struct timespec *tv, tv_now, tv_result;
        uint32_t lifetime;
-       const MetaInfo *meta_storage;
+       const struct MetaInfo *meta_storage;

-       msg = msgb_dequeue(&queue);
+       msg = msgb_dequeue(&q->queue);
        if (!msg)
                return NULL;

-       meta_storage = (MetaInfo *)&msg->cb[0];
+       meta_storage = (struct MetaInfo *)&msg->cb[0];

        if (info)
                *info = meta_storage;

-       queue_size -= 1;
-       queue_octets -= msgb_length(msg);
+       q->queue_size -= 1;
+       q->queue_octets -= msgb_length(msg);

        /* take the second time */
        osmo_clock_gettime(CLOCK_MONOTONIC, &tv_now);
@@ -214,12 +213,12 @@
        timespecsub(&tv_now, &meta_storage->recv_time, &tv_result);

        lifetime = tv_result.tv_sec*1000 + tv_result.tv_nsec/1000000;
-       avg_queue_delay = avg_queue_delay * ALPHA + lifetime * (1-ALPHA);
+       q->avg_queue_delay = q->avg_queue_delay * ALPHA + lifetime * (1-ALPHA);

        return msg;
 }

-void gprs_llc_queue::calc_pdu_lifetime(struct gprs_rlcmac_bts *bts, const 
uint16_t pdu_delay_csec, struct timespec *tv)
+void llc_queue_calc_pdu_lifetime(struct gprs_rlcmac_bts *bts, const uint16_t 
pdu_delay_csec, struct timespec *tv)
 {
        uint16_t delay_csec;
        if (bts->pcu->vty.force_llc_lifetime)
@@ -241,8 +240,7 @@
        timespecadd(&now, &csec, tv);
 }

-bool gprs_llc_queue::is_frame_expired(const struct timespec *tv_now,
-       const struct timespec *tv)
+bool llc_queue_is_frame_expired(const struct timespec *tv_now, const struct 
timespec *tv)
 {
        /* Timeout is infinite */
        if (tv->tv_sec == 0 && tv->tv_nsec == 0)
diff --git a/src/llc.h b/src/llc.h
index e7548d4..a371b68 100644
--- a/src/llc.h
+++ b/src/llc.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2013 by Holger Hans Peter Freyther
+ * Copyright (C) 2022 by by Sysmocom s.f.m.c. GmbH
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -17,15 +18,14 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-       #include <osmocom/core/linuxlist.h>
-#ifdef __cplusplus
-}
-#endif

 #include <stdint.h>
 #include <string.h>
 #include <time.h>

+#include <osmocom/core/linuxlist.h>
+#include <osmocom/core/msgb.h>
+
 #define LLC_MAX_LEN 1543

 struct gprs_rlcmac_bts;
@@ -34,23 +34,19 @@
  * I represent the LLC data to a MS
  */
 struct gprs_llc {
-
-#ifdef __cplusplus
-       static bool is_user_data_frame(uint8_t *data, size_t len);
-
-       void init();
-       void reset();
-       void reset_frame_space();
-
-       void put_frame(const uint8_t *data, size_t len);
-       void put_dummy_frame(size_t req_len);
-       void append_frame(const uint8_t *data, size_t len);
-#endif
-
        uint8_t frame[LLC_MAX_LEN]; /* current DL or UL frame */
        uint16_t index; /* current write/read position of frame */
        uint16_t length; /* len of current DL LLC_frame, 0 == no frame */
 };
+bool llc_is_user_data_frame(const uint8_t *data, size_t len);
+
+void llc_init(struct gprs_llc *llc);
+void llc_reset(struct gprs_llc *llc);
+void llc_reset_frame_space(struct gprs_llc *llc);
+
+void llc_put_frame(struct gprs_llc *llc, const uint8_t *data, size_t len);
+void llc_put_dummy_frame(struct gprs_llc *llc, size_t req_len);
+void llc_append_frame(struct gprs_llc *llc, const uint8_t *data, size_t len);

 struct MetaInfo {
        struct timespec recv_time;
@@ -60,28 +56,21 @@
  * I store the LLC frames that come from the SGSN.
  */
 struct gprs_llc_queue {
-#ifdef __cplusplus
-       static void calc_pdu_lifetime(struct gprs_rlcmac_bts *bts, const 
uint16_t pdu_delay_csec,
-               struct timespec *tv);
-       static bool is_frame_expired(const struct timespec *now,
-               const struct timespec *tv);
-       static bool is_user_data_frame(uint8_t *data, size_t len);
-
-       void enqueue(struct msgb *llc_msg, const struct timespec *expire_time);
-       struct msgb *dequeue(const MetaInfo **info = 0);
-#endif
        uint32_t avg_queue_delay; /* Average delay of data going through the 
queue */
        size_t queue_size;
        size_t queue_octets;
        struct llist_head queue; /* queued LLC DL data */
 };

-#ifdef __cplusplus
-extern "C" {
-#endif
+void llc_queue_calc_pdu_lifetime(struct gprs_rlcmac_bts *bts, const uint16_t 
pdu_delay_csec,
+               struct timespec *tv);
+bool llc_queue_is_frame_expired(const struct timespec *tv_now, const struct 
timespec *tv);
+
 void llc_queue_init(struct gprs_llc_queue *q);
 void llc_queue_clear(struct gprs_llc_queue *q, struct gprs_rlcmac_bts *bts);
 void llc_queue_move_and_merge(struct gprs_llc_queue *q, struct gprs_llc_queue 
*o);
+void llc_queue_enqueue(struct gprs_llc_queue *q, struct msgb *llc_msg, const 
struct timespec *expire_time);
+struct msgb *llc_queue_dequeue(struct gprs_llc_queue *q, const struct MetaInfo 
**info);

 static inline uint16_t llc_chunk_size(const struct gprs_llc *llc)
 {
diff --git a/src/tbf.cpp b/src/tbf.cpp
index c2eeb89..2c68ede 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -130,7 +130,7 @@
        OSMO_ASSERT(dl_ass_fsm.fi);

        m_rlc.init();
-       m_llc.init();
+       llc_init(&m_llc);

        m_name_buf[0] = '\0';

diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index ec455c1..01b8f68 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -217,9 +217,9 @@
        if (!llc_msg)
                return -ENOMEM;

-       gprs_llc_queue::calc_pdu_lifetime(bts, pdu_delay_csec, &expire_time);
+       llc_queue_calc_pdu_lifetime(bts, pdu_delay_csec, &expire_time);
        memcpy(msgb_put(llc_msg, len), data, len);
-       llc_queue()->enqueue(llc_msg, &expire_time);
+       llc_queue_enqueue(llc_queue(), llc_msg, &expire_time);
        start_llc_timer();

        if (state_is(TBF_ST_WAIT_RELEASE)) {
@@ -358,7 +358,7 @@
        osmo_clock_gettime(CLOCK_MONOTONIC, &tv_now);
        timespecadd(&tv_now, &hyst_delta, &tv_now2);

-       while ((msg = llc_queue()->dequeue(&info))) {
+       while ((msg = llc_queue_dequeue(llc_queue(), &info))) {
                const struct timespec *tv_disc = &info->expire_time;
                const struct timespec *tv_recv = &info->recv_time;

@@ -372,11 +372,11 @@
                }

                /* Is the age below the low water mark? */
-               if (!gprs_llc_queue::is_frame_expired(&tv_now2, tv_disc))
+               if (!llc_queue_is_frame_expired(&tv_now2, tv_disc))
                        break;

                /* Is the age below the high water mark */
-               if (!gprs_llc_queue::is_frame_expired(&tv_now, tv_disc)) {
+               if (!llc_queue_is_frame_expired(&tv_now, tv_disc)) {
                        /* Has the previous message not been dropped? */
                        if (frames == 0)
                                break;
@@ -391,7 +391,7 @@
                                break;

                        /* Is it a GMM message? */
-                       if (!gprs_llc::is_user_data_frame(msg->data, msg->len))
+                       if (!llc_is_user_data_frame(msg->data, msg->len))
                                break;
                }

@@ -634,7 +634,7 @@

        LOGPTBFDL(this, LOGL_DEBUG, "Dequeue next LLC (len=%d)\n", msg->len);

-       m_llc.put_frame(msg->data, msg->len);
+       llc_put_frame(&m_llc, msg->data, msg->len);
        bts_do_rate_ctr_inc(bts, CTR_LLC_FRAME_SCHED);
        msgb_free(msg);
        m_last_dl_drained_fn = -1;
@@ -726,7 +726,7 @@
                         * "Delayed release of downlink Temporary Block Flow" */
                        /* A header will need to by added, so we just need
                         * space-1 octets */
-                       m_llc.put_dummy_frame(space - 1);
+                       llc_put_dummy_frame(&m_llc, space - 1);

                        LOGPTBFDL(this, LOGL_DEBUG,
                                  "Empty chunk, added LLC dummy command of size 
%d, drained_since=%d\n",
@@ -747,7 +747,7 @@
                LOGPTBFDL(this, LOGL_DEBUG, "Complete DL frame, len=%d\n", 
llc_frame_length(&m_llc));
                gprs_rlcmac_dl_bw(this, llc_frame_length(&m_llc));
                bts_do_rate_ctr_add(bts, CTR_LLC_DL_BYTES, 
llc_frame_length(&m_llc));
-               m_llc.reset();
+               llc_reset(&m_llc);
 
                if (is_final) {
                        request_dl_ack();
diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp
index 305daaa..21a7a76 100644
--- a/src/tbf_ul.cpp
+++ b/src/tbf_ul.cpp
@@ -283,7 +283,7 @@
                                i + 1, frame->offset, frame->length,
                                frame->is_complete);

-                       m_llc.append_frame(data + frame->offset, frame->length);
+                       llc_append_frame(&m_llc, data + frame->offset, 
frame->length);
                        llc_consume(&m_llc, frame->length);
                }

@@ -292,7 +292,7 @@
                        LOGPTBFUL(this, LOGL_DEBUG, "complete UL frame 
len=%d\n", llc_frame_length(&m_llc));
                        snd_ul_ud();
                        bts_do_rate_ctr_add(bts, CTR_LLC_UL_BYTES, 
llc_frame_length(&m_llc));
-                       m_llc.reset();
+                       llc_reset(&m_llc);
                }
        }

@@ -544,7 +544,7 @@
        LOGP(DBSSGP, LOGL_INFO, "LLC [PCU -> SGSN] %s len=%d\n", 
tbf_name(this), llc_frame_length(&m_llc));
        if (!bctx) {
                LOGP(DBSSGP, LOGL_ERROR, "No bctx\n");
-               m_llc.reset_frame_space();
+               llc_reset_frame_space(&m_llc);
                return -EIO;
        }

@@ -556,7 +556,7 @@
        qos_profile[2] = QOS_PROFILE;
        bssgp_tx_ul_ud(bctx, tlli(), qos_profile, llc_pdu);

-       m_llc.reset_frame_space();
+       llc_reset_frame_space(&m_llc);
        return 0;
 }

diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp
index 134e856..02a3568 100644
--- a/tests/edge/EdgeTest.cpp
+++ b/tests/edge/EdgeTest.cpp
@@ -535,7 +535,7 @@

        printf("=== start %s ===\n", __func__);

-       llc.init();
+       llc_init(&llc);

        /* TS 44.060, B.1 */
        cs = CS4;
@@ -544,8 +544,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, 11);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 11);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -557,8 +557,8 @@
        OSMO_ASSERT(count_payload == 11);
        OSMO_ASSERT(num_chunks == 1);

-       llc.reset();
-       llc.put_frame(llc_data, 26);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 26);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -570,8 +570,8 @@
        OSMO_ASSERT(count_payload == 26);
        OSMO_ASSERT(num_chunks == 2);

-       llc.reset();
-       llc.put_frame(llc_data, 99);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 99);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -597,8 +597,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, 20);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 20);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -632,8 +632,8 @@
        OSMO_ASSERT(count_payload == 1);
        OSMO_ASSERT(num_chunks == 1);

-       llc.reset();
-       llc.put_frame(llc_data, 99);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 99);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -657,8 +657,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, 7);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 7);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -670,8 +670,8 @@
        OSMO_ASSERT(count_payload == 7);
        OSMO_ASSERT(num_chunks == 1);

-       llc.reset();
-       llc.put_frame(llc_data, 11);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 11);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -696,8 +696,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, 99);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 99);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -721,8 +721,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, 20);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 20);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -746,8 +746,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, 30);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 30);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -779,8 +779,8 @@
        OSMO_ASSERT(count_payload == 10);
        OSMO_ASSERT(num_chunks == 1);

-       llc.reset();
-       llc.put_frame(llc_data, 99);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 99);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -804,8 +804,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, 11);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 11);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -817,8 +817,8 @@
        OSMO_ASSERT(count_payload == 11);
        OSMO_ASSERT(num_chunks == 1);

-       llc.reset();
-       llc.put_frame(llc_data, 26);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 26);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -830,8 +830,8 @@
        OSMO_ASSERT(count_payload == 26);
        OSMO_ASSERT(num_chunks == 2);

-       llc.reset();
-       llc.put_frame(llc_data, 99);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 99);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -862,8 +862,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, 15);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 15);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -875,8 +875,8 @@
        OSMO_ASSERT(count_payload == 15);
        OSMO_ASSERT(num_chunks == 1);

-       llc.reset();
-       llc.put_frame(llc_data, 12);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 12);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -911,8 +911,8 @@
        OSMO_ASSERT(count_payload == 0);
        OSMO_ASSERT(num_chunks == 1);

-       llc.reset();
-       llc.put_frame(llc_data, 7);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 7);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -925,8 +925,8 @@
        OSMO_ASSERT(count_payload == 7);
        OSMO_ASSERT(num_chunks == 2);

-       llc.reset();
-       llc.put_frame(llc_data, 18);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 18);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -950,8 +950,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, 6);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 6);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -963,8 +963,8 @@
        OSMO_ASSERT(count_payload == 6);
        OSMO_ASSERT(num_chunks == 1);

-       llc.reset();
-       llc.put_frame(llc_data, 12);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, 12);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -994,8 +994,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, rdbi.data_len);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, rdbi.data_len);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -1020,8 +1020,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, rdbi.data_len - 1);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, rdbi.data_len - 1);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
@@ -1048,8 +1048,8 @@
        write_offset = 0;
        memset(data, 0, sizeof(data));

-       llc.reset();
-       llc.put_frame(llc_data, rdbi.data_len - 2);
+       llc_reset(&llc);
+       llc_put_frame(&llc, llc_data, rdbi.data_len - 2);
        count_payload = -1;

        ar = Encoding::rlc_data_to_dl_append(&rdbi, cs,
diff --git a/tests/llc/LlcTest.cpp b/tests/llc/LlcTest.cpp
index d98636a..b18f6de 100644
--- a/tests/llc/LlcTest.cpp
+++ b/tests/llc/LlcTest.cpp
@@ -56,7 +56,7 @@

        memcpy(msg_data, data, len);

-       queue->enqueue(llc_msg, expire_time);
+       llc_queue_enqueue(queue, llc_msg, expire_time);
 }

 static void dequeue_and_check(gprs_llc_queue *queue, const uint8_t *exp_data,
@@ -65,7 +65,7 @@
        struct msgb *llc_msg;
        const MetaInfo *info_res;

-       llc_msg = queue->dequeue(&info_res);
+       llc_msg = llc_queue_dequeue(queue, &info_res);
        OSMO_ASSERT(llc_msg != NULL);

        fprintf(stderr, "dequeued msg, length %u (expected %zu), data %s\n",
diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp
index 3834acb..c497d07 100644
--- a/tests/types/TypesTest.cpp
+++ b/tests/types/TypesTest.cpp
@@ -58,20 +58,20 @@
                uint8_t data[LLC_MAX_LEN] = {1, 2, 3, 4, };
                uint8_t out;
                gprs_llc llc;
-               llc.init();
+               llc_init(&llc);

                OSMO_ASSERT(llc_chunk_size(&llc) == 0);
                OSMO_ASSERT(llc_remaining_space(&llc) == LLC_MAX_LEN);
                OSMO_ASSERT(llc_frame_length(&llc) == 0);

-               llc.put_frame(data, 2);
+               llc_put_frame(&llc, data, 2);
                OSMO_ASSERT(llc_remaining_space(&llc) == LLC_MAX_LEN - 2);
                OSMO_ASSERT(llc_frame_length(&llc) == 2);
                OSMO_ASSERT(llc_chunk_size(&llc) == 2);
                OSMO_ASSERT(llc.frame[0] == 1);
                OSMO_ASSERT(llc.frame[1] == 2);

-               llc.append_frame(&data[3], 1);
+               llc_append_frame(&llc, &data[3], 1);
                OSMO_ASSERT(llc_remaining_space(&llc) == LLC_MAX_LEN - 3);
                OSMO_ASSERT(llc_frame_length(&llc) == 3);
                OSMO_ASSERT(llc_chunk_size(&llc) == 3);
@@ -88,7 +88,7 @@
                OSMO_ASSERT(llc.frame[2] == 4);

                /* now fill the frame */
-               llc.append_frame(data, llc_remaining_space(&llc) - 1);
+               llc_append_frame(&llc, data, llc_remaining_space(&llc) - 1);
                OSMO_ASSERT(llc_fits_in_current_frame(&llc, 1));
                OSMO_ASSERT(!llc_fits_in_current_frame(&llc, 2));
        }

--
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/27623
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I250680ba581167d7398b2f734769c756cbb61c48
Gerrit-Change-Number: 27623
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pes...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanits...@sysmocom.de>
Gerrit-Reviewer: lynxis lazus <lyn...@fe80.eu>
Gerrit-Reviewer: osmith <osm...@sysmocom.de>
Gerrit-Reviewer: pespin <pes...@sysmocom.de>
Gerrit-MessageType: merged

Reply via email to