/usr/include/osmocom/abis/lapd.h is in libosmo-abis-dev 0.3.2+20151106git86fc3c8-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #ifndef OPENBSC_LAPD_H
#define OPENBSC_LAPD_H
#include <stdint.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/gsm/lapd_core.h>
struct lapd_profile {
uint8_t k[64];
int n200;
int n201;
int n202;
int t200_sec, t200_usec;
int t201_sec, t201_usec;
int t202_sec, t202_usec;
int t203_sec, t203_usec;
int short_address;
};
extern const struct lapd_profile lapd_profile_isdn;
extern const struct lapd_profile lapd_profile_abis;
extern const struct lapd_profile lapd_profile_sat;
struct lapd_instance {
struct llist_head list; /* list of LAPD instances */
int network_side;
void (*transmit_cb)(struct msgb *msg, void *cbdata);
void *transmit_cbdata;
void (*receive_cb)(struct osmo_dlsap_prim *odp, uint8_t tei,
uint8_t sapi, void *rx_cbdata);
void *receive_cbdata;
struct lapd_profile profile; /* must be a copy */
struct llist_head tei_list; /* list of TEI in this LAPD instance */
int pcap_fd; /* PCAP file descriptor */
};
enum lapd_recv_errors {
LAPD_ERR_NONE = 0,
LAPD_ERR_BAD_LEN,
LAPD_ERR_BAD_ADDR,
LAPD_ERR_UNKNOWN_S_CMD,
LAPD_ERR_UNKNOWN_U_CMD,
LAPD_ERR_UNKNOWN_TEI,
LAPD_ERR_BAD_CMD,
LAPD_ERR_NO_MEM,
__LAPD_ERR_MAX
};
struct lapd_tei *lapd_tei_alloc(struct lapd_instance *li, uint8_t tei);
int lapd_receive(struct lapd_instance *li, struct msgb *msg, int *error);
void lapd_transmit(struct lapd_instance *li, uint8_t tei, uint8_t sapi,
struct msgb *msg);
struct lapd_instance *lapd_instance_alloc(int network_side,
void (*tx_cb)(struct msgb *msg, void *cbdata), void *tx_cbdata,
void (*rx_cb)(struct osmo_dlsap_prim *odp, uint8_t tei, uint8_t sapi,
void *rx_cbdata), void *rx_cbdata,
const struct lapd_profile *profile);
void lapd_instance_free(struct lapd_instance *li);
/* Start a (user-side) SAP for the specified TEI/SAPI on the LAPD instance */
int lapd_sap_start(struct lapd_instance *li, uint8_t tei, uint8_t sapi);
/* Stop a (user-side) SAP for the specified TEI/SAPI on the LAPD instance */
int lapd_sap_stop(struct lapd_instance *li, uint8_t tei, uint8_t sapi);
#endif /* OPENBSC_LAPD_H */
|