#pragma once 

#include <stdint.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#include <osmocom/core/select.h>
#include <osmocom/core/prim.h>
#include <osmocom/core/talloc.h>
#include <osmocom/core/logging.h>
#include <osmocom/vty/logging.h>

#include "sua.h"
#include "sccp_sap.h"


enum log_cat {
	DMAIN,
	DSUA,
	DXUA,
};

extern const struct log_info test_log_info;

int tx_unitdata(struct sua_link *link);
int tx_conn_req(struct sua_link *link, uint32_t conn_id);

struct osmo_prim_hdr *make_conn_req(uint32_t conn_id);
struct osmo_prim_hdr *make_dt1_req(uint32_t conn_id, const uint8_t *data, unsigned int len);
