Allow signaling protocol (e.g. RRC) to set number of SN bits

PDCP should use for DRB channels.

Not yet called by RRC.

svn path=/trunk/; revision=36692
This commit is contained in:
Martin Mathieson 2011-04-17 21:34:47 +00:00
parent ad619e3a04
commit 16cb326768
2 changed files with 18 additions and 1 deletions

View File

@ -61,14 +61,16 @@ static gint global_rlc_lte_um_sequence_analysis = FALSE;
/* By default don't call PDCP/RRC dissectors for SDU data */
static gboolean global_rlc_lte_call_pdcp_for_srb = FALSE;
enum pdcp_for_drb { PDCP_drb_off, PDCP_drb_SN_7, PDCP_drb_SN_12};
enum pdcp_for_drb { PDCP_drb_off, PDCP_drb_SN_7, PDCP_drb_SN_12, PDCP_drb_SN_signalled};
static enum_val_t pdcp_drb_col_vals[] = {
{"pdcp-drb-off", "Off", PDCP_drb_off},
{"pdcp-drb-sn-7", "7-bit SN", PDCP_drb_SN_7},
{"pdcp-drb-sn-12", "12-bit SN", PDCP_drb_SN_12},
{"pdcp-drb-sn-signalling", "Use signalled value", PDCP_drb_SN_signalled},
{NULL, NULL, -1}
};
static gint global_rlc_lte_call_pdcp_for_drb = (gint)PDCP_drb_off;
static gint signalled_pdcp_sn_bits = 12;
static gboolean global_rlc_lte_call_rrc = FALSE;
@ -530,6 +532,11 @@ static void show_PDU_in_tree(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb
case PDCP_drb_SN_12:
p_pdcp_lte_info->seqnum_length = 12;
break;
case PDCP_drb_SN_signalled:
/* Use whatever was signalled (e.g. in RRC) */
p_pdcp_lte_info->seqnum_length = signalled_pdcp_sn_bits;
break;
default:
DISSECTOR_ASSERT(FALSE);
break;
@ -2131,6 +2138,13 @@ rlc_lte_init_protocol(void)
}
/* Configure number of PDCP SN bits to use for DRB channels.
TODO: currently assume all UEs/Channels will use the same length... */
void set_rlc_lte_drb_pdcp_seqnum_length(guint16 ueid _U_, guint8 drbid _U_, guint8 userplane_seqnum_length)
{
signalled_pdcp_sn_bits = userplane_seqnum_length;
}
void proto_register_rlc_lte(void)

View File

@ -84,6 +84,9 @@ typedef struct rlc_lte_tap_info {
} rlc_lte_tap_info;
/* Configure number of PDCP SN bits to use for DRB channels. */
void set_rlc_lte_drb_pdcp_seqnum_length(guint16 ueid, guint8 drbid, guint8 userplane_seqnum_length);
/*****************************************************************/
/* UDP framing format */