blob: f3ea72a856c942ef509515ab0b773c1f65dca32c [file] [log] [blame]
Pablo Neira Ayusocab6e752014-02-05 18:56:17 +01001#ifndef _OPENBSC_OSMUX_H_
2#define _OPENBSC_OSMUX_H_
3
4#include <osmocom/netif/osmux.h>
5
Pablo Neira Ayuso308d5f82014-08-29 12:20:17 +02006#define OSMUX_PORT 1984
7
Pablo Neira Ayusocab6e752014-02-05 18:56:17 +01008enum {
9 OSMUX_ROLE_BSC = 0,
10 OSMUX_ROLE_BSC_NAT,
11};
12
13int osmux_init(int role, struct mgcp_config *cfg);
Pau Espin Pedrole93fad82017-08-11 16:48:51 +020014int osmux_enable_endpoint(struct mgcp_endpoint *endp, struct in_addr *addr, uint16_t port);
Pablo Neira Ayusob769f3c2014-08-27 17:02:52 +020015void osmux_disable_endpoint(struct mgcp_endpoint *endp);
Holger Hans Peter Freyther1afe7c72015-10-04 11:11:11 +020016void osmux_allocate_cid(struct mgcp_endpoint *endp);
17void osmux_release_cid(struct mgcp_endpoint *endp);
Pablo Neira Ayusocab6e752014-02-05 18:56:17 +010018
19int osmux_xfrm_to_rtp(struct mgcp_endpoint *endp, int type, char *buf, int rc);
20int osmux_xfrm_to_osmux(int type, char *buf, int rc, struct mgcp_endpoint *endp);
21
22int osmux_send_dummy(struct mgcp_endpoint *endp);
23
Pablo Neira Ayusob769f3c2014-08-27 17:02:52 +020024int osmux_get_cid(void);
25void osmux_put_cid(uint8_t osmux_cid);
Holger Hans Peter Freyther641d3872015-10-02 15:56:35 +020026int osmux_used_cid(void);
Pablo Neira Ayusob769f3c2014-08-27 17:02:52 +020027
28enum osmux_state {
29 OSMUX_STATE_DISABLED = 0,
Daniel Willmann57542062016-06-29 16:24:42 +020030 OSMUX_STATE_NEGOTIATING,
Pablo Neira Ayusob769f3c2014-08-27 17:02:52 +020031 OSMUX_STATE_ACTIVATING,
32 OSMUX_STATE_ENABLED,
33};
34
Holger Hans Peter Freyther6598ded2015-10-02 17:38:27 +020035enum osmux_usage {
36 OSMUX_USAGE_OFF = 0,
37 OSMUX_USAGE_ON = 1,
38 OSMUX_USAGE_ONLY = 2,
39};
40
Pablo Neira Ayusocab6e752014-02-05 18:56:17 +010041#endif