libosmo-e1d 0.7.1
Osmocom e1d client library
Loading...
Searching...
No Matches
proto.h
Go to the documentation of this file.
6/* (C) 2019 by Sylvain Munaut <tnt@246tNt.com>
7 * (C) 2020 by Harald Welte <laforge@gnumonks.org>
8 *
9 * All Rights Reserved
10 *
11 * SPDX-License-Identifier: LGPL-3.0-or-later
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU Lesser General Public License as published
15 * by the Free Software Foundation; either version 3 of the License, or
16 * (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU Lesser General Public License
24 * along with this program; if not, see <http://www.gnu.org/licenses/>.
25 */
26
27#pragma once
28
29#include <stdint.h>
30
31#include <osmocom/core/select.h>
32#include <osmocom/core/utils.h>
33
34
100
112
122
124#define E1DP_TS_OPEN_F_FORCE 0x80
125
128#define E1DP_MAGIC 0x01e1
130#define E1DP_MAX_LEN 4096
132#define E1DP_TS_SUPERCHAN 0xfe
135#define E1DP_INVALID 0xff
137#define E1DP_DEFAULT_SOCKET "/tmp/osmo-e1d.ctl"
138
140#define E1DP_MAX_SIZE_HDLC 264
141
144 uint16_t magic; /*< magic value (E1DP_MAGIC) */
145 uint16_t len; /*< length of message (octets) */
146
147 uint8_t type; /*< message type (enum osmo_e1dp_msg_type) */
148 uint8_t intf; /*< E1 interface number (or E1DP_INVALID) */
149 uint8_t line; /*< E1 line number (or E1DP_INVALID) */
150 uint8_t ts; /*< timeslot number (or E1DP_INVALID) */
151} __attribute__((packed));
152
155 uint8_t id; /*< Numeric identifier of E1 interface */
156 uint8_t n_lines; /*< number of E1 lines within this interface */
157} __attribute__((packed));
158
161 uint8_t mode; /*< E1 line mode (enum osmo_e1dp_line_mode) */
162} __attribute__((packed));
163
166 uint8_t id; /*< E1 line number */
168 uint8_t status;
169} __attribute__((packed));
170
173 uint8_t mode; /*< timeslot mode (enum osmo_e1dp_ts_mode) */
174 uint8_t flags; /*< flags (currently only E1DP_TS_OPEN_F_FORCE) */
175 uint16_t read_bufsize; /*< size of read buffer (in octets) */
176} __attribute__((packed));
177
180 uint8_t id; /*< E1 timeslot number */
181 struct osmo_e1dp_ts_config cfg; /*< E1 timeslot configuration */
182 uint8_t status; /*< TBD */
183} __attribute__((packed));
184
185
186struct msgb *osmo_e1dp_recv(struct osmo_fd *ofd, int *fd);
187int osmo_e1dp_send(struct osmo_fd *ofd, struct msgb *msgb, int fd);
188
189extern const struct value_string osmo_e1dp_msg_type_names[];
190extern const struct value_string osmo_e1dp_line_mode_names[];
191extern const struct value_string osmo_e1dp_ts_mode_names[];
const struct value_string osmo_e1dp_line_mode_names[]
const struct value_string osmo_e1dp_ts_mode_names[]
osmo_e1dp_line_mode
e1d CTL protocol line mode.
Definition proto.h:102
@ E1DP_LMODE_E1OIP
Line is used in E1oIP mode (not available to CTL clients)
Definition proto.h:110
@ E1DP_LMODE_SUPERCHANNEL
Line is used as superchannel (31TS combined together)
Definition proto.h:108
@ E1DP_LMODE_OFF
Line is switched off.
Definition proto.h:104
@ E1DP_LMODE_CHANNELIZED
Line is used in channelized mode with (64kBps) timeslots.
Definition proto.h:106
osmo_e1dp_msg_type
e1d CTL protocol message type definition.
Definition proto.h:36
@ E1DP_CMD_TS_OPEN
Open a given E1 timeslot.
Definition proto.h:57
@ E1DP_EVT_AIS_ON
Received alarm indication signal from interface.
Definition proto.h:70
@ E1DP_EVT_LOF_OFF
Ceased frame loss from interface.
Definition proto.h:85
@ E1DP_EVT_LOS_OFF
Ceased signal loss from interface.
Definition proto.h:67
@ E1DP_CMD_SABITS
Send Sa bits to line.
Definition proto.h:61
@ E1DP_EVT_AIS_OFF
Ceased alarm indication signal from interface.
Definition proto.h:73
@ E1DP_CMD_LINE_CONFIG
Configure a given E1 line.
Definition proto.h:51
@ E1DP_CMD_TS_QUERY
Query information about E1 timeslot(s).
Definition proto.h:47
@ E1DP_EVT_LOF_ON
Received frame loss from interface.
Definition proto.h:82
@ E1DP_EVT_TYPE
Message is an event.
Definition proto.h:92
@ E1DP_ERR_TYPE
Message is an error.
Definition proto.h:96
@ E1DP_EVT_RAI_OFF
Ceased remote alarm indication from interface.
Definition proto.h:79
@ E1DP_EVT_RAI_ON
Received remote alarm indication from interface.
Definition proto.h:76
@ E1DP_CMD_INTF_QUERY
Query information about E1 interface(s).
Definition proto.h:39
@ E1DP_RESP_TYPE
Message is a response
Definition proto.h:94
@ E1DP_EVT_LOS_ON
Received signal loss from interface.
Definition proto.h:64
@ E1DP_EVT_SABITS
Received Sa bits from interface.
Definition proto.h:89
@ E1DP_TYPE_MSK
Mask to separate type from command.
Definition proto.h:98
@ E1DP_CMD_LINE_QUERY
Query information about E1 line(s).
Definition proto.h:43
struct msgb * osmo_e1dp_recv(struct osmo_fd *ofd, int *fd)
const struct value_string osmo_e1dp_msg_type_names[]
osmo_e1dp_ts_mode
e1d CTL protocol timeslot mode.
Definition proto.h:114
@ E1DP_TSMODE_HDLCFCS
Timeslot is in HLDC-FCS mode; e1d will run software HDLC processor.
Definition proto.h:120
@ E1DP_TSMODE_RAW
Timeslot is in RAW mode, containing transparent 64kBps bitstream.
Definition proto.h:118
@ E1DP_TSMODE_OFF
Timeslot is switched off.
Definition proto.h:116
int osmo_e1dp_send(struct osmo_fd *ofd, struct msgb *msgb, int fd)
struct osmo_e1dp_msg_hdr __attribute__((packed))
Information about an E1 interface.
Definition proto.h:154
uint8_t id
Definition proto.h:155
uint8_t n_lines
Definition proto.h:156
Configuration of an E1 line.
Definition proto.h:160
uint8_t mode
Definition proto.h:161
Information about an E1 line.
Definition proto.h:165
uint8_t status
E1 line configuration.
Definition proto.h:168
uint8_t id
Definition proto.h:166
struct osmo_e1dp_line_config cfg
Definition proto.h:167
message header of osmo-e1d CTL protocol.
Definition proto.h:143
uint8_t intf
Definition proto.h:148
uint16_t magic
Definition proto.h:144
uint8_t ts
Definition proto.h:150
uint8_t line
Definition proto.h:149
uint16_t len
Definition proto.h:145
uint8_t type
Definition proto.h:147
Configuration of an E1 timeslot.
Definition proto.h:172
uint8_t flags
Definition proto.h:174
uint16_t read_bufsize
Definition proto.h:175
uint8_t mode
Definition proto.h:173
Information about an E1 timeslot.
Definition proto.h:179
uint8_t id
Definition proto.h:180
uint8_t status
Definition proto.h:182
struct osmo_e1dp_ts_config cfg
Definition proto.h:181