summaryrefslogtreecommitdiffstats
path: root/src/shared/libosmocore/include/osmocom
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/libosmocore/include/osmocom')
-rw-r--r--src/shared/libosmocore/include/osmocom/core/application.h2
-rw-r--r--src/shared/libosmocore/include/osmocom/core/backtrace.h2
-rw-r--r--src/shared/libosmocore/include/osmocom/core/logging.h26
-rw-r--r--src/shared/libosmocore/include/osmocom/core/msgb.h8
-rw-r--r--src/shared/libosmocore/include/osmocom/core/process.h8
-rw-r--r--src/shared/libosmocore/include/osmocom/core/signal.h23
-rw-r--r--src/shared/libosmocore/include/osmocom/core/timer.h6
-rw-r--r--src/shared/libosmocore/include/osmocom/core/utils.h2
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/Makefile.am2
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm0480.h2
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm0502.h38
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm0808.h5
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm48.h2
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm_utils.h7
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/lapdm.h186
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h1
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/rsl.h1
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/tlv.h4
-rw-r--r--src/shared/libosmocore/include/osmocom/vty/command.h7
19 files changed, 305 insertions, 27 deletions
diff --git a/src/shared/libosmocore/include/osmocom/core/application.h b/src/shared/libosmocore/include/osmocom/core/application.h
index c1642ec4..5d098961 100644
--- a/src/shared/libosmocore/include/osmocom/core/application.h
+++ b/src/shared/libosmocore/include/osmocom/core/application.h
@@ -13,4 +13,6 @@ extern struct log_target *osmo_stderr_target;
void osmo_init_ignore_signals(void);
int osmo_init_logging(const struct log_info *);
+int osmo_daemonize(void);
+
#endif
diff --git a/src/shared/libosmocore/include/osmocom/core/backtrace.h b/src/shared/libosmocore/include/osmocom/core/backtrace.h
index 5a8a8161..1ed089ad 100644
--- a/src/shared/libosmocore/include/osmocom/core/backtrace.h
+++ b/src/shared/libosmocore/include/osmocom/core/backtrace.h
@@ -1,6 +1,6 @@
#ifndef _OSMO_BACKTRACE_H_
#define _OSMO_BACKTRACE_H_
-void osmo_generate_backtrace();
+void osmo_generate_backtrace(void);
#endif
diff --git a/src/shared/libosmocore/include/osmocom/core/logging.h b/src/shared/libosmocore/include/osmocom/core/logging.h
index db029402..06d90e52 100644
--- a/src/shared/libosmocore/include/osmocom/core/logging.h
+++ b/src/shared/libosmocore/include/osmocom/core/logging.h
@@ -5,7 +5,6 @@
#include <stdint.h>
#include <osmocom/core/linuxlist.h>
-#define LOG_MAX_CATEGORY 32
#define LOG_MAX_CTX 8
#define LOG_MAX_FILTERS 8
@@ -20,7 +19,7 @@
#endif
-void logp(unsigned int subsys, char *file, int line, int cont, const char *format, ...) __attribute__ ((format (printf, 5, 6)));
+void logp(int subsys, char *file, int line, int cont, const char *format, ...) __attribute__ ((format (printf, 5, 6)));
/* new logging interface */
#define LOGP(ss, level, fmt, args...) \
@@ -37,6 +36,15 @@ void logp(unsigned int subsys, char *file, int line, int cont, const char *forma
#define LOG_FILTER_ALL 0x0001
+/* logging levels defined by the library itself */
+#define DLGLOBAL -1
+#define DLLAPDM -2
+#define DLINP -3
+#define DLMUX -4
+#define DLMI -5
+#define DLMIB -6
+#define OSMO_NUM_DLIB 7
+
struct log_category {
uint8_t loglevel;
uint8_t enabled;
@@ -65,8 +73,9 @@ struct log_info {
log_filter *filter_fn;
/* per-category information */
- const struct log_info_cat *cat;
+ struct log_info_cat *cat;
unsigned int num_cat;
+ unsigned int num_cat_user;
};
enum log_target_type {
@@ -82,10 +91,11 @@ struct log_target {
int filter_map;
void *filter_data[LOG_MAX_FILTERS+1];
- struct log_category categories[LOG_MAX_CATEGORY+1];
+ struct log_category *categories;
+
uint8_t loglevel;
- int use_color:1;
- int print_timestamp:1;
+ unsigned int use_color:1;
+ unsigned int print_timestamp:1;
enum log_target_type type;
@@ -110,10 +120,10 @@ struct log_target {
};
/* use the above macros */
-void logp2(unsigned int subsys, unsigned int level, char *file,
+void logp2(int subsys, unsigned int level, char *file,
int line, int cont, const char *format, ...)
__attribute__ ((format (printf, 6, 7)));
-void log_init(const struct log_info *cat);
+int log_init(const struct log_info *inf, void *talloc_ctx);
/* context management */
void log_reset_context(void);
diff --git a/src/shared/libosmocore/include/osmocom/core/msgb.h b/src/shared/libosmocore/include/osmocom/core/msgb.h
index 8665c2bf..915c4a04 100644
--- a/src/shared/libosmocore/include/osmocom/core/msgb.h
+++ b/src/shared/libosmocore/include/osmocom/core/msgb.h
@@ -29,9 +29,13 @@
struct msgb {
struct llist_head list;
+
/* Part of which TRX logical channel we were received / transmitted */
/* FIXME: move them into the control buffer */
- struct gsm_bts_trx *trx;
+ union {
+ void *dst;
+ struct gsm_bts_trx *trx;
+ };
struct gsm_lchan *lchan;
/* the Layer1 header (if any) */
@@ -193,5 +197,7 @@ static inline struct msgb *msgb_alloc_headroom(int size, int headroom,
uint8_t *msgb_data(const struct msgb *msg);
uint16_t msgb_length(const struct msgb *msg);
+/* set the talloc context for msgb_alloc[_headroom] */
+void msgb_set_talloc_ctx(void *ctx);
#endif /* _MSGB_H */
diff --git a/src/shared/libosmocore/include/osmocom/core/process.h b/src/shared/libosmocore/include/osmocom/core/process.h
index 2d663828..1dde0219 100644
--- a/src/shared/libosmocore/include/osmocom/core/process.h
+++ b/src/shared/libosmocore/include/osmocom/core/process.h
@@ -1,6 +1,2 @@
-#ifndef _OSMO_PROCESS_H
-#define _OSMO_PROCESS_H
-
-int osmo_daemonize(void);
-
-#endif
+#warning "Update from osmocom/core/process.h to osmocom/core/application.h"
+#include <osmocom/core/application.h>
diff --git a/src/shared/libosmocore/include/osmocom/core/signal.h b/src/shared/libosmocore/include/osmocom/core/signal.h
index 535fd185..2442e510 100644
--- a/src/shared/libosmocore/include/osmocom/core/signal.h
+++ b/src/shared/libosmocore/include/osmocom/core/signal.h
@@ -1,6 +1,29 @@
#ifndef OSMO_SIGNAL_H
#define OSMO_SIGNAL_H
+#include <stdint.h>
+
+/* subsystem signaling numbers: we split the numberspace for applications and
+ * libraries: from 0 to UINT_MAX/2 for applications, from UINT_MAX/2 to
+ * UINT_MAX for libraries. */
+#define OSMO_SIGNAL_SS_APPS 0
+#define OSMO_SIGNAL_SS_RESERVED 2147483648
+
+/* signal subsystems. */
+enum {
+ SS_L_GLOBAL = OSMO_SIGNAL_SS_RESERVED,
+ SS_L_INPUT,
+};
+
+/* application-defined signal types. */
+#define OSMO_SIGNAL_T_APPS 0
+#define OSMO_SIGNAL_T_RESERVED 2147483648
+
+/* signal types. */
+enum {
+ S_L_GLOBAL_SHUTDOWN = OSMO_SIGNAL_T_RESERVED,
+};
+
typedef int osmo_signal_cbfn(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data);
diff --git a/src/shared/libosmocore/include/osmocom/core/timer.h b/src/shared/libosmocore/include/osmocom/core/timer.h
index db2ecbf7..6c2e8c50 100644
--- a/src/shared/libosmocore/include/osmocom/core/timer.h
+++ b/src/shared/libosmocore/include/osmocom/core/timer.h
@@ -64,9 +64,9 @@ int osmo_timer_pending(struct osmo_timer_list *timer);
/**
* internal timer list management
*/
-struct timeval *osmo_timers_nearest();
-void osmo_timers_prepare();
-int osmo_timers_update();
+struct timeval *osmo_timers_nearest(void);
+void osmo_timers_prepare(void);
+int osmo_timers_update(void);
int osmo_timers_check(void);
#endif
diff --git a/src/shared/libosmocore/include/osmocom/core/utils.h b/src/shared/libosmocore/include/osmocom/core/utils.h
index 0f1ea3bb..a1a18e30 100644
--- a/src/shared/libosmocore/include/osmocom/core/utils.h
+++ b/src/shared/libosmocore/include/osmocom/core/utils.h
@@ -2,6 +2,8 @@
#define OSMOCORE_UTIL_H
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+#define OSMO_MAX(a, b) (a) >= (b) ? (a) : (b)
+#define OSMO_MIN(a, b) (a) >= (b) ? (b) : (a)
#include <stdint.h>
diff --git a/src/shared/libosmocore/include/osmocom/gsm/Makefile.am b/src/shared/libosmocore/include/osmocom/gsm/Makefile.am
index aa7b1a9a..90f19bc5 100644
--- a/src/shared/libosmocore/include/osmocom/gsm/Makefile.am
+++ b/src/shared/libosmocore/include/osmocom/gsm/Makefile.am
@@ -1,6 +1,6 @@
osmogsm_HEADERS = a5.h comp128.h gsm0808.h gsm48_ie.h mncc.h rxlev_stat.h \
gsm0480.h gsm48.h gsm_utils.h rsl.h tlv.h abis_nm.h \
- sysinfo.h prim.h
+ sysinfo.h prim.h gsm0502.h lapdm.h
SUBDIRS = protocol
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm0480.h b/src/shared/libosmocore/include/osmocom/gsm/gsm0480.h
index d6626d60..f6c37340 100644
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm0480.h
+++ b/src/shared/libosmocore/include/osmocom/gsm/gsm0480.h
@@ -8,7 +8,7 @@
#define MAX_LEN_USSD_STRING 31
struct ussd_request {
- char text[MAX_LEN_USSD_STRING + 1];
+ uint8_t text[MAX_LEN_USSD_STRING + 1];
uint8_t transaction_id;
uint8_t invoke_id;
};
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm0502.h b/src/shared/libosmocore/include/osmocom/gsm/gsm0502.h
new file mode 100644
index 00000000..46b629e4
--- /dev/null
+++ b/src/shared/libosmocore/include/osmocom/gsm/gsm0502.h
@@ -0,0 +1,38 @@
+#ifndef OSMOCOM_GSM_0502_H
+#define OSMOCOM_GSM_0502_H
+
+#include <stdint.h>
+
+#include <osmocom/gsm/protocol/gsm_04_08.h>
+#include <osmocom/gsm/protocol/gsm_08_58.h>
+
+/* Table 5 Clause 7 TS 05.02 */
+static inline unsigned int
+gsm0502_get_n_pag_blocks(struct gsm48_control_channel_descr *chan_desc)
+{
+ if (chan_desc->ccch_conf == RSL_BCCH_CCCH_CONF_1_C)
+ return 3 - chan_desc->bs_ag_blks_res;
+ else
+ return 9 - chan_desc->bs_ag_blks_res;
+}
+
+/* Chapter 6.5.2 of TS 05.02 */
+static inline unsigned int
+gsm0502_get_ccch_group(uint64_t imsi, unsigned int bs_cc_chans,
+ unsigned int n_pag_blocks)
+{
+ return (imsi % 1000) % (bs_cc_chans * n_pag_blocks) / n_pag_blocks;
+}
+
+/* Chapter 6.5.2 of TS 05.02 */
+static inline unsigned int
+gsm0502_get_paging_group(uint64_t imsi, unsigned int bs_cc_chans,
+ int n_pag_blocks)
+{
+ return (imsi % 1000) % (bs_cc_chans * n_pag_blocks) % n_pag_blocks;
+}
+
+unsigned int
+gsm0502_calc_paging_group(struct gsm48_control_channel_descr *chan_desc, uint64_t imsi);
+
+#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm0808.h b/src/shared/libosmocore/include/osmocom/gsm/gsm0808.h
index 1d853775..38d88ef9 100644
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm0808.h
+++ b/src/shared/libosmocore/include/osmocom/gsm/gsm0808.h
@@ -41,6 +41,9 @@ struct msgb *gsm0808_create_clear_rqst(uint8_t cause);
struct msgb *gsm0808_create_dtap(struct msgb *msg, uint8_t link_id);
void gsm0808_prepend_dtap_header(struct msgb *msg, uint8_t link_id);
-const struct tlv_definition *gsm0808_att_tlvdef();
+const struct tlv_definition *gsm0808_att_tlvdef(void);
+
+const char *gsm0808_bssmap_name(uint8_t msg_type);
+const char *gsm0808_bssap_name(uint8_t msg_type);
#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm48.h b/src/shared/libosmocore/include/osmocom/gsm/gsm48.h
index 1e9403bc..16a625aa 100644
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm48.h
+++ b/src/shared/libosmocore/include/osmocom/gsm/gsm48.h
@@ -33,4 +33,6 @@ int gsm48_mi_to_string(char *string, const int str_len,
void gsm48_parse_ra(struct gprs_ra_id *raid, const uint8_t *buf);
int gsm48_construct_ra(uint8_t *buf, const struct gprs_ra_id *raid);
+int gsm48_number_of_paging_subchannels(struct gsm48_control_channel_descr *chan_desc);
+
#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm_utils.h b/src/shared/libosmocore/include/osmocom/gsm/gsm_utils.h
index 405dfe32..c9a31016 100644
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm_utils.h
+++ b/src/shared/libosmocore/include/osmocom/gsm/gsm_utils.h
@@ -57,9 +57,14 @@ const char *gsm_band_name(enum gsm_band band);
enum gsm_band gsm_band_parse(const char *mhz);
int gsm_7bit_decode(char *decoded, const uint8_t *user_data, uint8_t length);
+int gsm_7bit_decode_hdr(char *decoded, const uint8_t *user_data, uint8_t length, uint8_t ud_hdr_ind);
int gsm_7bit_encode(uint8_t *result, const char *data);
-unsigned int ms_class_gmsk_dbm(enum gsm_band band, int class);
+int gsm_septets2octets(uint8_t *result, uint8_t *rdata, uint8_t septet_len, uint8_t padding);
+int gsm_septet_encode(uint8_t *result, const char *data);
+uint8_t gsm_get_octet_len(const uint8_t sept_len);
+
+unsigned int ms_class_gmsk_dbm(enum gsm_band band, int ms_class);
int ms_pwr_ctl_lvl(enum gsm_band band, unsigned int dbm);
int ms_pwr_dbm(enum gsm_band band, uint8_t lvl);
diff --git a/src/shared/libosmocore/include/osmocom/gsm/lapdm.h b/src/shared/libosmocore/include/osmocom/gsm/lapdm.h
new file mode 100644
index 00000000..2e78aeee
--- /dev/null
+++ b/src/shared/libosmocore/include/osmocom/gsm/lapdm.h
@@ -0,0 +1,186 @@
+#ifndef _OSMOCOM_LAPDM_H
+#define _OSMOCOM_LAPDM_H
+
+#include <stdint.h>
+
+#include <osmocom/core/timer.h>
+#include <osmocom/core/msgb.h>
+#include <osmocom/gsm/prim.h>
+
+/* primitive related sutff */
+
+enum osmo_ph_prim {
+ PRIM_PH_DATA, /* PH-DATA */
+ PRIM_PH_RACH, /* PH-RANDOM_ACCESS */
+ PRIM_PH_CONN, /* PH-CONNECT */
+ PRIM_PH_EMPTY_FRAME, /* PH-EMPTY_FRAME */
+ PRIM_PH_RTS, /* PH-RTS */
+};
+
+/* for PH-RANDOM_ACCESS.req */
+struct ph_rach_req_param {
+ uint8_t ra;
+ uint8_t ta;
+ uint8_t tx_power;
+ uint8_t is_combined_ccch;
+ uint16_t offset;
+};
+
+/* for PH-RANDOM_ACCESS.ind */
+struct ph_rach_ind_param {
+ uint8_t ra;
+ uint8_t acc_delay;
+ uint32_t fn;
+};
+
+/* for PH-[UNIT]DATA.{req,ind} */
+struct ph_data_param {
+ uint8_t link_id;
+ uint8_t chan_nr;
+};
+
+struct ph_conn_ind_param {
+ uint32_t fn;
+};
+
+struct osmo_phsap_prim {
+ struct osmo_prim_hdr oph;
+ union {
+ struct ph_data_param data;
+ struct ph_rach_req_param rach_req;
+ struct ph_rach_ind_param rach_ind;
+ struct ph_conn_ind_param conn_ind;
+ } u;
+};
+
+enum lapdm_mode {
+ LAPDM_MODE_MS,
+ LAPDM_MODE_BTS,
+};
+
+enum lapdm_state {
+ LAPDm_STATE_NULL = 0,
+ LAPDm_STATE_IDLE,
+ LAPDm_STATE_SABM_SENT,
+ LAPDm_STATE_MF_EST,
+ LAPDm_STATE_TIMER_RECOV,
+ LAPDm_STATE_DISC_SENT,
+};
+
+struct lapdm_entity;
+
+struct lapdm_msg_ctx {
+ struct lapdm_datalink *dl;
+ int lapdm_fmt;
+ uint8_t n201;
+ uint8_t chan_nr;
+ uint8_t link_id;
+ uint8_t addr;
+ uint8_t ctrl;
+ uint8_t ta_ind;
+ uint8_t tx_power_ind;
+};
+
+/* TS 04.06 / Section 3.5.2 */
+struct lapdm_datalink {
+ uint8_t V_send; /* seq nr of next I frame to be transmitted */
+ uint8_t V_ack; /* last frame ACKed by peer */
+ uint8_t N_send; /* ? set to V_send at Tx time*/
+ uint8_t V_recv; /* seq nr of next I frame expected to be received */
+ uint8_t N_recv; /* expected send seq nr of the next received I frame */
+ uint32_t state;
+ int seq_err_cond; /* condition of sequence error */
+ uint8_t own_busy, peer_busy;
+ struct osmo_timer_list t200;
+ uint8_t retrans_ctr;
+ struct llist_head send_queue; /* frames from L3 */
+ struct msgb *send_buffer; /* current frame transmitting */
+ int send_out; /* how much was sent from send_buffer */
+ uint8_t tx_hist[8][200]; /* tx history buffer */
+ int tx_length[8]; /* length in history buffer */
+ struct llist_head tx_queue; /* frames to L1 */
+ struct lapdm_msg_ctx mctx; /* context of established connection */
+ struct msgb *rcv_buffer; /* buffer to assemble the received message */
+
+ struct lapdm_entity *entity;
+};
+
+enum lapdm_dl_sapi {
+ DL_SAPI0 = 0,
+ DL_SAPI3 = 1,
+ _NR_DL_SAPI
+};
+
+typedef int (*lapdm_cb_t)(struct msgb *msg, struct lapdm_entity *le, void *ctx);
+
+struct lapdm_cr_ent {
+ uint8_t cmd;
+ uint8_t resp;
+};
+
+#define LAPDM_ENT_F_EMPTY_FRAME 0x0001
+#define LAPDM_ENT_F_POLLING_ONLY 0x0002
+
+/* register message handler for messages that are sent from L2->L3 */
+struct lapdm_entity {
+ struct lapdm_datalink datalink[_NR_DL_SAPI];
+ int last_tx_dequeue; /* last entity that was dequeued */
+ int tx_pending; /* currently a pending frame not confirmed by L1 */
+ enum lapdm_mode mode; /* are we in BTS mode or MS mode */
+ unsigned int flags;
+
+ struct {
+ /* filled-in once we set the lapdm_mode above */
+ struct lapdm_cr_ent loc2rem;
+ struct lapdm_cr_ent rem2loc;
+ } cr;
+
+ void *l1_ctx; /* context for layer1 instance */
+ void *l3_ctx; /* context for layer3 instance */
+
+ osmo_prim_cb l1_prim_cb;
+ lapdm_cb_t l3_cb; /* callback for sending stuff to L3 */
+
+ struct lapdm_channel *lapdm_ch;
+};
+
+/* the two lapdm_entities that form a GSM logical channel (ACCH + DCCH) */
+struct lapdm_channel {
+ struct llist_head list;
+ char *name;
+ struct lapdm_entity lapdm_acch;
+ struct lapdm_entity lapdm_dcch;
+};
+
+const char *get_rsl_name(int value);
+extern const char *lapdm_state_names[];
+
+/* initialize a LAPDm entity */
+void lapdm_entity_init(struct lapdm_entity *le, enum lapdm_mode mode);
+void lapdm_channel_init(struct lapdm_channel *lc, enum lapdm_mode mode);
+
+/* deinitialize a LAPDm entity */
+void lapdm_entity_exit(struct lapdm_entity *le);
+void lapdm_channel_exit(struct lapdm_channel *lc);
+
+/* input into layer2 (from layer 1) */
+int lapdm_phsap_up(struct osmo_prim_hdr *oph, struct lapdm_entity *le);
+
+/* input into layer2 (from layer 3) */
+int lapdm_rslms_recvmsg(struct msgb *msg, struct lapdm_channel *lc);
+
+void lapdm_channel_set_l3(struct lapdm_channel *lc, lapdm_cb_t cb, void *ctx);
+void lapdm_channel_set_l1(struct lapdm_channel *lc, osmo_prim_cb cb, void *ctx);
+
+int lapdm_entity_set_mode(struct lapdm_entity *le, enum lapdm_mode mode);
+int lapdm_channel_set_mode(struct lapdm_channel *lc, enum lapdm_mode mode);
+
+void lapdm_entity_reset(struct lapdm_entity *le);
+void lapdm_channel_reset(struct lapdm_channel *lc);
+
+void lapdm_entity_set_flags(struct lapdm_entity *le, unsigned int flags);
+void lapdm_channel_set_flags(struct lapdm_channel *lc, unsigned int flags);
+
+int lapdm_phsap_dequeue_prim(struct lapdm_entity *le, struct osmo_phsap_prim *pp);
+
+#endif /* _OSMOCOM_LAPDM_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h
index 27925725..5d98a21f 100644
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h
+++ b/src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h
@@ -33,6 +33,7 @@ enum ipaccess_proto_ext {
IPAC_PROTO_EXT_CTRL = 0x00,
IPAC_PROTO_EXT_MGCP = 0x01,
IPAC_PROTO_EXT_LAC = 0x02,
+ IPAC_PROTO_EXT_SMSC = 0x03,
};
enum ipaccess_msgtype {
diff --git a/src/shared/libosmocore/include/osmocom/gsm/rsl.h b/src/shared/libosmocore/include/osmocom/gsm/rsl.h
index 2eb045f2..44ded1b1 100644
--- a/src/shared/libosmocore/include/osmocom/gsm/rsl.h
+++ b/src/shared/libosmocore/include/osmocom/gsm/rsl.h
@@ -3,6 +3,7 @@
#include <stdint.h>
#include <osmocom/core/utils.h>
+#include <osmocom/core/msgb.h>
#include <osmocom/gsm/protocol/gsm_08_58.h>
void rsl_init_rll_hdr(struct abis_rsl_rll_hdr *dh, uint8_t msg_type);
diff --git a/src/shared/libosmocore/include/osmocom/gsm/tlv.h b/src/shared/libosmocore/include/osmocom/gsm/tlv.h
index 552af2bd..f659411f 100644
--- a/src/shared/libosmocore/include/osmocom/gsm/tlv.h
+++ b/src/shared/libosmocore/include/osmocom/gsm/tlv.h
@@ -236,11 +236,11 @@ struct tlv_def {
};
struct tlv_definition {
- struct tlv_def def[0xff];
+ struct tlv_def def[256];
};
struct tlv_parsed {
- struct tlv_p_entry lv[0xff];
+ struct tlv_p_entry lv[256];
};
extern struct tlv_definition tvlv_att_def;
diff --git a/src/shared/libosmocore/include/osmocom/vty/command.h b/src/shared/libosmocore/include/osmocom/vty/command.h
index caf04142..783a7a2d 100644
--- a/src/shared/libosmocore/include/osmocom/vty/command.h
+++ b/src/shared/libosmocore/include/osmocom/vty/command.h
@@ -74,6 +74,9 @@ enum node_type {
VTY_NODE, /* Vty node. */
+ L_E1INP_NODE, /* E1 line in libosmo-abis. */
+ L_IPA_NODE, /* IPA proxying commands in libosmo-abis. */
+
_LAST_OSMOVTY_NODE
};
@@ -134,7 +137,7 @@ struct desc {
#define CMD_SUCCESS_DAEMON 10
/* Argc max counts. */
-#define CMD_ARGC_MAX 25
+#define CMD_ARGC_MAX 256
/* Turn off these macros when uisng cpp with extract.pl */
#ifndef VTYSH_EXTRACT_PL
@@ -316,7 +319,7 @@ void install_node(struct cmd_node *, int (*)(struct vty *));
void install_default(enum node_type);
void install_element(enum node_type, struct cmd_element *);
void install_element_ve(struct cmd_element *cmd);
-void sort_node();
+void sort_node(void);
/* Concatenates argv[shift] through argv[argc-1] into a single NUL-terminated
string with a space between each element (allocated using