mirror of https://gerrit.osmocom.org/osmo-tetra
Add SNDCP PDU type name printing
This commit is contained in:
parent
2bca149dca
commit
5c14298646
|
@ -9,7 +9,7 @@ all: conv_enc_test crc_test tetra-rx float_to_bits
|
|||
libosmo-tetra-phy.a: phy/tetra_burst_sync.o phy/tetra_burst.o
|
||||
$(AR) r $@ $^
|
||||
|
||||
libosmo-tetra-mac.a: lower_mac/tetra_conv_enc.o tetra_tdma.o lower_mac/tetra_scramb.o lower_mac/tetra_rm3014.o lower_mac/tetra_interleave.o lower_mac/crc_simple.o tetra_common.o lower_mac/viterbi.o lower_mac/viterbi_cch.o lower_mac/viterbi_tch.o lower_mac/tetra_lower_mac.o tetra_upper_mac.o tetra_mac_pdu.o tetra_mle_pdu.o tetra_mm_pdu.o tetra_cmce_pdu.o tetra_gsmtap.o
|
||||
libosmo-tetra-mac.a: lower_mac/tetra_conv_enc.o tetra_tdma.o lower_mac/tetra_scramb.o lower_mac/tetra_rm3014.o lower_mac/tetra_interleave.o lower_mac/crc_simple.o tetra_common.o lower_mac/viterbi.o lower_mac/viterbi_cch.o lower_mac/viterbi_tch.o lower_mac/tetra_lower_mac.o tetra_upper_mac.o tetra_mac_pdu.o tetra_mle_pdu.o tetra_mm_pdu.o tetra_cmce_pdu.o tetra_sndcp_pdu.o tetra_gsmtap.o
|
||||
$(AR) r $@ $^
|
||||
|
||||
float_to_bits: float_to_bits.o
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
/* Implementation of TETRA SNDCP PDU parsing */
|
||||
|
||||
/* (C) 2011 by Harald Welte <laforge@gnumonks.org>
|
||||
* All Rights Reserved
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
#include <osmocom/core/utils.h>
|
||||
|
||||
#include "tetra_sndcp_pdu.h"
|
||||
|
||||
static const struct value_string sndcp_pdut_names[] = {
|
||||
{ SNDCP_PDU_T_ACT_PDP_DEMAND, "SN-ACTIVATE PDP DEMAND" },
|
||||
{ SNDCP_PDU_T_DEACT_PDP_ACC, "SN-DEACTIVATE PDP ACCEPT" },
|
||||
{ SNDCP_PDU_T_DEACT_PDP_DEMAND, "SN-DEACTIVATE PDP DEMAND" },
|
||||
{ SNDCP_PDU_T_ACT_PDP_REJECT, "SN-ACTIVATE PDP REJECT" },
|
||||
{ SNDCP_PDU_T_UNITDATA, "SN-UNITDATA" },
|
||||
{ SNDCP_PDU_T_DATA, "SN-DATA" },
|
||||
{ SNDCP_PDU_T_DATA_TX_REQ, "SN-DATA TX REQUEST" },
|
||||
{ SNDCP_PDU_T_DATA_TX_RESP, "SN-DATA TX RESPONSE" },
|
||||
{ SNDCP_PDU_T_END_OF_DATA, "SN-END OF DATA" },
|
||||
{ SNDCP_PDU_T_RECONNECT, "SN-RECONNECT" },
|
||||
{ SNDCP_PDU_T_PAGE_REQUEST, "SN-PAGE REQUEST" },
|
||||
{ SNDCP_PDU_T_NOT_SUPPORTED, "SN-NOT SUPPORTED" },
|
||||
{ SNDCP_PDU_T_DATA_PRIORITY, "SN-DATA PRIORITY" },
|
||||
{ SNDCP_PDU_T_MODIFY, "SN-MODIFY" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
const char *tetra_get_sndcp_pdut_name(uint8_t pdut, int uplink)
|
||||
{
|
||||
/* FIXME: uplink */
|
||||
return get_value_string(sndcp_pdut_names, pdut);
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
#ifndef TETRA_SNDCP_PDU_H
|
||||
#define TETRA_SNDCP_PDU_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* 28.115 */
|
||||
enum sndcp_pdu_type {
|
||||
SNDCP_PDU_T_ACT_PDP_DEMAND = 0x0,
|
||||
SNDCP_PDU_T_DEACT_PDP_ACC = 0x1,
|
||||
SNDCP_PDU_T_DEACT_PDP_DEMAND = 0x2,
|
||||
SNDCP_PDU_T_ACT_PDP_REJECT = 0x3,
|
||||
SNDCP_PDU_T_UNITDATA = 0x4,
|
||||
SNDCP_PDU_T_DATA = 0x5,
|
||||
SNDCP_PDU_T_DATA_TX_REQ = 0x6,
|
||||
SNDCP_PDU_T_DATA_TX_RESP = 0x7,
|
||||
SNDCP_PDU_T_END_OF_DATA = 0x8,
|
||||
SNDCP_PDU_T_RECONNECT = 0x9,
|
||||
SNDCP_PDU_T_PAGE_REQUEST = 0xa,
|
||||
SNDCP_PDU_T_NOT_SUPPORTED = 0xb,
|
||||
SNDCP_PDU_T_DATA_PRIORITY = 0xc,
|
||||
SNDCP_PDU_T_MODIFY = 0xd,
|
||||
};
|
||||
|
||||
#define SNDCP_PDU_T_ACT_PDP_ACCEPT SNDCP_PDU_T_ACT_PDP_DEMAND
|
||||
#define SNDCP_PDU_T_PAGE_RESPONSE SNDCP_PDU_T_PAGE_REQUEST
|
||||
|
||||
#endif /* TETRA_SNDCP_PDU_H */
|
||||
|
||||
const char *tetra_get_sndcp_pdut_name(uint8_t pdut, int uplink);
|
|
@ -32,6 +32,7 @@
|
|||
#include "tetra_mle_pdu.h"
|
||||
#include "tetra_mm_pdu.h"
|
||||
#include "tetra_cmce_pdu.h"
|
||||
#include "tetra_sndcp_pdu.h"
|
||||
#include "tetra_gsmtap.h"
|
||||
|
||||
static void rx_bcast(struct tetra_tmvsap_prim *tmvp)
|
||||
|
@ -94,6 +95,9 @@ static int rx_tm_sdu(uint8_t *bits, unsigned int len)
|
|||
case TMLE_PDISC_CMCE:
|
||||
printf(" %s", tetra_get_cmce_pdut_name(bits_to_uint(bits+3, 5), 0));
|
||||
break;
|
||||
case TMLE_PDISC_SNDCP:
|
||||
printf(" %s", tetra_get_sndcp_pdut_name(bits_to_uint(bits+3, 4), 0));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue