Files
openairinterface5g/openair2/RRC/LTE/MESSAGES
Cedric Roux e3782b5ca2 bugfix: fix PDCP sequence management (plus some cleanup)
With the introduction of X2AP into develop, the UEs now have to regularly
send measurement reports.

In the logs of the eNB, we see:

[OSA]   Mismatch found in integrity for algorithm 2,
        got e0.a0.c2.66, expecting a5.9c.cb.57
[PDCP]   [OSA][RB 1] eNB failed to validate MAC-I of incoming PDU

This is a bug in the PDCP layer that uses wrong parameters to compute the
integrity.

This commit fixes this bug.

The function pdcp_is_rx_seq_number_valid was removed. Its processing
has been directly integrated into the function pdcp_data_ind.

The function pdcp_mark_current_pdu_as_received is not called anymore.
Its processing was not used later on, so as of today, not calling it does
not introduce any functional change.

The function pdcp_validate_security takes now as parameters both
SN and HFN. Same for the function pdcp_get_next_count_rx.

Useless constants PDCP_SN_5BIT, PDCP_SN_7BIT and PDCP_SN_12BIT have been
removed.

The compilation option ENABLE_SECURITY has been removed. It's now always
on. (This may impact some use cases.)

The PDCP for DRB using RLC AM is not correct. It was not correct before
this commit (apart from the integrity bug). We should deal with a list
of PDUs and transmit packets to upper layers as detailed in the specs.
Today we transmit the PDU as soon as we get it. We don't care about
duplicates, in-order delivery, timeouts.

Also, we don't deal with "PDCP re-establishment". Not sure how that impacts
the software.

And, last but not least, there is still no ROHC.
2019-02-27 12:33:04 +01:00
..
2019-01-07 16:22:28 +01:00
2019-01-07 16:22:28 +01:00
2019-01-07 16:22:28 +01:00

This directory contains the necessary scripts and Makefiles to generate all the LTE configuration data structures based on the ASN.1 RRC
source code from the 36.331 RRC specifications.  These structures are used by MAC and PHY for configuration purposes.

It contains the following files

README.txt                                              : This file
Makefile.inc                                            : Makefile to be included by OpenAir compilation scripts for LTE Data structures
asn1c                                                   : Directory to place asn1c package
asn1c/ASN1_files/36331-860.txt                          : Text file containing 36.331-860 specifications used to generate ASN1 source 
asn1c/ASN1_files/extract_asn1_from_spec.pl              : Pearl script to extract ASN.1 source from 36311-860.txt
asn1c/ASN1_files/EUTRA-RRC-Definitions.asn              : First ASN.1 source (generated from above .txt file)
asn1c/ASN1_files/EUTRA-InterNodeDefinitions.asn .asn    : Second ASN.1 source (generated from above .txt file)
asn1c/ASN1_files/EUTRA-UE-Variables.asn                 : Third ASN.1 source (generated from above .txt file)

Instructions to build data structures from ASN1 sources 

The three files have already been built using the extract_asn1_from_spec.pl Pearl script.  This should be used again if a newer version
of the RRC spec is used to synthesize the data structures and encoding/decoding routines.  To do this:
   1. use Microsoft WORD to generate a text version of the 3GPP 36.331 document
   2. run the script on the text file to generate the three files.

Now download the asn1c utility (version 0.9.22) from 

http://lionet.info/asn1c/blog/

or via svn from sourceforge (version 0.9.22)

For version 0.9.2:
svn co https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk asn1c
For the latest version:
svn co https://github.com/vlm/asn1c/trunk asn1c

and put it in the asn1c directory (you should have a second asn1c directory now). Compile it and install it locally 
(or make sure your $PATH can find the asn1c executable) according to the instructions given (see INSTALL file)
by the author. We have validated that 0.9.22 works on Linux and Cygwin. To generate the data structures do the following from the 
current directory

asn1c -gen-PER -fcompound-names -fnative-types -fskeletons-copy ./asn1c/ASN1_files/EUTRA-RRC-Definitions.asn

Note this only uses one of the three files from 36.331 (the core of the RRC).  After this step you should have many .c and .h files 
and one new Makefile, the latter of which is not used.

If you want to compile the ASN1 sources as a kernel module you need to apply the patch asn1_patch 

patch -p1 < asn1_patch