Compare commits

...

1097 Commits

Author SHA1 Message Date
rdoost
2c230f83fe working tdd/fdd at 5 and 10 Mhz 2018-08-08 15:52:59 -05:00
rdoost
36d3e624ab soapy auto install 2018-03-28 11:44:55 -05:00
rdoost
af1f3e1ba9 merged with collab changes 2017-12-21 11:54:45 -06:00
rdoost
03decb04b2 adding mme addresses to conf file, added SF_DL check to TX, cosmetic changes to iris_lib 2017-12-21 11:31:41 -06:00
rdoost
23959b07f9 this might be needed for some systems that install libprotobuf-dev from apt 2017-12-20 14:30:27 -06:00
rdoost
21a4886ec5 inlined protobuf-3.3 installation in build_helper 2017-12-20 10:08:45 -06:00
rdoost
e0f5c97f37 fix antenna, added command line template file 2017-12-19 21:52:45 -06:00
rdoost
57009d1d63 fixing the printf for RAR timing advance 2017-09-28 21:27:49 -05:00
rdoost
63e21bee57 setting tx bandwidth to high value to stop limiting the power, also set bandwidth before setting other params because of an issue in soapy_iris 2017-09-28 17:56:30 -05:00
rdoost
e9878ad0d8 default value for navail_cards should be 1 2017-09-21 16:33:37 -05:00
rdoost
1788e576ec added get_Po_NOMINAL_PUSCH2 for read the actuall Po_Nominal_PUSCH, which is originally read from prach initial power 2017-09-21 16:01:28 -05:00
rdoost
3c21e1dd9b changed multi-iris support, by reading configs into config struct array for each iris, switched to 2.6 in conf for TDD, total antenna numbers are set in carrier conf and calculated for each iris in softmodem 2017-09-21 15:52:06 -05:00
rdoost
549deb02c3 implemented subframe processing flags in iris_lib 2017-09-19 12:53:28 -05:00
rdoost
dd2144d9c5 adding tm7 conf file for iris, better printfs in iris_lib 2017-09-15 15:43:51 -05:00
rdoost
5f55414a85 correctly tuned value for reference signal power in conf files 2017-09-12 09:26:17 -05:00
rdoost
38b121356c changed PUCCH and PUSCH and rach initial value, and 2.58G calibration gain offset 2017-09-09 18:48:56 -05:00
rdoost
82c707903b bugfix to allow enabling 1 antenna for each iris in a chain 2017-09-09 12:29:17 -05:00
rdoost
1249a45c76 added tcp mode to iris init, fixed iris tdd conf 2017-09-09 12:29:14 -05:00
rdoost
5441f4a29b added the driver type for Iris make to conf rrh_remote arg in conf file 2017-09-09 12:29:06 -05:00
rdoost
26ecfc766c cMerge branch 'feature-21-TM7' of https://bitbucket.org/rdoost/openairinterface5g into feature-21-TM7 2017-08-16 11:24:27 -05:00
rdoost
bd434cefa6 enable calib table if commandline argument is not present 2017-08-16 11:24:07 -05:00
rdoost
5c6d7c08fd Merge branch 'feature-21-TM7' of https://bitbucket.org/rdoost/openairinterface5g into feature-21-TM7 2017-08-16 10:25:36 -05:00
rdoost
e8e1610921 stupid changes in the conf file, num of antennas to 2, tdd same config as fdd 2017-08-16 10:25:21 -05:00
rdoost
0e3ba81be2 adding gain calib val to command line arguments 2017-08-16 10:22:41 -05:00
rdoost
7e9057d0a0 added SIGPIPE to the list of signals to be handled by main thread 2017-08-14 15:30:45 -05:00
rdoost
e0156a33db fix antenna prints 2017-08-14 15:04:07 -05:00
rdoost
e8ea78dd3a deactivate stream first in iris close 2017-08-14 11:06:46 -05:00
rdoost
a668f1f9f3 removing boost headers for iris driver 2017-08-11 09:37:15 -05:00
rdoost
0cd2d7ec29 applying Iris Eth PL changes, merging with eurecom commits 2017-08-11 09:22:34 -05:00
Xiwen JIANG
e5d7fac0d0 asn1c compliation problem + small changes in openair0_lib 2017-05-11 17:51:02 +02:00
Xiwen JIANG
aac0097b4b cosmetic changes 2017-05-11 15:12:47 +02:00
rdoost
5122853636 matching freq_offset setting after sync with calib-LimeSDR branch 2017-05-07 07:44:41 -05:00
Xiwen JIANG
101ffa079b Merge branch 'develop' into feature-21-TM7 2017-05-05 10:29:23 +02:00
rdoost
6347cb467e extended the driver to support multiple synchronized irises 2017-04-17 22:04:38 -05:00
rdoost
5ace923027 updated gain calibration values for other freqs, comment for iq_txshift 2017-04-17 18:44:35 -05:00
rdoost
7933623995 commented exit(). quick fix 2017-04-14 13:48:57 -05:00
rdoost
a5de2953e5 iq_txshift must be 4 since Iris expects the samples to be on the 12-bit msb 2017-04-14 12:27:58 -05:00
rdoost
b648355f52 changed iq_txshift var in the conf file to 0 2017-04-14 11:26:45 -05:00
rdoost
3c4e7898e2 iq_txshift variable was added 2017-04-14 11:22:04 -05:00
rdoost
7e9dfefb74 merging eurecom into my branch, changes after scan carrier mode 2017-03-29 13:25:22 -05:00
rdoost
d08675d8e8 fixes for ue-scan-carrier mode 2017-03-28 17:55:19 -05:00
rdoost
956dba6b2e working with 25 RBs and slowed down sample rate (1.25MHz) 2017-03-24 13:59:11 -05:00
rdoost
d34583e594 added rx gain calibaration values for Iris 2017-03-14 17:34:10 -05:00
Xiwen JIANG
2fa26a00a3 preparation for WSA Berlin demo 2017-03-14 12:12:32 +01:00
Xiwen JIANG
e956a3e98d Octave script for WSA demo 2017-03-13 16:54:15 +01:00
Xiwen JIANG
2e5a7fb7ce Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2017-03-13 16:44:43 +01:00
Xiwen JIANG
fa677d5c7a beamforming based on calibrated DLCSI (performance poor, to understand why) 2017-03-13 16:39:12 +01:00
Xiwen JIANG
54c9971991 EXMIMO card not reset after stop in calib scenario 2017-03-13 16:37:02 +01:00
Xiwen JIANG
204390b527 add VCD dump signal for compute DLCSI and beam weights calculation 2017-03-13 16:35:28 +01:00
Xiwen JIANG
5f403421a1 initialisation beamforming weights in lte_init.c and only in softmodem for phy-test mode 2017-03-13 16:26:17 +01:00
Argos
22c5d8246f conf file for TDD with iris 2017-03-07 16:12:03 -06:00
rdoost
b98612cf09 Merge branch 'feature-21-TM7' of https://bitbucket.org/rdoost/openairinterface5g into feature-21-TM7 2017-03-07 15:58:35 -06:00
rdoost
e808965259 added antenna selection for TDD support 2017-03-07 15:57:37 -06:00
Florian Kaltenberger
75d74384a3 adding config file for band 38, TM1, usrp 2017-03-06 13:49:42 +01:00
rdoost
997f794b58 added OAI_IRIS switch to RRC 2017-03-03 10:57:51 -06:00
rdoost
2be4325d23 changed IRIS to OAI_IRIS in the options list 2017-03-03 10:37:29 -06:00
Xiwen JIANG
8dc51127e8 card can be initialized in octave 2017-03-03 15:02:19 +01:00
rdoost
0793e25bf0 added OAI_IRIS to macros in scheduler prach etc, modified gain settings in iris driver 2017-03-02 14:05:50 -06:00
Xiwen JIANG
b28ae81949 Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2017-03-02 18:32:02 +01:00
Xiwen JIANG
b53959c11d add exmimo-tdd-workaround and tdd-recip-calib options into softmodem command line 2017-03-02 18:30:16 +01:00
Clay
7f9a1f1ba2 Fixed gains 2017-02-28 05:33:10 -06:00
Argos
456fde07d1 bug from last commit (no tx offset) 2017-02-28 05:25:48 -06:00
Argos
b74f7232ef TX gains were set to RX gains. 2017-02-28 05:18:25 -06:00
rubuntun
efb2eb37aa added frequency set thread 2017-02-27 23:31:16 -06:00
rubuntun
42702a0eb7 added frequency set thread 2017-02-27 23:20:17 -06:00
Clay
588e976f25 Merge branch 'feature-21-TM7' of https://bitbucket.org/rdoost/openairinterface5g into feature-21-TM7 2017-02-27 15:07:02 -06:00
Clay
21c0a919c9 Missed one of the tx_sample_advance. 2017-02-27 15:05:16 -06:00
Argos
65bd3d5d37 Updated conf to have 1 antenna for now. Updated lte-softmodem.c to always take tx_sample_advance from the command line arguments. 2017-02-26 18:44:47 -06:00
Clay
5d790cb169 Allow tx_sample_advance to be set from command line (UE) or conf file (eNB), and not be overriden in driver. 2017-02-26 15:31:04 -06:00
Clay
54ee3b5c7d Fixed bug where samps pointer could be overwritten in the middle of a read causing a crash. 2017-02-26 06:19:20 -06:00
Clay
c0865be301 Some minor changes to iris_lib.cpp, added command line switch for setting UE remote address (Iris serial) 2017-02-26 04:20:16 -06:00
rubuntun
faa66870d4 connect to the Iris through its serial number in the conf file 2017-02-25 17:16:30 -06:00
rubuntun
d099683711 bugfix timestamp interpolation 2017-02-25 16:25:45 -06:00
rubuntun
1a6c02872a driver for Iris boards and proper changes in the makefiles 2017-02-25 14:56:05 -06:00
Florian Kaltenberger
035fc74cf6 reducing max uplink MCS 2017-02-24 11:31:19 +01:00
Xiwen JIANG
31413ac5f6 TDD workaround for EXMIMO2 card works!!! 2017-02-23 17:43:52 +01:00
Florian Kaltenberger
87365655ef Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2017-02-20 13:54:33 +01:00
Florian Kaltenberger
0741506896 initialization for phy-test mode 2017-02-20 13:53:12 +01:00
Florian Kaltenberger
25ba390a12 enabling UL transmission for TDD in phy-test mode 2017-02-20 13:50:07 +01:00
Florian Kaltenberger
98d87318a8 disabling avx2 for ulsch decoding until real bug is found 2017-02-20 13:49:34 +01:00
Florian Kaltenberger
37f904baca bugfix: bundling flag was initialized after its use 2017-02-20 13:48:54 +01:00
Xiwen JIANG
4332768698 TDD workaround (unfinished) 2017-02-17 12:06:06 +01:00
Florian Kaltenberger
22868cc19b scheduling also UL SF 4 in TDD mode 3 2017-02-16 17:34:20 +01:00
Florian Kaltenberger
1e917c975d sending full rx signal to T in TDD mode 2017-02-16 17:33:43 +01:00
Florian Kaltenberger
774747e361 added comment 2017-02-16 17:33:13 +01:00
Florian Kaltenberger
af939a5bdc updating gtkwave config file for exmimo 2017-02-16 12:10:25 +01:00
Florian Kaltenberger
7c72d6accc small fixes 2017-02-16 12:10:25 +01:00
Xiwen JIANG
c6f1c2cea7 undo UE spec pilot allocation bug fix and undo TDD workaround 2017-02-15 18:22:54 +01:00
Xiwen JIANG
04029ab0e8 revert bug fix for ue spec pilot allocation in dlsch_modulation 2017-02-15 11:11:10 +01:00
Xiwen JIANG
fe83daa454 add lock to thread pool start 2017-02-15 11:10:32 +01:00
Xiwen JIANG
d559d9ec4b small bug fix 2017-01-12 19:30:19 +01:00
Xiwen JIANG
f4271d883c TDD workaround should only be done for EXMIMO 2017-01-12 15:53:35 +01:00
Florian Kaltenberger
29484a8907 initializing N_TA_offset for TDD eNB. Fixes issue 184. 2017-01-12 15:02:19 +01:00
Xiwen JIANG
3021e873ba add TDD reciprocity calibration into phy_procedures_eNB 2017-01-11 16:11:21 +01:00
Xiwen JIANG
fc27ad564a initialisation of txdata_1_4_fs 2017-01-11 16:10:43 +01:00
Xiwen JIANG
edf8e6ae98 TDD workaround for EXMIMO2 card 2017-01-10 16:55:07 +01:00
Cedric Roux
8d3368b79d Merge branch 'develop_integration_wk01' into 'develop'
Develop integration wk01

See merge request !74
2017-01-09 22:54:12 +01:00
Xiwen JIANG
57fdcd5807 replace the conjugate vector multiplexing with direct vector multiplexing 2017-01-09 17:19:15 +01:00
Cedric Roux
bfecb5e54a T: add PHY throughput view to enb tracer 2017-01-09 17:08:30 +01:00
Rohit Gupta
9162c069d1 test setup v2: fix bad throughput for bandirch dongle
The throughput for the bandrich dongle was limited to 13Mb/s in downlink
UDP with iperf, with lots of packets lost (we sent 15Mb/s). TCP was
working fine.

Replacing /dev/ttyUSB2 by /dev/ttyUSB0 for wvdial solves the issue.

We also had to have separate data/control links. (See bandrich.txt
in cmake_targets/autotests/v2/actions for full details.)
2017-01-09 16:49:16 +01:00
gabrielC
78efb33243 Log clean up 2017-01-09 16:42:01 +01:00
Xiwen JIANG
e7acad26b7 bug fix in the receiver for UE spec RS demodulation 2017-01-09 16:41:50 +01:00
Cedric Roux
f16fe1423e integration bugfix: phich_subframe2_pusch_subframe is wrong
calling the function for FDD case executed code for TDD case.
2017-01-09 10:11:36 +01:00
Xiwen JIANG
c03803dac0 Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2017-01-08 18:23:28 +01:00
Xiwen JIANG
9869dfbf5c bug fixed for UE spec pilot allocation in subframe 0 2017-01-08 18:22:11 +01:00
Florian Kaltenberger
57599edf8f reduced the max number of antenna ports to 6 to save memory (we are not using antenna port >5 anyway)
mult_cpx_conj_vector can now also do multiply add
beam_precoding now uses mult_cpx_conj_vector
2017-01-08 14:52:29 +01:00
Cedric Roux
40add2d572 Merge remote-tracking branch 'origin/various-fixes-2016-w50' into develop_integration_wk01 2017-01-06 18:03:32 +01:00
Cedric Roux
4f235bb83e test-setup: minor bugfix 2017-01-06 18:00:44 +01:00
Cedric Roux
1f95f48f41 first version of v2 test setup
The old one is still usable by replacing .gitlab-ci.yml with
the previous version.
2017-01-06 17:48:35 +01:00
Cedric Roux
3f4a993e9f fix compilation order of lapack
As reported on the mailing list, there was a problem
for some users. The link phase of building the simulators
was giving the error "undefined reference to ATL_scopy".
2017-01-06 11:54:49 +01:00
Cedric Roux
b29f6bc7e5 Merge branch 'bugfix-178' into develop_integration_wk01
Conflicts, manually resolved.

Conflicts:
	openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c
2017-01-06 11:16:02 +01:00
Cedric Roux
e05bf365be Merge branch 'bugfix-177' into develop_integration_wk01
Smoe conflicts, manually resolved.

Conflicts:
	openair1/SCHED/phy_procedures_lte_ue.c
2017-01-06 11:12:06 +01:00
Cedric Roux
217eba6b6e Merge branch 'bugfix-176' into develop_integration_wk01
There were some conflicts, manually resolved.

Conflicts:
	openair1/PHY/LTE_TRANSPORT/dci_tools.c
	openair1/SCHED/phy_procedures_lte_ue.c
2017-01-06 11:04:39 +01:00
Cedric Roux
de665ee4e3 Merge branch 'exmimo2_firmware' into develop_integration_wk01 2017-01-06 10:54:37 +01:00
Cedric Roux
ce9b316da2 Merge branch 'bugfix-164' into develop_integration_wk01 2017-01-06 10:52:35 +01:00
Cedric Roux
02ecf9fd45 Merge branch 'bugfix-156' into develop_integration_wk01 2017-01-06 10:47:18 +01:00
Cedric Roux
6bba411e1b Merge branch '148-bugfix-Expressmimo2-driver' into develop_integration_wk01 2017-01-06 10:45:18 +01:00
Wilson W.K. Thong
4bdd700a38 skip the RLC PDU if its header is found invalid
see issue #178
2017-01-06 14:21:44 +08:00
Wilson W.K. Thong
4fe2d6d724 fix noise power calculation and downlink CQI reporting
see issue #177
2017-01-06 12:08:51 +08:00
Wilson W.K. Thong
2e7c28a591 fix incorrect PUCCH format causing no SR received by eNB in TDD
fix incorrect fss_pusch calculation
fix the incorrrect HARQ-PID checking
remove incorrect checking on downlink DCI HARQ PID value
fix incorrect downlink ACK/NACK feedback procedures in TDD
fix no activating PDSCH decoding when DL-DCI is indicating a downlink retransmission

see issue #176
2017-01-06 12:01:05 +08:00
Raymond.Knopp
23fc8fdb26 patch for ulsch_decoding.c to fix alignment issue on demultiplexing 2017-01-05 08:22:29 +01:00
Raymond.Knopp
a190005316 fixes for SRB2 in MAC/RRC. 2017-01-05 08:19:28 +01:00
Florian Kaltenberger
8effdc36a7 adding latest EXMIMO2 firmware (from end 2015) to this repository 2017-01-03 15:18:28 +01:00
Xiwen JIANG
cea1cfcd8f reduce beamforming weights normalisation shift value 2017-01-02 15:55:29 +01:00
Xiwen JIANG
453b2fd276 add getenv for calib file 2016-12-22 17:40:33 +01:00
Xiwen JIANG
32afd57439 tdd calibrattion working for dlsim_tm7 2016-12-22 16:32:10 +01:00
hbilel
6f9ba77bd8 Merge branch 'T-tracer-branch' into develop_integration_wk01
Conflicts:
	openair1/SCHED/phy_procedures_lte_ue.c
2016-12-22 11:36:23 +01:00
hbilel
759f5f751f [OAI-UE] 1- ignore bad dci
2- reset dataTx buff correctly
           3- pucch/pusch power control fix
2016-12-22 11:18:29 +01:00
hbilel
a1f25f073c [OAI-UE] T-tracer for UE, more traces 2016-12-22 11:09:57 +01:00
Cedric Roux
f24068c2a4 remove annoying and misleading error message
People are complaining on the mailing list about this.
It's not an error to receive a retransmission.
2016-12-22 10:08:51 +01:00
Xiwen JIANG
152ecfbea9 Merge branch 'develop' into feature-21-TM7
Conflicts:
	targets/RT/USER/lte-enb.c
2016-12-21 11:05:40 +01:00
Xiwen JIANG
7f63f23fc0 TDD DL channel calibration (not finished) 2016-12-21 10:46:22 +01:00
Wilson W.K. Thong
6b79dc9ac3 fixing crash due to de-qeueueing the same PDCP SDU twice by two different threads
see issue #164
2016-12-21 17:20:14 +08:00
Wilson W.K. Thong
dfc537ff3d add logs and asserts to catch the double dequeue of the same head PDCP SDU from pdcp_sdu_fifo during flushing
see issue #164
2016-12-21 17:20:14 +08:00
Wilson W.K. Thong
a513f8bc39 hotfix logs on multi-threading 2016-12-21 17:20:14 +08:00
Wilson W.K. Thong
dabdf7933b add more logs to debug memory leak problem 2016-12-21 17:20:14 +08:00
Wilson W.K. Thong
afeb256604 add more VCD logs to debug thread timing issue
see issue #166
2016-12-21 16:55:46 +08:00
Wilson W.K. Thong
8673fa8415 hotfix VCD log dump for thread timing debugging
see issue #165
2016-12-21 16:28:50 +08:00
Wilson W.K. Thong
3dabb5447a fixing thread busy crash: disabled timing consuming NAS logs
see issue #165
2016-12-21 16:28:50 +08:00
Wilson W.K. Thong
210cbd60ef fixing thread busy crash: add more error checking to catch timing issues
see issue #165
2016-12-21 16:28:50 +08:00
hbilel
8d2bb6cbc2 [OAI-UE] fix pusch/pucch power control part 1 2016-12-20 11:44:18 +01:00
hbilel
127f1a9438 [OAI-UE] UE T-tracer updates part 3 2016-12-20 11:26:59 +01:00
hbilel
619d34d781 [OAI-UE] UE T-tracer updates part 2 2016-12-19 18:05:59 +01:00
hbilel
d9255b5c72 [OAI-UE] T-tracer UE updates 2016-12-19 17:42:09 +01:00
hbilel
378020ce97 adapt oai-ue to t tracer part 2 2016-12-19 17:34:59 +01:00
hbilel
15a1af31db [OAI-UE] adapt T-tracer to support OAI-UE 2016-12-19 17:34:27 +01:00
Cedric Roux
3bf8768d1b Merge branch 'develop_integration_w50' into 'develop'
Develop integration w50

See merge request !61
2016-12-19 15:03:07 +01:00
Cedric Roux
5ebdbf9f2d integration fix: align32 missing (NOT DEFINITIVE!)
We have a crash:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff7387d700 (LWP 1944)]
ulsch_decoding (eNB=eNB@entry=0x7fffaf73b010, proc=proc@entry=0x7fffaf73b480,
    UE_id=UE_id@entry=0 '\000',
    control_only_flag=control_only_flag@entry=0 '\000',
    Nbundled=<optimised out>, llr8_flag=<optimised out>)
    at /roux/merge/openairinterface5g/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c:1450
1450          *((__m256i *)&ulsch_harq->e[iprime]) = *((__m256i *)&y[j2]);

This commit reduces the apparition of the crash, but does not
eliminate it completely.

To be fixed after integration.
2016-12-19 12:25:35 +01:00
Cedric Roux
66c292b95b integration fix: update T messages 2016-12-19 11:19:05 +01:00
Cedric Roux
2a62db97e6 Merge remote-tracking branch 'origin/develop' into develop_integration_w50 2016-12-16 22:47:18 +01:00
Florian Kaltenberger
a525be94c3 changing antenna number back to 1 2016-12-15 17:25:15 +01:00
Xiwen JIANG
a0ffbdd7c4 some code optimisationsi; beamforming weights normalisation 2016-12-15 14:39:11 +01:00
gabrielC
f79dd53edf Merge remote-tracking branch 'origin/feature-21-TM7-tmp' into develop_integration_w50 2016-12-15 11:39:04 +01:00
Wilson W.K. Thong
d11a22aa8d added more logs for debugging false DCI0 2016-12-15 17:26:35 +08:00
Wilson W.K. Thong
fce9f0b5d5 avoid detecting DCI0 at subframes where no DCI0s are sent by eNB. This happens only in TDD mode
issue !156
2016-12-15 16:57:21 +08:00
gabrielC
089eb06a59 Merge branch '147-phy-test-mode-error-msg-dl-received-harqretx-round-1' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop_integration_w50
correct issue 147 : --phy-test mode : error msg " DL Received HarqReTx round=1 m
2016-12-14 15:56:37 +01:00
Benoit ROBERT
abfc21ad28 Merge branch '147-phy-test-mode-error-msg-dl-received-harqretx-round-1' of https://gitlab.eurecom.fr/oai/openairinterface5g into 147-phy-test-mode-error-msg-dl-received-harqretx-round-1 2016-12-14 15:53:48 +01:00
ROBERT Benoit
17d62a6777 correct issue 147 : --phy-test mode : error msg " DL Received HarqReTx round=1 mcs=28 rballoc=8191 rv=0 " 2016-12-14 15:53:26 +01:00
gabrielC
2164f7cd03 Merge branch '146-phy-test-mode-udate-fill_dci' into develop_integration_w50
Problem in DCI NDI : the implementation use 5 HARQ processes, but process 0 N…
2016-12-14 15:50:18 +01:00
Benoit ROBERT
4622ba134f Merge branch '146-phy-test-mode-udate-fill_dci' of https://gitlab.eurecom.fr/oai/openairinterface5g into 146-phy-test-mode-udate-fill_dci 2016-12-14 15:32:23 +01:00
ROBERT Benoit
82437cccb7 - Problem in DCI NDI : the implementation use 5 HARQ processes, but process 0 NDI never toggled because it was reused on subframe 5 that is not carrying format 1 DCI. Fix -> use 8 harq processes instead of 5.
- SI scheduled on every subframe 5 (even and odd frames) instead of only on even frames
 - Add DLSCH scheduling on subframe 5 for odd frames
 - change default rballoc from 0x7FFF to 0x1FFFF to support maximum 10MHz throughput
2016-12-14 15:29:33 +01:00
gabrielC
9044dc3535 Merge remote-tracking branch 'origin/issue-154-PDCP_FIFO_NETLINK' into develop_integration_w50
PDCP fix
2016-12-14 14:46:00 +01:00
Benoit ROBERT
2f3483d1d3 correct issue 154 on PDCP fifo for noS1 mode 2016-12-14 12:26:01 +01:00
gabrielC
1167dd6b33 ue autotest merge part2 2016-12-14 10:16:54 +01:00
gabrielC
9fa556ffbf Merge branch 'Enhancement-142-OAI_UE_autotest_framework' into develop_integration_w50 2016-12-14 10:05:19 +01:00
gabrielC
af68b3974b Merge branch 'Enhancement-142-OAI_UE_autotest_framework', tag '2016.w49' of https://gitlab.eurecom.fr/oai/openairinterface5g into Enhancement-142-OAI_UE_autotest_framework 2016-12-14 10:02:32 +01:00
Xiwen JIANG
cd2a5347d1 intergrate estiamte_DLSCI_from_ULCSI into dlsim_tm7 2016-12-13 17:41:11 +01:00
hbilel
ca078ff549 fix compilation error 2016-12-13 17:38:43 +01:00
hbilel
7a92f587e5 Merge branch 'ue-tdd_fix_issueOai1B_45' into develop_integration_w50 2016-12-13 12:51:05 +01:00
hbilel
595db57af0 Merge branch 'ue-tdd_fix_issueOai1B_44' into develop_integration_w50
Conflicts:
	targets/RT/USER/lte-ue.c
2016-12-13 12:50:47 +01:00
hbilel
1b07582ce4 Merge branch 'ue-tdd_fix_issueOai1B_43' into develop_integration_w50 2016-12-13 12:49:41 +01:00
hbilel
e227a12736 Merge remote-tracking branch 'oai1B/bugfix-42' into ue-tdd_fix_issueOai1B_42 2016-12-13 12:41:10 +01:00
hbilel
495e357a1e Merge branch 'develop1B' of https://gitlab.eurecom.fr/oai1B/openairinterface5g into enhancement-45
Conflicts:
	openair2/LAYER2/MAC/ue_procedures.c
2016-12-13 12:31:45 +01:00
hbilel
35ae311ac8 Merge branch 'develop1B' of https://gitlab.eurecom.fr/oai1B/openairinterface5g into bugfix-44 2016-12-13 12:27:41 +01:00
hbilel
be28fd3352 Merge branch 'develop1B' of https://gitlab.eurecom.fr/oai1B/openairinterface5g into bugfix-43
Conflicts:
	targets/RT/USER/lte-softmodem.c
2016-12-13 12:26:37 +01:00
Chia-Yu Chang
01c50449c3 fix the AVX2 compilation directive 2016-12-12 18:43:37 +01:00
Chia-Yu Chang
7f4c961d82 add T messages for FLEXRAN and fix a complication error in FLEXRAN 2016-12-12 18:41:26 +01:00
Cedric Roux
8f6746beae Merge branch 'develop1B_integration_w49' into 'develop'
Develop1 b integration w49

See merge request !56
2016-12-12 16:02:21 +01:00
hbilel
17aefade3f remove temporary harq process for ue (ul) 2016-12-12 12:48:48 +01:00
hbilel
e0bf855fbf initialize max retans tx Mlimit 2016-12-12 12:12:27 +01:00
hbilel
e04e8a62cc remove mac-struct usage from phy 2016-12-12 11:45:22 +01:00
Cedric Roux
5976ea4a95 hotfix: attempt for a better gitlab CI setup
Not sure it's the right thing to do, but this commit
should reduce fake builds.
2016-12-12 09:22:50 +01:00
Cedric Roux
a574c3d31b integration fix: wrong license 2016-12-12 09:22:01 +01:00
Xiwen JIANG
f50df1bfe2 small bug fix on timeoffset antenna index 2016-12-09 18:30:45 +01:00
Cedric Roux
0a9d013f59 integration fix: LOG_I/LOG_D do not exist when compiling at_nas_ue
Use LOG_TRACE instead.
2016-12-09 17:47:49 +01:00
Cedric Roux
8db3583b09 integration fix: add usim_test to at_nas 2016-12-09 17:47:29 +01:00
ROBERT Benoit
3750ebc2d6 Update UE autotest testsuite for OAI1B develop1B_integration_w49 branch 2016-12-09 16:13:06 +01:00
ROBERT Benoit
d31b6ef83b Merge remote-tracking branch 'origin/develop' into Enhancement-142-OAI_UE_autotest_framework 2016-12-09 16:06:17 +01:00
Cedric Roux
46b2ee9577 integration fix: attempt to clarify ODD_PARITY
This may need to be refined.

The variable ODD_PARITY is defined at various places,
with different values, causing compilation warnings.

It's wrong to define a variable with different values.

A new variable is created, specific to IMEI case: IMEI_ODD_PARITY.
Maybe ODD_PARITY should also have 0xf as value, and so maybe only
one variable is necessary. To be checked at some point...
2016-12-08 17:51:02 +01:00
Cedric Roux
752ceb1922 integration fix: remove compilation warnings 2016-12-08 17:49:56 +01:00
Cedric Roux
497e89d97e integration fix: bugfix: wrong enum used 2016-12-08 17:48:56 +01:00
Cedric Roux
e4a84606b9 integration fix: send SRS configuration to UE only if SRS active
Manually testing with the Samsung Galaxy Note 4 failed,
probably because the phone didn't like to receive SRS
configuration.

Let's send it only if activated.
2016-12-08 17:09:39 +01:00
Cedric Roux
179ff73658 integration fix: use old CMakeLists.txt
Another way to set those two variables has to be used for the
specific UE case (use a sub CMakeLists.txt, see in build_oai).
2016-12-08 16:47:30 +01:00
gabrielC
bd30471076 [OAI-UE] merge com4Innov branch to integration branch 2016-12-08 11:07:38 +01:00
Xiwen JIANG
697c4a0e33 cosmetic changes 2016-12-07 19:03:37 +01:00
Xiwen JIANG
8fbdd3986b bugfixes for EXMIMO driver 2016-12-07 18:42:28 +01:00
Xiwen JIANG
9c687b8421 use thread_pool in do_OFDM_mod_rt 2016-12-07 16:29:50 +01:00
ROBERT Benoit
18c3a32321 correct issue #148 - protect whatchdog thread mutex unlock 2016-12-07 12:17:55 +01:00
Florian Kaltenberger
e470e2d3bd Merge remote-tracking branch 'origin/develop' into feature-21-TM7-tmp
Conflicts:
	targets/RT/USER/lte-enb.c
2016-12-07 09:40:20 +01:00
Wilson W.K. Thong
e6671827bb clean up changes for submission 2016-12-07 14:42:26 +08:00
Wilson W.K. Thong
05a261ae66 further clean up changes for change submission 2016-12-07 14:35:50 +08:00
Wilson W.K. Thong
55e50b2052 enhanced wireshark logging. also logs BCH, PRACH and RAR. Tested with wireshark 2.2.2 on linux and windows
see issue #45
2016-12-07 10:45:44 +08:00
Wilson W.K. Thong
4041a661fc fixed incorrect wiresahrk SFN/SF for UL/DL data 2016-12-07 10:43:47 +08:00
Wilson W.K. Thong
488b84cb46 fixing thread busy crash: disabled timing consuming NAS logs
see issue #44
2016-12-07 10:39:57 +08:00
Wilson W.K. Thong
53777043c3 fixed PRACH TA default value in TDD mode
see issue #43
2016-12-07 10:30:55 +08:00
Wilson W.K. Thong
6c6d20b622 added logging to debug PRACH 2016-12-06 21:11:14 +08:00
gabrielC
0fb34b2e28 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop1B 2016-12-06 12:05:25 +01:00
Fabrice Nabet
3a3a699bc5 Merge branch 'BSR_fixes_fabrice' into 'develop1B'
Bsr fixes fabrice

Merge feature BSR stabilization to develop1B

See merge request !15
2016-12-06 11:28:59 +01:00
Xiwen JIANG
a432a7c121 use do_OFDM_mod_symbol in do_OFDM_mod_thread 2016-12-06 10:59:44 +01:00
Cedric Roux
bf5bf8ba04 Merge branch 'feature-68-enb-agent' into 'develop'
Feature 68 enb agent



See merge request !47
2016-12-06 09:52:42 +01:00
Wilson W.K. Thong
086520f50e clean up changes for change submission
issue #42
2016-12-06 11:15:58 +08:00
Wilson W.K. Thong
675e0b10cb fixing thread busy crash: fixed incorrect processing of special-subframe
TX as a normal TX
2016-12-06 10:34:08 +08:00
Wilson W.K. Thong
8daa6897e9 fixing thread busy crash: add more error checking to catch timing issues 2016-12-06 10:34:08 +08:00
Wilson W.K. Thong
4a0e4b5e14 fixing thread busy crash: add more VCD logs to debug timing issues 2016-12-06 10:34:07 +08:00
Wilson W.K. Thong
81daba1931 Revert "enabled extra logs"
This reverts commit 5466562b16d70f2729f6103e1c0d3ee619470191.
2016-12-06 10:28:11 +08:00
Wilson W.K. Thong
e1b9533200 enabled extra logs 2016-12-06 10:28:10 +08:00
Wilson W.K. Thong
ae253f45b2 added more logs to debug missing SI-RNTI DCIs 2016-12-06 10:28:10 +08:00
Wilson W.K. Thong
726a543abf fixed missing a slot_fep() processing on the 1st OFDM symbol of the first DL subframe after UL, causing no SI-RNTI DCI detected 2016-12-06 10:28:10 +08:00
Xenofon Foukas
8def47c488 Changed old licenses in FlexRAN agent source files 2016-12-05 22:04:12 +02:00
Xenofon Foukas
a2acf0a98f Merge remote-tracking branch 'origin/develop' into feature-68-enb-agent 2016-12-05 21:40:10 +02:00
Xiwen JIANG
1a785e30a6 fix thread pool to make dlsim compile 2016-12-05 18:57:00 +01:00
Xiwen JIANG
918880e8ae Merge branch 'feature-21-TM7-tmp' into feature-21-TM7 2016-12-05 18:56:14 +01:00
Cedric Roux
9a0f32aa1d T: add 'throughputlog' logger
Normally it is used to display throughput.

The computation it does is to sum up the wanted value for the last
second (1000 TTIs) and send this value to the views associated to
this logger, at each TTI.
2016-12-05 17:58:16 +01:00
Xiwen JIANG
41582eb340 fix compliation problems for unitary tests 2016-12-05 17:56:58 +01:00
Cedric Roux
2270dae1e7 T: new view 'scolltti'
This view is used to display throughput (to come in next commits).
2016-12-05 17:49:03 +01:00
Cedric Roux
5b6a83fc7f T: some work on XY plot
- change paint function:
  when the XY plot is resized we scale. Previously
  the last range was put in the middle of the new range
  (say when we increase the size).
  We may get aspect ratio changes if the resize is not identical
  vertically and horizontally, but I think this behaviour is more
  'natural'.
- fix a bug:
  the last horizontal tick label was printed to far on the right,
  out of the bouding box of the XY plot. This is not totally fixed
  in the case the label is larger than the XY plot. Now the part
  out of the bounding box will be printed on the left. No big deal,
  make the plot big enough. (Before, even if big enough you had a
  problem.)
- add a new vertical tick display, to be used for throughput mostly.
  See in enb.c the difference between 'input signal' and throughput
  plots (those throughput plots will come in later commits).
2016-12-05 17:37:22 +01:00
Cedric Roux
bff8e40d00 T: add widget 'textarea'
It's like a label but with fixed dimensions and maximum
characters' capacity at creation time.
2016-12-05 17:30:13 +01:00
Xiwen JIANG
946fcad68c add thread_pool files 2016-12-05 17:10:57 +01:00
fnabet
bc032392c9 add workarounds for OAI issues 2016-12-05 16:51:27 +01:00
ROBERT Benoit
f52a2c9583 correct issue 147 : --phy-test mode : error msg " DL Received HarqReTx round=1 mcs=28 rballoc=8191 rv=0 " 2016-12-05 15:41:47 +01:00
Cedric Roux
031a72de7d T: new function 'bps'
This function is used to print rates (say '1kb/s' or '16Mb/s').
2016-12-05 15:08:27 +01:00
Cedric Roux
d7831c1f57 T: add TBS to ENB_PHY_DLSCH_UE_DCI 2016-12-05 14:52:12 +01:00
Xiwen JIANG
c57a990fb5 Merge branch 'develop' into feature-21-TM7 2016-12-02 18:01:11 +01:00
Rohit Gupta
a78ef7c932 minor fixes for 0257+ test cases 2016-12-02 14:56:21 +01:00
ROBERT Benoit
62e235ac3e Merge remote-tracking branch 'origin/develop' into 146-phy-test-mode-udate-fill_dci 2016-12-02 11:54:26 +01:00
Rohit gupta
0640959560 minor fixes for 0257* test cases 2016-12-02 07:54:02 +01:00
Rohit Gupta
05c635311d fix for 0157 test cases 2016-12-02 07:20:43 +01:00
Rohit Gupta
7c9a3311e7 minor fixes to OAI UE/OAI EPC test cases 2016-12-01 22:24:04 +01:00
Rohit Gupta
f4b93cdc12 [Gitlab CI] Add OAI UE to autotests 2016-12-01 19:37:48 +01:00
Xiwen JIANG
c20b26f25b Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2016-12-01 18:00:16 +01:00
Xiwen JIANG
a60c4f032c using thread pool to parallize the precoding and ifft for each phy antenna in dlsim 2016-12-01 17:58:34 +01:00
ROBERT Benoit
f22e56ee6d - Problem in DCI NDI : the implementation use 5 HARQ processes, but process 0 NDI never toggled because it was reused on subframe 5 that is not carrying format 1 DCI. Fix -> use 8 harq processes instead of 5.
- SI scheduled on every subframe 5 (even and odd frames) instead of only on even frames
 - Add DLSCH scheduling on subframe 5 for odd frames
 - change default rballoc from 0x7FFF to 0x1FFFF to support maximum 10MHz throughput
2016-12-01 16:31:05 +01:00
Florian Kaltenberger
58f79f89ca undoing a previous change 2016-12-01 15:53:44 +01:00
Cedric Roux
ce1e9cb15a T: bugfix: bad order of parameters in function declaration 2016-12-01 13:16:49 +01:00
Cedric Roux
53ccc0e7ad T: minor bugfix - bad argument type in log 2016-12-01 13:15:34 +01:00
Florian Kaltenberger
3414018735 config files update 2016-12-01 11:38:10 +01:00
Florian Kaltenberger
c2c26bd2f0 Merge remote-tracking branch 'origin/develop' into feature-21-TM7
Conflicts:
	targets/RT/USER/lte-enb.c
2016-12-01 11:37:15 +01:00
Cedric Roux
cae34e0f4d T: minor fix - wrong comments 2016-12-01 11:08:13 +01:00
Cedric Roux
f89c70dfc3 T: change range of DL/UL MCS plots
[-1 29] was not very pleasant for MCS 28 or no DCI (value is -1 in this case).
[-2 30] looks better.
2016-11-30 18:03:49 +01:00
Cedric Roux
cbc2164e50 T: bugfix: vertical tick was off by 1 pixel
The problem was visible when DL MCS was set to 20
(do a ping -c 192.172.0.1 -i0.2 to get it). The dots
were not plotted at the exact line of the tick mark.

Not sure the fix is always correct.

No big deal anyway.
2016-11-30 18:01:17 +01:00
Cedric Roux
1e485b4b5e T: add DL and UL MCS plots in enb.c
Helps visualize MCS usage over time.
2016-11-30 16:39:49 +01:00
Cedric Roux
a016cb7589 T: new logger ticked_ttilog
A new logger is there: the "ticked TTI logger".
Similar to TTI logger (used by the PUCCH1 energy plot)
but takes another input, the "tick" (think subframe)
and a default value for when no event is triggered between
two ticks.

This is used for the UL and DL MCS plots in enb.c (next commit).
2016-11-30 16:32:29 +01:00
Cedric Roux
7adc4703be T: update traces
- add mcs to ENB_PHY_DLSCH_UE_DCI
- add mcs, round, first_rb, nb_rb, TBS to ENB_PHY_ULSCH_UE_DCI
2016-11-30 16:29:14 +01:00
Florian Kaltenberger
cf17832024 updating my config files 2016-11-30 15:49:05 +01:00
Florian Kaltenberger
e1c4e78b69 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop 2016-11-29 17:21:18 +01:00
Florian Kaltenberger
31541601ce fixes for tdd (N_TA_offset was not initialized) + some other code cleanup
tested with both EXMIMO and USRP. performance better than in master branch.
2016-11-29 17:19:14 +01:00
hbilel
ea7c0e1b36 reduce BSR logging 2016-11-29 15:26:57 +01:00
GabrirelCouturier
b80ce3510e BSR and MAC UL encoding fixes 2016-11-28 19:27:25 +01:00
Cedric Roux
860394244b T: bugfix: lock required
When the user clicks on "next UE" or "prev UE" we change the
filters of loggers.

At the same time, the main thread of enb.c processes events
received from the soft-modem and uses the filters, some of them
maybe in the process of being changed.

Changing the filters is not atomic and has to be protected.
2016-11-28 18:28:10 +01:00
Florian Kaltenberger
28923dc8e2 fixing bug introduced in 5c5c336300 2016-11-28 13:58:41 +01:00
Florian Kaltenberger
a4f8fff92b Merge remote-tracking branch 'origin/develop' into feature-21-TM7
Conflicts:
	targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
2016-11-28 12:56:13 +01:00
hbilel
710a246596 enhance BSR log 2016-11-28 10:55:00 +01:00
hbilel
001cf13632 Merge branch 'develop1B' of https://gitlab.eurecom.fr/oai1B/openairinterface5g into BSR_fixes_fabrice 2016-11-28 10:38:27 +01:00
hbilel
ca2aeaccb8 BSR and MAC multiplexing fixes 2016-11-28 10:36:46 +01:00
Bilel
9bea08ab65 Merge branch 'bugfix-35-36-37' into 'develop1B'
[OAI-UE] fixes for issue#35 issue#36 issue#37

1-issue#35: miss dci detection
2-issue#36: ack/nack on pusch are badly encoded
 3-issue#37: ack/nack are sent on pucch instead of pusch

See merge request !13
2016-11-28 10:24:45 +01:00
GabrirelCouturier
6e21152fac [OAI-UE] fixes for issue#35 issue#36 issue#37
1-issue#35: miss dci detection
           2-issue#36: ack/nack on pusch are badly encoded
           3-issue#37: ack/nack are sent on pucch instead of pusch
2016-11-28 10:21:01 +01:00
Cedric Roux
ee934102b6 T: switch UE in enb tracer
Just below the logo you see the current UE, eg. [UE 0],
and near that you have two "buttons" [prev UE] and [next UE].

You click with left button of mouse on those and the various
plots that depend on the UE are now done for the new UE (say UE 1
instead of UE 0 if you click on [next UE]).

The plots are not cleared when you switch.
Let's say it's a feature.
2016-11-25 17:19:33 +01:00
Cedric Roux
484cad2431 T: add function xy_plot_set_title 2016-11-25 17:17:39 +01:00
Cedric Roux
8eeebdaf98 T: add function label_set_text 2016-11-25 17:17:16 +01:00
Cedric Roux
0bb875d9c2 T: free previous filter in logger_set_filter 2016-11-25 17:15:25 +01:00
Cedric Roux
956135f9a3 T: add mechanisms to free filters 2016-11-25 17:14:40 +01:00
Florian Kaltenberger
426e6cd74b bugfix for TDD: special subframe was not transmitted. 2016-11-25 16:55:35 +01:00
ROBERT Benoit
0579d47154 Complete autotest patch files set for OAI1B autotest setup 2016-11-25 14:43:28 +01:00
ROBERT Benoit
7d5ec24bb5 Merge remote-tracking branch 'origin/develop' into Enhancement-142-OAI_UE_autotest_framework 2016-11-25 14:39:53 +01:00
Xiwen JIANG
a242028878 Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2016-11-25 11:42:06 +01:00
Florian Kaltenberger
7f0679593c Merge remote-tracking branch 'origin/develop' into feature-21-TM7 2016-11-25 11:10:02 +01:00
Rohit Gupta
7f1bef9b65 minor fix to Google Protobuf logging in installation 2016-11-25 10:53:26 +01:00
Rohit Gupta
045c947015 Merge branch 'develop' into feature-68-enb-agent 2016-11-25 10:08:53 +01:00
Rohit Gupta
c4405d6c41 Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into develop 2016-11-25 10:08:38 +01:00
Rohit Gupta
62ed687ef5 [Gitlab CI] minor fix to logging 2016-11-25 10:05:56 +01:00
hbilel
7637ed26ba Merge branch 'develop1B' of https://gitlab.eurecom.fr/oai1B/openairinterface5g into BSR_fixes_fabrice 2016-11-24 18:31:41 +01:00
hbilel
a6e6a2d649 Merge branch 'bugfix_33_rlc_am_bo' into develop1B 2016-11-24 18:27:46 +01:00
hbilel
eb711645d0 fix issue#33 : RLC AM BO 2016-11-24 18:26:23 +01:00
hbilel
b0b472e035 BSR fixes on CMW500 2016-11-24 18:17:21 +01:00
Xiwen JIANG
8a08206670 Merge branch 'develop' into feature-21-TM7 2016-11-24 17:59:30 +01:00
Xiwen JIANG
41fd001b31 delete redundant code in beamforming.c 2016-11-24 17:57:52 +01:00
Florian Kaltenberger
c67536062b Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop 2016-11-24 17:16:47 +01:00
Florian Kaltenberger
933dc966c0 fix for EXMIMO 2016-11-24 17:14:50 +01:00
Florian Kaltenberger
3b7a9400f2 Merge branch 'master' into develop
Conflicts:
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf
2016-11-24 17:14:44 +01:00
Florian Kaltenberger
f15426d75c fixing config file 2016-11-24 16:56:30 +01:00
Cedric Roux
03231dd163 hotfix: fix pucch_procedures
Something went wrong somewhere in the commit history, the function
was not correct.

The most obvious symptom was that way too much SR (scheduling requests)
were given to the UE whenever it had some PUCCH to send.

The case for TDD has not been tested.
2016-11-24 16:46:41 +01:00
Florian Kaltenberger
af2ad0682f removing -L option from dlsim testcases 2016-11-24 15:00:40 +01:00
Rohit Gupta
9d64a0382b Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into develop 2016-11-24 14:59:07 +01:00
Rohit Gupta
0c52c76df6 add RRH test cases 2016-11-24 14:58:51 +01:00
Florian Kaltenberger
f8aea6189d Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2016-11-24 14:44:06 +01:00
Florian Kaltenberger
7715900222 some more bugfixes (old and introcuded by merge) plus ability too use phy-test for tm7 2016-11-24 14:42:59 +01:00
fnabet
880cddb4a0 Merge branch 'develop1B' into BSR_fixes_fabrice 2016-11-24 11:39:56 +01:00
fnabet
6f0b71deac merge Calvin changes and add fixes 2016-11-24 11:37:13 +01:00
Bilel
ec92c55528 Merge branch 'bugfix-32' into 'develop1B'
[OAI-UE] fix for issue#32

1- timing Advance fix
2- harq UL fix

See merge request !12
2016-11-24 10:58:34 +01:00
GabrirelCouturier
33e89e3e9f [OAI-UE] fix for issue#32
1- timing Advance fix
           2- harq UL fix
2016-11-24 10:54:37 +01:00
Xiwen JIANG
953de398a3 adapt the tm7 configuration file 2016-11-24 10:46:20 +01:00
Xiwen JIANG
f216bacb11 fix the dlsim for TM7 2016-11-23 17:01:22 +01:00
Florian Kaltenberger
abab672e49 Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7
Conflicts:
	openair1/PHY/INIT/lte_init.c
2016-11-23 15:26:02 +01:00
Florian Kaltenberger
7133633997 bugfixes in precoder 2016-11-23 15:17:01 +01:00
Florian Kaltenberger
441b062e3a changing config files 2016-11-23 15:15:56 +01:00
Cedric Roux
2716aaa711 T: activate all info/warning/error legacy traces by default in enb.c 2016-11-23 15:00:36 +01:00
Xiwen JIANG
b4a6e03053 error message disply fixed in dl bf ch est 2016-11-23 11:48:18 +01:00
Xiwen JIANG
263254408d use symbol based OFDM modulation in dlsim 2016-11-23 10:41:00 +01:00
Xiwen JIANG
7dbc59c830 adapt dlsim to TM7 2016-11-22 18:34:57 +01:00
Florian Kaltenberger
f446a5ea17 Merge branch 'develop' into feature-21-TM7 2016-11-22 18:24:40 +01:00
Florian Kaltenberger
c3c3f27487 fixes for phy-test option at eNB 2016-11-22 18:15:57 +01:00
Xiwen JIANG
d2398e1afe Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2016-11-22 15:03:45 +01:00
Xiwen JIANG
eab744f6f9 add in allocate_REs_in_RB the TM7 case 2016-11-22 14:57:11 +01:00
Cedric Roux
5a3b3ed0b5 minor: remove compilation warnings 2016-11-22 14:02:52 +01:00
Cedric Roux
ce8c81af0a hotfix: cqi_crc_status was not properly set/reset 2016-11-22 14:01:41 +01:00
Xiwen JIANG
60a1f34a5a cosmetic changes 2016-11-22 12:29:18 +01:00
Cedric Roux
b526ef7b47 T: update a trace
add ndi to trace ENB_MAC_UE_DL_SDU
2016-11-22 12:04:06 +01:00
Cedric Roux
3ae5f95653 T: fix small typo 2016-11-22 11:21:54 +01:00
Xiwen JIANG
1a8069b924 bug fixed for DEBUG_PHY in lte_init.c 2016-11-22 11:19:23 +01:00
Cedric Roux
b55b63c5ab hotfix: hack to improve PHICH generation
The eNodeB may sometimes wrongly generate PHICH because somewhere
'phich_active' is not reset to 0, due to an unidentified reason. When
adding this hack the problem seems to disappear completely.

This is not the end of the story. The real underlying problem has to be
understood and fixed correctly.
2016-11-22 10:46:04 +01:00
Cedric Roux
6bb69e1964 hotfix: correct Msg3 ressource blocks reservation
The Msg3 ressource blocks used by random access procedure
were not correctly handled. The MAC scheduler could wrongly
allocate a ressource block for both random access Msg3 and
a regular UE.

This hotfix hopefully fixes the problem.

A new function "set_msg3_subframe" has been added in the
interface between PHY and MAC.
2016-11-22 10:38:18 +01:00
Cedric Roux
43df291374 T: add some traces
- Msg3 allocation
- initiation of Random Access procedure
2016-11-22 10:17:22 +01:00
ROBERT Benoit
040afd4800 Add missing template files for HTML report generation 2016-11-21 16:02:00 +01:00
Florian Kaltenberger
e450941f7a Merge branch 'develop' into feature-21-TM7 2016-11-21 12:08:30 +01:00
Florian Kaltenberger
5c5c336300 fixes to make lte-softmodem compile again 2016-11-21 11:55:36 +01:00
Florian Kaltenberger
e86b3e31c7 changing some config files 2016-11-21 11:39:47 +01:00
Bilel
dab71e4cbe Merge branch 'bugfix-26' into 'develop1B'
[OAI-UE] several fixes in OAI-UE

1- implement max harq retrans
           2- bug in harqId > 1 for dci format 1A
           3- wrong G computation
           4- bug in harq UL for scheduling flag
           5- initial sync, limit freq offset to 150Hz

See merge request !11
2016-11-21 11:33:43 +01:00
GabrirelCouturier
9c4cee34f0 [OAI-UE] several fixes in OAI-UE
1- implement max harq retrans
           2- bug in harqId > 1 for dci format 1A
           3- wrong G computation
           4- bug in harq UL for scheduling flag
           5- initial sync, limit freq offset to 150Hz
2016-11-21 11:30:24 +01:00
Bilel
38b1efddf2 Merge branch 'bugfix-26' into 'develop1B'
merge oai/develop to oai1B/debelop1B



See merge request !10
2016-11-21 11:24:32 +01:00
GabrirelCouturier
34b75f393d Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into bugfix-26 2016-11-21 11:19:30 +01:00
Raymond Knopp
85361335e5 frame_length check in compute_beta for LLR8 turbo-decoder 2016-11-18 13:33:13 -08:00
ROBERT Benoit
0b1050c149 Add following functionnalities to OAI UE autotest framework
- add progess bar report
- reduce ssh max_tries to 10
- cleanOldPrograms -> change kill cmd line to be able to run autotest on same machine than lte-softmodem (thanks Rohit & Gabriel)
- Cleanning output prints
- add --skip-machine-preparation on cmd line
- add --skip-sanity-check on cmd line
- add HTML REPORT (no-S1 only)
- add XML detailled report (no-S1 only)
2016-11-18 18:31:57 +01:00
Xiwen JIANG
033513034f Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7
Conflicts:
	cmake_targets/CMakeLists.txt
	openair2/ENB_APP/enb_config.c
2016-11-18 16:58:31 +01:00
Florian Kaltenberger
12f1cb9c7c fixing original dlsim from develop 2016-11-18 16:23:01 +01:00
Florian Kaltenberger
8769024922 Merge remote-tracking branch 'origin/develop' into feature-21-TM7
Conflicts:
	cmake_targets/CMakeLists.txt
	openair1/PHY/INIT/lte_init.c
	openair1/PHY/INIT/lte_param_init.c
	openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
	openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
	openair1/PHY/LTE_REFSIG/lte_dl_uespec.c
	openair1/PHY/LTE_TRANSPORT/dci.c
	openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
	openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair1/PHY/LTE_TRANSPORT/initial_sync.c
	openair1/PHY/LTE_TRANSPORT/pbch.c
	openair1/PHY/LTE_TRANSPORT/pilots.c
	openair1/PHY/LTE_TRANSPORT/pmch.c
	openair1/PHY/LTE_TRANSPORT/proto.h
	openair1/PHY/defs.h
	openair1/SCHED/phy_procedures_lte_eNb.c
	openair1/SCHED/phy_procedures_lte_ue.c
	openair1/SIMULATION/LTE_PHY/dlsim.c
	openair1/SIMULATION/LTE_PHY/mbmssim.c
	openair1/SIMULATION/LTE_PHY/pdcchsim.c
	openair1/SIMULATION/LTE_PHY/ulsim.c
	openair2/ENB_APP/enb_config.c
	openair2/RRC/LITE/rrc_eNB.c
	targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
	targets/RT/USER/lte-softmodem.c
	targets/RT/USER/lte-ue.c
	targets/RT/USER/sched_rx_pdsch.c
	targets/SIMU/USER/init_lte.c
	targets/SIMU/USER/oaisim_functions.c
2016-11-18 15:35:21 +01:00
GabrirelCouturier
7f74065484 BSR fixes for ping 2016-11-18 15:22:11 +01:00
Cedric Roux
c03f13c07b T: add a trace for PHICH 2016-11-18 10:29:48 +01:00
calvin wang
319ae6fbbf fix bsr report inaccurate value 2016-11-18 16:44:18 +08:00
Cedric Roux
64615dcc8e hotfix: correct PHICH generation
The PHICH generation is wrong.
HARQ process X is uplink scheduled at TTI n.
At TTI n+4 the eNB receives the data.
At TTI n+8 the eNB sends ACK/NACK on the PHICH.

The problem is that PHICH generation is done after scheduling.
And PHICH generation uses "first_rb" and "n_DMRS" to compute
"ngroup_PHICH" and "nseq_PHICH".

So at TTI n+8 if the eNB has reused the HARQ process X for
a new uplink scheduling the values "first_rb" and "n_DMRS"
may have changed.

We need to use the previous values.

One solution would have been to do PHICH generation before
scheduling. The problem is that "generate_phich_top" does more
than PHICH generation. It has to setup parameters to sort of
"emulate" a DCI0 in case of retransmission scheduled without
DCI0. So part of it has to be done after scheduling. We would
have to split the function.

The simple adopted fix is to store old values of "first_rb"
and "n_DMRS" and use those values in "generate_phich_top".

This fix has only been tested with FDD. TDD may miserably fail.
2016-11-18 09:40:14 +01:00
ROBERT Benoit
9648d1f245 Merge remote-tracking branch 'origin/develop' into Enhancement-142-OAI_UE_autotest_framework 2016-11-18 09:37:10 +01:00
Xiwen JIANG
fbfb756ca1 Merge branch 'master' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7
Conflicts:
	cmake_targets/CMakeLists.txt
	openair2/ENB_APP/enb_config.c
2016-11-17 16:36:22 +01:00
Fabrice Nabet
92383b825a Merge branch 'bugfix-12-phy-test_mode_MCS_selection' into 'develop1B'
during 'harmony' developments initialisation of some --phy-test parameters were removed



See merge request !8
2016-11-16 18:59:14 +01:00
Fabrice Nabet
94a1510d2b Merge branch 'bugfix-13-turbo_decoder_sse_8bit-frame-length-error' into 'develop1B'
Update 3gpplte_turbo_decoder_sse_8bit.c

maximum frame length is 6144

See merge request !9
2016-11-16 18:56:19 +01:00
fnabet
69ccc900e8 fix BSR long size and fill 2016-11-16 18:24:04 +01:00
Cedric Roux
f116a10de3 hotfix: turbo decoder should not fail if CRC is 0
The case of a CRC == 0 is legal.

After discussion with Raymond, it is also possible to have all
bits at 0 (and so a CRC==0) if there is no transmission and thus
not much energy.

So this hotfix may introduce new problems (false decoding).

A future work is to handle this case properly by not calling the
turbo decoder if there is not enough energy received.

The problem might manifest itself more in the UE part, especially
when it tries to decode MIB and/or SIB (if I understood correctly).
2016-11-16 15:20:18 +01:00
Xenofon Foukas
c0ad88e537 Fixed bug in the creation of MAC PDUs in the local flexran scheduler 2016-11-16 16:12:30 +02:00
fnabet
2965d79dd4 Merge branch 'L2_Stabilization-22-BSR_fertilization' of https://gitlab.com/TCL_Communications/openairinterface5g into BSR_fixes_fabrice
rebase
2016-11-15 16:48:42 +01:00
hbilel
f0f34c029b BSR fixes with CMW500 2016-11-15 16:13:24 +01:00
calvin wang
3bd591bfec change bsr trigger 2016-11-15 18:41:46 +08:00
Rohit Gupta
be0b164a52 minor type updates to E-UTRAN User Guide 2016-11-14 18:49:07 +01:00
Rohit Gupta
54d8b116f9 updates to E-UTRAN User Guide 2016-11-14 18:40:03 +01:00
calvin wang
6097e0516f fix build error 2016-11-14 11:10:33 +08:00
calvin wang
09f149d86b Stabilization UE BSR feature 2016-11-11 18:01:39 +08:00
Xenofon Foukas
1c86e23edf Merge remote-tracking branch 'origin/develop' into feature-68-enb-agent 2016-11-11 08:54:56 +02:00
Rohit Gupta
ad8b86d93a Update rcc.band7.tm1.if5.usrpb210.conf 2016-11-10 18:11:19 +01:00
Rohit Gupta
58284f60e7 Update rru.band7.tm1.if5.usrpb210.conf 2016-11-10 18:10:21 +01:00
Rohit Gupta
0362cb8644 Update rru.band7.tm1.if5.usrpb210.conf 2016-11-10 18:09:09 +01:00
Bilel
1568b5a167 Merge branch 'bugfix-19' into 'develop1B'
[OAI-UE] fix for issue#19: DCI0 detction with wrong RIV



See merge request !7
2016-11-09 17:00:15 +01:00
GabrirelCouturier
ea4f2948fd [OAI-UE] fix for issue#19: DCI0 detction with wrong RIV 2016-11-09 16:58:11 +01:00
Xenofon Foukas
985dcdc38c Removed deprecated configuration files for FlexRAN agent 2016-11-09 12:11:26 +02:00
Xenofon Foukas
bb5b90eab0 Added compilation options for enabling/disabling FlexRAN agent 2016-11-09 12:09:44 +02:00
Xenofon Foukas
2078a9e57c Added macros for enabling FlexRAN agent operation 2016-11-09 12:09:02 +02:00
Xenofon Foukas
cf59e0d891 Added notification messages for control delegation in dl_scheduler VSF 2016-11-08 14:40:34 +02:00
Rohit Gupta
1a99e785a0 remove warnings 2016-11-08 03:14:01 +01:00
fnabet
d56c651081 Reapply BSR changes 2016-11-07 11:57:02 +01:00
fnabet
2b045e8106 Merge branch 'develop1B' of https://gitlab.com/TCL_Communications/openairinterface5g into L2_Stabilization-22-BSR_fertilization 2016-11-07 11:40:19 +01:00
fnabet
141689e793 Merge branch 'L2_Stabilization-22-BSR_fertilization' of https://gitlab.com/TCL_Communications/openairinterface5g into L2_Stabilization-22-BSR_fertilization 2016-11-07 11:38:46 +01:00
fnabet
b9416fb542 Merge tag 'v1B0.4' of https://gitlab.eurecom.fr/oai1B/openairinterface5g into develop1B
fix for segmentation fault in turbo decoder + cell scan issue
2016-11-07 11:26:45 +01:00
fnabet
048b5384dd [OAI-UE] revert commit 8236206c and 9672b410 "BSR-stabilization + rebase from oai1B" 2016-11-07 11:22:11 +01:00
Bilel
de98c17e48 Merge branch 'bugfix-18' into 'develop1B'
[OAI-UE] fix for issue#18: Cell sync issue



See merge request !6
2016-11-07 11:03:54 +01:00
GabrirelCouturier
5e94d108a1 [OAI-UE] fix for issue#18: Cell sync issue 2016-11-07 11:01:25 +01:00
Bilel
68bcfd64e4 Merge branch 'bugfix-14' into 'develop1B'
[OAI-UE] fix for issue#14: segmentation fault in turbo decoder



See merge request !5
2016-11-07 10:55:00 +01:00
GabrirelCouturier
8750acebbc [OAI-UE] fix for issue#14: segmentation fault in turbo decoder 2016-11-07 10:50:05 +01:00
Xenofon Foukas
83929d42f2 Refactored local FlexRAN scheduler to make further use of FlexRAN API 2016-11-05 14:09:48 +02:00
fnabet
8236206cb0 Merge tag 'v1B0.3' of https://gitlab.eurecom.fr/oai1B/openairinterface5g into develop1B
Add fixes for Attach
2016-11-04 18:14:35 +01:00
Fabrice Nabet
9672b41089 Merge branch 'L2_Stabilization-22-BSR_fertilization' into 'develop1B'
L2 stabilization 22 bsr fertilization

merge BSRfertilization branch to develop1B

See merge request !13
2016-11-04 16:58:09 +00:00
Xenofon Foukas
5864cc08cd Integrated scheduler to overall FlexRAN agent functionality 2016-11-04 17:49:39 +02:00
Xenofon Foukas
92ef1739b1 Restructured FlexRAN agent file hierarchy 2016-11-04 17:36:45 +02:00
Xenofon Foukas
8baf3e7e57 Changed naming convention for flexran related calls 2016-11-04 17:28:04 +02:00
Xenofon Foukas
0cee514c73 Fixed problem with comment causing a bug in compilation 2016-11-04 13:19:08 +02:00
Xenofon Foukas
92fda18ab6 Added brief documentation of agent API functions 2016-11-04 12:42:10 +02:00
Rohit Gupta
8031eaa05c [Gitlab-CI]: Merge from Enhancement-142-OAI_UE_autotest_framework 2016-11-04 01:24:29 +01:00
Rohit Gupta
eff2887d92 [Gitlab CI]: Move autotest library to tools 2016-11-03 23:27:08 +01:00
Rohit Gupta
65f047094c [Gitlab CI]: additional packages for pylab support for autotest 2016-11-03 21:40:04 +01:00
Rohit Gupta
5bbdefeee8 add installation of colorama 2016-11-03 21:32:12 +01:00
Rohit Gupta
057de07192 Merge bugfix-137-uplink-fixes and update README 2016-11-03 21:20:29 +01:00
Rohit Gupta
030bcd52d2 Merge branch 'bugfix-137-uplink-fixes' into develop 2016-11-03 21:19:16 +01:00
Florian Kaltenberger
0554132dcf Merge branch 'enhancement-64-phy_test' into 'develop'
Enhancement 64 phy test



See merge request !46
2016-11-03 17:03:44 +01:00
Florian Kaltenberger
535755a528 resetting two files to their state in develop 2016-11-03 17:02:06 +01:00
Florian Kaltenberger
c61d74cd49 Merge remote-tracking branch 'origin/develop' into enhancement-64-phy_test 2016-11-03 16:45:17 +01:00
hbilel
9fbbd0678a [OAI-UE] attach accept fix 2016-11-03 15:53:06 +01:00
Bilel
7fb6b945ef Merge branch 'issue-17-rrcConnectionReconf-fix' into 'develop1B'
[OAI-UE] RRCConnectionReconf fixes

1- SRB2 fix
2- attach accept, support type of list 0 with number of element = 1

See merge request !4
2016-11-03 15:33:09 +01:00
hbilel
81837312cb [OAI-UE] RRCConnectionReconf fixes
1- SRB2 fix
           2- attach accept, support type of list 0 with number of element = 1
2016-11-03 15:29:33 +01:00
fnabet
c5a8dbfee2 Merge branch 'develop1B' of https://gitlab.eurecom.fr/oai1B/openairinterface5g into develop1B 2016-10-28 14:35:13 +02:00
Bilel
04acbd4d6a Merge branch 'issue-15-ueCapabilityInfo-featureGrp' into 'develop1B'
[OAI-UE] add featureGroup to UeCapability (only for usim test mode)

add featureGroup to UeCapability (only for usim test mode)

See merge request !2
2016-10-28 09:59:24 +02:00
hbilel
4eb3774a74 [OAI-UE] add featureGroup to UeCapability (only for usim test mode) 2016-10-28 09:56:31 +02:00
Bilel
3643c3e80a Merge branch 'feature-11-UE-periodic-CQI-RI' into 'develop1B'
Feature 11 ue periodic cqi ri

pucch format2 periodic cqi/ri

See merge request !1
2016-10-27 14:43:11 +02:00
hbilel
10ab1c3e8b [OAI-UE] - PUCCH Format2 Periodic CQI/RI reporting
Handle SRS TX in case of CQI / SR / AN simultaneous transmission
2016-10-27 14:30:30 +02:00
calvin wang
6644204765 add BSR trigger code for interoperability test 2016-10-27 11:47:17 +08:00
calvin wang
0dfde2f441 Merge branch 'develop1B' of https://gitlab.com/TCL_Communications/openairinterface5g into L2_Stabilization-22-BSR_fertilization 2016-10-27 09:07:13 +08:00
calvin wang
7e6a74d5be change debug info 2016-10-26 13:21:26 +08:00
Rohit Gupta
9927838e8c Update README.txt with License information 2016-10-25 22:44:45 +02:00
Rohit Gupta
b7a467839d Update NOTICE.txt for License information 2016-10-25 22:42:33 +02:00
ROBERT Benoit
2ace4029f3 Update 3gpplte_turbo_decoder_sse_8bit.c
maximum frame length is 6144
2016-10-25 18:09:59 +02:00
ROBERT Benoit
0277475bef during 'harmony' developments initialisation of some --phy-test parameters were removed 2016-10-25 17:47:58 +02:00
ROBERT Benoit
c37446507a Add testing capabilities for OAI UE in autotest framework
Autotest Framework modifications:
-> paramiko.Transport((hostname, ports)) : issue on my configuration
-> add --test-suite command line parameter to select a different test suite XML file (default is test_case_list.xml)
-> add patch file functionnality when installing remote machine : required to add LOG printing for pass/fail evaluation
-> add lte-softmodem-noS1 test class - fork of lte-softmodem with the following modification
	- no EPC management on lte-softmodem-noS1 class
	- add cell synchronization detection as a precondition for test results analysis
	- add metric extraction for pass/fail criteria (metrics are defined in XML file)
	- generate graphics for performances metrics (used in the HTML report -> not available in this delivery)

Patch files:
-> autotest_ue_cell_synch_event.patch : Add log for cell synchronization detection
-> autotest_ue_dlsch_bitrate_metric.patch : Add log for DLSCH bitrate capture
-> 3gpplte_turbo_decoder_sse_8bit.patch : hotfix for turbo decoder in autotest (issue followed in oai1B project)
-> phy_test__target_dl_mcs.patch : hotfix for --phy-test configuration (MCS)
2016-10-25 16:51:37 +02:00
fnabet
f55c4e46cb Merge tag 'v1B0.1' of https://gitlab.eurecom.fr/oai1B/openairinterface5g into develop1B
OAI1B wk43 preparation: fixes, SRS, merge from develop
2016-10-25 13:36:34 +02:00
Xenofon Foukas
b6c7909d03 Fixed bugs related to MAC padding and RLC requests in AM mode 2016-10-24 19:14:07 +03:00
hbilel
31fbc80520 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop1B
parent a6742020 - Commit 1fa2f76e61

Conflicts:
	targets/RT/USER/lte-softmodem.c
2016-10-24 16:21:05 +02:00
Rohit Gupta
1fa2f76e61 minor fix for config file for new changes to RRH/TM1 2016-10-21 23:25:53 +02:00
Bilel
5bdfa81204 Merge branch '39-autentication-failure-in-case-of-usim-test' into 'develop1B'
[OAI-UE] Authetification XOR Algo for usim test

Closes #39

See merge request !10
2016-10-21 13:23:14 +00:00
fnabet
15e299bd11 [OAI-UE] Authetification XOR Algo for usim test 2016-10-21 15:09:42 +02:00
calvin wang
948f2df9f1 modify BSR code according comments 2016-10-21 18:26:50 +08:00
Xenofon Foukas
b218128862 Moved agent and protocol to flexran naming convention 2016-10-20 16:37:45 +03:00
Raymond Knopp
d8defff0fa periodic cqi procedures 2016-10-20 06:32:33 -07:00
Florian Kaltenberger
b502b5060e Merge remote-tracking branch 'origin/develop' into enhancement-64-phy_test
Conflicts:
	targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m
	targets/RT/USER/lte-ue.c
2016-10-19 21:04:00 +02:00
Xenofon Foukas
9ed966cfe6 Added conf file for flexran oaisim 2016-10-19 15:16:58 +03:00
Cedric Roux
a6742020d0 T: add some hack programs
- time_meas to measure time spent in scheduling
- timeplot to show nice histograms in realtim of above measurement
2016-10-18 18:17:11 +02:00
Cedric Roux
634ac5fc75 T: update T_message.txt and T_defs.h for VCD traces
The VCD traces have changed. This commit gets in synch
with current status.
2016-10-18 18:02:34 +02:00
hbilel
bd8344b471 Merge branch '36-srs-feature-development' into develop1B 2016-10-18 16:55:34 +02:00
fnabet
9938bd5d05 [OAI-UE] SRS feature
1- Implement SRS procedures
                   2- Implement SRS procedures part2
                   3- Implement SRS: SRS valid on CMW
2016-10-18 16:15:49 +02:00
Xenofon Foukas
93b9b73582 Merge remote-tracking branch 'oai/develop' into oai-integration
Conflicts:
	cmake_targets/tools/build_helper
	openair1/SCHED/phy_procedures_lte_eNb.c
	openair2/LAYER2/MAC/eNB_scheduler.c
2016-10-18 16:27:56 +03:00
Rohit Gupta
2ac2aaf355 Merge branch 'develop' into bugfix-137-uplink-fixes 2016-10-17 21:29:12 +02:00
Rohit Gupta
915282df45 remove core secuirity simulators 2016-10-17 21:28:59 +02:00
Rohit Gupta
5725374ed4 Merge branch 'develop' into bugfix-137-uplink-fixes 2016-10-17 21:25:56 +02:00
Rohit Gupta
e345a5d451 hotfix for UE synchronization 2016-10-17 10:35:22 +02:00
Raymond Knopp
2e688c69ca small bugfixes to avoid segfault in rx_sdu 2016-10-12 23:31:31 -07:00
Rohit Gupta
d566dfd3b1 add tag v0.5 for support for 16.04 + merge of enhancement-10-harmony-lts 2016-10-12 23:35:50 +02:00
Rohit Gupta
039d017561 Merge branch 'enhancement-10-harmony-lts' into develop 2016-10-12 23:33:23 +02:00
fnabet
9d5621e65c [OAI-UE] SRS feature
1- Implement SRS procedures
               2- Implement SRS procedures part2
2016-10-12 17:47:31 +02:00
hbilel
0705e71ffc [OAI-UE] SRS feature
1- Implement SRS procedures
2016-10-12 14:29:48 +02:00
Dominique Nussbaum
8dcf0f0cfd option -a is now handled correctly at UE 2016-10-12 10:17:07 +02:00
Rohit Gupta
256948d61c make single thread mode=1 by default 2016-10-11 21:49:18 +02:00
Rohit Gupta
e084e58388 merge from develop 2016-10-11 18:52:14 +02:00
Rohit Gupta
433d058ba9 Gitlab CI: delete wildcard programs for kill script 2016-10-11 18:48:24 +02:00
Rohit Gupta
057d7619f6 Merge branch 'feature-131-new-license' into develop 2016-10-11 17:39:26 +02:00
Rohit Gupta
c4a9e94b7f update README with release tags 2016-10-11 17:38:45 +02:00
Rohit Gupta
4c100a291b add license to autotest framework + delete files not used in project 2016-10-11 14:10:40 +02:00
Cedric Roux
ef67b3a0a9 hotfix: reserve RBs in Random Access Response case
The RBs were not marked as used. A later UE downlink scheduling
could use those RBs, messing up everything.

Not sure this is the right place to mark them used. Maybe better
to do it in the "if (!CCE_allocation_infeasible" test.
2016-10-11 12:29:15 +02:00
fnabet
3bd7225f9a Merge branch 'develop1B' into L2_Stabilization-22-BSR_fertilization 2016-10-11 12:22:42 +02:00
Rohit Gupta
b481bfd985 Merge branch 'develop' into feature-131-new-license 2016-10-10 19:25:02 +02:00
Bilel
2509847af6 Merge branch '34-fixes' into 'develop1B'
[OAI-UE] fixes:

1- frame/subframe update
2- ccch discard regression

Closes #34

See merge request !7
2016-10-10 15:18:30 +00:00
fnabet
138ed2fbb4 [OAI-UE] fixes:
1- frame/subframe update
           2- ccch discard regression
2016-10-10 17:16:01 +02:00
Cedric Roux
5894f3e6c2 issue 137 - remove hack: MCS reduction in case of CQI reporting
This hack was probably put in place in an attempt to circumvent
problems solved by previous commits.

As far as I checked (with my knowledge of the day) we can't exhaust
uplink physical bits with ULSCH data bits when there is CQI reporting
at the same time.

To be refined if this idea is proved wrong.
2016-10-10 16:40:42 +02:00
Cedric Roux
190fc96af4 issue 137 - fix RI bits decoding
RI bits are present only in some transmission modes.

For aperiodic reporting (the mode we do as of today),
36.213 7.2.1 (release 10) says:

    "RI is only reported for transmission modes 3 and 4,
    as well as transmission modes 8 and 9 with PMI/RI reporting"

This commit activates decoding of RI bits only for transmission
modes 3 and 4. 8 and 9 are not done today (as far as I know).
2016-10-10 16:36:52 +02:00
Cedric Roux
b0887a1b85 issue 137 - correct computation of G
G was wrongly computed in some places, not taking into account
CQI and RI bits. This commit saves the correct value computed
in ulsch_decoding so we can reuse it in ulsch_decoding_data
(and the like).

Only the file openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c has
been checked. If the computation is done somewhere else the
problem might still exist.
2016-10-10 16:33:12 +02:00
fnabet
b11ed995d2 fix build issue after merge from develop 2016-10-10 16:22:01 +02:00
fnabet
1b8c0d6551 merge from oai1B/develop1B 2016-10-10 14:55:46 +02:00
fnabet
4e7b1790c8 Merge branch 'develop' into develop1B 2016-10-10 14:27:09 +02:00
fnabet
6dcfc1e4f1 Merge branch 'develop1B' of https://gitlab.eurecom.fr/oai1b/openairinterface5g into develop1B 2016-10-10 14:26:44 +02:00
Navid Nikaein
6277038d7f remove the OMG SUMO related files and update te top-level OMG and cmakefiles 2016-10-10 13:32:16 +02:00
Rohit Gupta
c51edecdee Merge branch 'bugfix-136-OAI-UE-Attach-fixes' into 'develop'
[OAI-UE] issue#136 attach fixes:

- pusch/pucch power control
           - pucch encoding call
           - srb/drb add with default value

See merge request !44
2016-10-10 12:03:51 +02:00
fnabet
50565a21f7 Merge branch 'develop1B' of https://gitlab.com/TCL_Communications/openairinterface5g into L2_Stabilization-22-BSR_fertilization 2016-10-10 11:48:15 +02:00
Raymond Knopp
a67f12e7cc correction of scrambling sequence initialization in phich.c (rx_phich) 2016-10-09 00:47:12 -07:00
Raymond Knopp
b64f341962 correction of scrambling sequence initialization in phich.c (generate_phich) 2016-10-09 00:45:03 -07:00
Raymond Knopp
4ad723a176 added rcc gtkw files. 2016-10-08 10:40:36 -07:00
Raymond Knopp
81ae8fb2ff cleaned up formatting of CCE table trace in eNB_scheduler_primitives.c 2016-10-07 23:41:51 -07:00
Raymond Knopp
0dc55ec8c8 small bugfix for compute_beta8 in turbo-decoder. 2016-10-07 23:13:09 -07:00
Raymond Knopp
470000f0a2 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop 2016-10-07 10:59:29 -07:00
Raymond Knopp
26f454aa9a bugfix in slot_fep_mbsfn.c 2016-10-07 10:49:58 -07:00
Raymond Knopp
e958d7be87 update for mbmssim for new data structures 2016-10-07 10:31:17 -07:00
Raymond Knopp
263ad2aff8 bugfix in dlsim/ulsim for channel model 2016-10-07 10:20:31 -07:00
fnabet
310a87ea90 [OAI-UE] issue#136 attach fixes:
- pusch/pucch power control
           - pucch encoding call
           - srb/drb add with default value
2016-10-07 18:30:55 +02:00
Rohit Gupta
4787c975ec delete files with GPL License + modify build scripts 2016-10-07 18:19:43 +02:00
Rohit Gupta
73aa265793 Merge branch 'develop' into feature-131-new-license 2016-10-07 13:58:08 +02:00
Tien-Thinh Nguyen
461e2430d1 fix the issues related to sending ULlULL... to RRU 2016-10-06 14:40:30 +02:00
Fabrice Nabet
813187bf10 Merge branch '15-bugfix-usrp-ta' into 'develop1B'
Resolve "Incorrect TA initialization for TDD with USRP"

Merge and Closes #15 Resolve "Incorrect TA initialization for TDD with USRP"

See merge request !6
2016-10-05 15:03:47 +00:00
Fabrice Nabet
af454ffd85 Merge branch '6-bugfix-wireshark-sfn' into 'develop1B'
Resolve "OAI wireshark log can now display system frame number"

Merge and Closes #6: Resolve "OAI wireshark log can now display system frame number"

See merge request !5
2016-10-05 14:55:22 +00:00
fnabet
2e76cb7e37 Merge branch 'develop1B' into 6-bugfix-wireshark-sfn 2016-10-05 16:24:58 +02:00
Fabrice Nabet
af09f29890 Merge branch '7-bugfix-kenb-refresh' into 'develop1B'
Resolve "Fix the attach failure at RRC::SecurityModeCommand"

Closes #7

See merge request !4
2016-10-05 10:11:04 +00:00
Rohit Gupta
e86ec1179a Gitlab CI: Remove 20 MHZ TM2 test cases for USRP B210 2016-10-04 18:59:54 +02:00
Rohit Gupta
462e1e4336 Gitlab CI: Enable 20 MHz test case 2016-10-04 18:36:34 +02:00
Tien-Thinh Nguyen
b8d2455320 fix issues to work with multiple carriers (conga-ercom) 2016-10-04 17:59:07 +02:00
Tien-Thinh Nguyen
e395164a4c fix issues to work with multiple carriers (conga-ercom) 2016-10-04 17:02:50 +02:00
Rohit Gupta
516a8ba944 Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into develop 2016-10-03 20:10:31 +02:00
Rohit Gupta
8f5112b0cb Gitlab CI: minor fix to test case config file 2016-10-03 20:10:17 +02:00
Rohit Gupta
c1490bb88d Merge branch 'develop' into enhancement-10-harmony 2016-10-03 15:44:40 +02:00
Rohit Gupta
1db923d6f9 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-10-03 15:44:14 +02:00
Rohit Gupta
13496a4c6b minor fix to add some log message in oarf compilation fir EXMIMO drivers 2016-10-03 12:59:00 +02:00
Cedric Roux
e196210a51 remove warning: rrc_ue_generate_MeasurementReport had const qualifier
rrc_ue_generate_MeasurementReport calls pdcp_data_req which changes
the content of ctxt_pP.

I'm not sure of the logic at play here, so maybe removing 'const' is not
the right solution and there is a real bug...
2016-10-03 11:20:52 +02:00
Cedric Roux
677fdb60b2 remove warning: function s1ap_eNB_e_rab_setup_resp was not declared in header file 2016-10-03 11:15:22 +02:00
Cedric Roux
68090c8b36 bugfix: get_tx_amp called with wrong parameter 2016-10-03 11:14:40 +02:00
Cedric Roux
494e0dc276 bugfix: forgot to reprocess files in the previous commit 2016-10-03 10:41:29 +02:00
Cedric Roux
27bb59d3af better handling of NETTLE version in CMake 2016-10-03 10:38:46 +02:00
Rohit Gupta
7203a5214a add hotfix to add usrp ud-host package 2016-10-03 02:44:47 +02:00
Rohit Gupta
df63361267 Gitlab CI: compile only for first run 2016-10-02 23:53:45 +02:00
Rohit Gupta
2f14ee6523 Merge branch 'enhancement-10-harmony' of gitlab.eurecom.fr:oai/openairinterface5g into enhancement-10-harmony 2016-10-02 23:47:05 +02:00
Rohit Gupta
43996bbdba Gitlab CI: minor fixes to test case config file 2016-10-02 21:17:57 +02:00
Rohit Gupta
7c6e48d9c4 detect nettle version using cmake 2016-10-02 19:56:43 +02:00
Rohit Gupta
ec7d0ff2c3 fix compilation warnings 2016-10-02 00:24:25 +02:00
Rohit Gupta
0263186860 compilation fixes for mbmssim 2016-10-01 22:31:40 +02:00
Rohit Gupta
93559037f6 compilation fix for nettle API change in 16.04 2016-10-01 13:10:17 -07:00
Rohit Gupta
e63475debb minor fix for compilation of core simulators 2016-10-01 22:03:37 +02:00
Rohit Gupta
0c08aa6139 Gitlab CI: remove gdb from some test cases 2016-10-01 21:52:17 +02:00
Rohit Gupta
d9398cdb1e minor fix for compilation of itti assertions 2016-10-01 18:03:07 +02:00
Rohit Gupta
200cc7f661 Merge branch 'enhancement-10-harmony-lts' of gitlab.eurecom.fr:oai/openairinterface5g into enhancement-10-harmony-lts 2016-10-01 18:00:39 +02:00
Rohit Gupta
42b00ead01 cmake list fix for detecting nettle version for at_commands 2016-10-01 08:54:27 -07:00
Rohit Gupta
7e8bfdefce Merge branch 'enhancement-10-harmony' into enhancement-10-harmony-lts 2016-10-01 17:50:17 +02:00
Rohit Gupta
1459432fee Merge branch 'enhancement-10-harmony' of gitlab.eurecom.fr:oai/openairinterface5g into enhancement-10-harmony 2016-10-01 17:49:10 +02:00
Rohit Gupta
4ac71a6e46 fixes for automatic version detection of nettle for 14.04/16.04 2016-10-01 15:03:56 +02:00
Raymond Knopp
5ed184ddf2 removed debugging in pucch. 2016-10-01 02:43:26 -07:00
Raymond Knopp
9f972b7f22 updated high-level slideset. 2016-10-01 01:42:20 -07:00
Raymond Knopp
4b77dda67b some changes in pucchsim to remove warnings. sanity check in turbo_decoder. 2016-09-30 23:01:31 -07:00
Rohit Gupta
bd25e2d949 Merge branch 'enhancement-10-harmony' into enhancement-10-harmony-lts 2016-09-30 21:41:41 +02:00
Rohit Gupta
07db8e39b6 Merge branch 'enhancement-10-harmony' of gitlab.eurecom.fr:oai/openairinterface5g into enhancement-10-harmony 2016-09-30 21:41:14 +02:00
Rohit Gupta
7a1e8347c7 add help for debug option for build_oai 2016-09-30 21:41:00 +02:00
fnabet
2332290a0d Merge branch 'develop1B' of https://gitlab.com/TCL_Communications/openairinterface5g into L2_Stabilization-22-BSR_fertilization 2016-09-30 15:55:40 +02:00
laurent
402bd21bd7 merge harmony 2016-09-30 14:40:39 +02:00
Fabrice Nabet
d02ee6cfe7 Merge branch '14-3gpp-alignement-l2' into 'develop1B'
UE L2 changes for 3GPP alignement

Closes #14

See merge request !3
2016-09-30 12:38:05 +00:00
laurent
55b3b262cf Merge branch 'enhancement-10-harmony-lts' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony-lts 2016-09-30 12:35:01 +02:00
laurent
5822c850cb small2 2016-09-30 12:34:57 +02:00
Laurent
5ea7253ff7 small update 2016-09-30 12:32:33 +02:00
Rohit Gupta
9f485ac5a9 minor fix to config files 2016-09-30 11:14:09 +02:00
hutch
c6cb8ed260 hotfix for eRRC 2016-09-30 11:10:13 +02:00
Rohit Gupta
51bf2ba535 recalibrate USRP config files 2016-09-29 12:55:09 +02:00
Rohit Gupta
5ca2d6f0a0 Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into develop 2016-09-29 12:08:23 +02:00
Rohit Gupta
2fc4e6eeeb Merge branch 'enhancement-10-harmony' into develop 2016-09-29 11:41:22 +02:00
Raymond Knopp
cd22e926b3 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-28 13:33:04 -07:00
Rohit Gupta
6599d1c9c4 bug fixes for UE 2016-09-28 20:51:44 +02:00
Fabrice Nabet
4e0e0191be Merge branch '8-bugfix-drb-lcid-map' into 'develop1B'
Resolve "OAI UE  does not configure logical-channel ID and data radio bearer ID according to RRCConnectionReconfiguration message"

Closes #8

See merge request !2
2016-09-28 16:53:13 +00:00
fnabet
a5210e4f4f UE L2 changes for 3GPP alignement 2016-09-28 17:36:07 +02:00
Rohit Gupta
8220c9e5ce Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-28 17:30:22 +02:00
hutch
2f00423218 update RCC config file for 5 MHz 2016-09-28 17:27:10 +02:00
Rohit Gupta
222519fbaa Merge branch 'develop' of gitlab.eurecom.fr:oai/openairinterface5g into develop 2016-09-28 17:22:25 +02:00
Cedric Roux
1410b3f343 hotfix: fields DLSCH_DCI and ULSCH_DCI of UE_TEMPLATE had wrong size
The old value was 6, it should be 8 because those fields are
casted to 'struct DCI0_5MHz_FDD' and the like and those have
a size multiple of 32 bits, that is 4 or 8 bytes as of today.

(MAX_DCI_SIZE_BITS is 45, all the shifts, muls and adds lead
to a value of 8 after this commit and 6 before.)

The problem manifested itself with a 20MHz eNB. Push the traffic,
after a while the DL harq process 0 is not used anymore.
This is because DLSCH_DCI is directly followed by nb_rb in
the structure UE_TEMPLATE and setting a value for harq process 7
did overwrite nb_rb[0], putting much too big values in there,
leading to the scheduler to always refuse to reschedule because
the required RBs are impossibly huge (I saw values of 32744, 16384,
and others).
2016-09-28 16:51:28 +02:00
Rohit Gupta
dc2ec6fdef changed logging level of GTPU errors 2016-09-28 15:21:13 +02:00
Rohit Gupta
1fdb28d16f Merge branch 'enhancement-10-harmony' into develop 2016-09-28 15:14:19 +02:00
Rohit Gupta
9afa174548 minor fix to enable EXM 2016-09-28 15:13:00 +02:00
Cedric Roux
b0662e4bbe update licensing information in remaining files
The text has been updated in all those files.

	modified:   README.txt
	modified:   cmake_targets/CMakeLists.txt
	modified:   cmake_targets/at_commands/CMakeLists.txt
	modified:   cmake_targets/autotests/core.py
	modified:   cmake_targets/autotests/log.py
	modified:   cmake_targets/autotests/openair.py
	modified:   cmake_targets/autotests/run_exec_autotests.bash
	modified:   cmake_targets/autotests/run_exec_lte-softmodem_tests.py
	modified:   cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
	modified:   cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py
	modified:   cmake_targets/autotests/tools/configure_usrpb210.py
	modified:   cmake_targets/autotests/tools/find_usb_path.bash
	modified:   cmake_targets/autotests/tools/free_mem.bash
	modified:   cmake_targets/autotests/tools/iperf3_script
	modified:   cmake_targets/autotests/tools/iperf3_script_phone
	modified:   cmake_targets/autotests/tools/iperf_script
	modified:   cmake_targets/autotests/tools/iperf_script_phone
	modified:   cmake_targets/autotests/tools/lib_autotest.py
	modified:   cmake_targets/autotests/tools/search_repl.py
	modified:   cmake_targets/build_oai
	modified:   cmake_targets/tools/asn1tostruct.py
	modified:   cmake_targets/tools/build_helper
	modified:   cmake_targets/tools/build_test_epc_tools
	modified:   cmake_targets/tools/example_enb_exmimo_mme_hss.txt
	modified:   cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt
	modified:   cmake_targets/tools/indent_source_code
	modified:   cmake_targets/tools/init_exmimo2
	modified:   cmake_targets/tools/init_nas_nos1
	modified:   cmake_targets/tools/perf_oai.bash
	modified:   cmake_targets/tools/run_enb_s1_exmimo
	modified:   cmake_targets/tools/run_enb_s1_usrp
	modified:   cmake_targets/tools/run_enb_ue_virt_noS1
	modified:   cmake_targets/tools/run_enb_ue_virt_s1
	modified:   openair2/DOCS/TEMPLATES/README/Readme.doxy
	modified:   openair2/DOCS/TEMPLATES/README/readme.txt
	modified:   openair2/Makefile
	modified:   openair2/UTIL/OCG/Readme.doxy
	modified:   openair2/UTIL/OCG/readme.txt
	modified:   openair2/UTIL/OSD/recep.php
	modified:   openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py
	modified:   openair3/DOCS/DOXYGEN/Makefile.am
	modified:   openair3/DOCS/Latex/EPC/Makefile
	modified:   openair3/DOCS/Makefile.am
	modified:   openair3/GTPV1-U/Makefile.am
	modified:   openair3/GTPV1-U/Makefile.eNB
	modified:   openair3/NAS/TEST/AS_SIMULATOR/Makefile
	modified:   openair3/NAS/TEST/NETWORK/Makefile
	modified:   openair3/NAS/TEST/USER/Makefile
	modified:   openair3/NAS/TOOLS/Makefile
	modified:   openair3/NAS/UE/API/USER/Makefile
	modified:   openair3/NAS/UE/API/USER/tst/Makefile
	modified:   openair3/NAS/UE/API/USIM/Makefile
	modified:   openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py
	modified:   openair3/TEST/Makefile.am
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc
	modified:   targets/PROJECTS/E-MBMS/build_all.bash
	modified:   targets/PROJECTS/E-MBMS/start_enb.bash
	modified:   targets/PROJECTS/E-MBMS/start_ue.bash
	modified:   targets/PROJECTS/E-MBMS/utils.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/networks.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/start_enb_and_ue_virt.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/start_ue.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/utils.bash
	modified:   targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash
	modified:   targets/SCRIPTS/install_asn1c_0.9.24.modified.bash
	modified:   targets/TEST/OAI/case01.py
	modified:   targets/TEST/OAI/case02.py
	modified:   targets/TEST/OAI/case03.py
	modified:   targets/TEST/OAI/case04.py
	modified:   targets/TEST/OAI/case05.py
	modified:   targets/TEST/OAI/case11.py
	modified:   targets/TEST/OAI/case12.py
	modified:   targets/TEST/OAI/case13.py
	modified:   targets/TEST/OAI/core.py
	modified:   targets/TEST/OAI/log.py
	modified:   targets/TEST/OAI/openair.py
	modified:   targets/TEST/OAI/test01.py
	modified:   targets/TEST/OAI/test02.py
	modified:   targets/TEST/PDCP/readme.txt
	modified:   targets/build_helper.bash
	modified:   targets/build_oai.bash
	modified:   targets/perf_oai.bash
2016-09-28 11:17:33 +02:00
Cedric Roux
972d0e612e add README in the T tracer to clarify its licensing information
The T is released with the same license as the rest of OpenAirInterface,
of which it is an integral part.
2016-09-28 10:46:16 +02:00
Cedric Roux
74316f6b69 remove COPYING files
Most of them were the GPL.

It is useless to have a copy of the license in every
sub-directory.

From now on, there is only the LICENSE in the top
directory of the distribution.

	deleted:    common/utils/COPYING
	deleted:    common/utils/hashtable/COPYING
	deleted:    common/utils/itti/COPYING
	deleted:    common/utils/itti_analyzer/COPYING
	deleted:    common/utils/itti_analyzer/common/COPYING
	deleted:    common/utils/itti_analyzer/libbuffers/COPYING
	deleted:    common/utils/itti_analyzer/libparser/COPYING
	deleted:    common/utils/itti_analyzer/libresolver/COPYING
	deleted:    common/utils/itti_analyzer/libui/COPYING
	deleted:    openair1/COPYING
	deleted:    openair1/PHY/CODING/COPYING
	deleted:    openair1/PHY/CODING/TESTBENCH/COPYING
	deleted:    openair1/PHY/COPYING
	deleted:    openair1/PHY/INIT/COPYING
	deleted:    openair1/PHY/LTE_ESTIMATION/COPYING
	deleted:    openair1/PHY/LTE_REFSIG/COPYING
	deleted:    openair1/PHY/LTE_TRANSPORT/COPYING
	deleted:    openair1/PHY/MODULATION/COPYING
	deleted:    openair1/PHY/TOOLS/COPYING
	deleted:    openair1/SCHED/COPYING
	deleted:    openair1/SIMULATION/COPYING
	deleted:    openair1/SIMULATION/ETH_TRANSPORT/COPYING
	deleted:    openair1/SIMULATION/LTE_PHY/COPYING
	deleted:    openair1/SIMULATION/RF/COPYING
	deleted:    openair1/SIMULATION/TOOLS/COPYING
	deleted:    openair2/COMMON/COPYING
	deleted:    openair2/DOCS/TEMPLATES/CODE/COPYING
	deleted:    openair2/LAYER2/COPYING
	deleted:    openair2/LAYER2/MAC/COPYING
	deleted:    openair2/LAYER2/PDCP_v10.1.0/COPYING
	deleted:    openair2/LAYER2/RLC/AM_v9.3.0/COPYING
	deleted:    openair2/LAYER2/RLC/COPYING
	deleted:    openair2/LAYER2/RLC/TM_v9.3.0/COPYING
	deleted:    openair2/LAYER2/RLC/UM_v9.3.0/COPYING
	deleted:    openair2/NETWORK_DRIVER/LITE/COPYING
	deleted:    openair2/NETWORK_DRIVER/MESH/COPYING
	deleted:    openair2/NETWORK_DRIVER/UE_IP/COPYING
	deleted:    openair2/PHY_INTERFACE/COPYING
	deleted:    openair2/RRC/L2_INTERFACE/COPYING
	deleted:    openair2/RRC/LITE/COPYING
	deleted:    openair2/RRC/LITE/MESSAGES/COPYING
	deleted:    openair2/RRC/NAS/COPYING
	deleted:    openair2/RRM_4_RRC_LITE/COPYING
	deleted:    openair2/RRM_4_RRC_LITE/src/COPYING
	deleted:    openair2/RRM_4_RRC_LITE/src/radio_resources/COPYING
	deleted:    openair2/UTIL/BIGPHYS/COPYING
	deleted:    openair2/UTIL/CLI/COPYING
	deleted:    openair2/UTIL/FIFO/COPYING
	deleted:    openair2/UTIL/LISTS/COPYING
	deleted:    openair2/UTIL/LOG/COPYING
	deleted:    openair2/UTIL/MATH/COPYING
	deleted:    openair2/UTIL/MEM/COPYING
	deleted:    openair2/UTIL/OCG/COPYING
	deleted:    openair2/UTIL/OMG/COPYING
	deleted:    openair2/UTIL/OMV/COPYING
	deleted:    openair2/UTIL/OPT/COPYING
	deleted:    openair2/UTIL/OSA/COPYING
	deleted:    openair2/UTIL/OSD/COPYING
	deleted:    openair2/UTIL/OTG/COPYING
	deleted:    openair2/UTIL/SCTP/COPYING
	deleted:    openair2/UTIL/TIMER/COPYING
	deleted:    openair2/UTIL/TRACE/COPYING
	deleted:    openair2/X2AP/COPYING
	deleted:    openair3/COPYING
	deleted:    openair3/DOCS/COPYING
	deleted:    openair3/DOCS/DOXYGEN/COPYING
	deleted:    openair3/DOCS/Latex/COPYING
	deleted:    openair3/DOCS/Latex/DefaultBearer/COPYING
	deleted:    openair3/DOCS/Latex/EPC/COPYING
	deleted:    openair3/NAS/COMMON/API/NETWORK/COPYING
	deleted:    openair3/NAS/COMMON/COPYING
	deleted:    openair3/NAS/COMMON/EMM/MSG/COPYING
	deleted:    openair3/NAS/COMMON/ESM/MSG/COPYING
	deleted:    openair3/NAS/COMMON/IES/COPYING
	deleted:    openair3/NAS/COMMON/UTIL/COPYING
	deleted:    openair3/NAS/COPYING
	deleted:    openair3/NAS/TEST/AS_SIMULATOR/COPYING
	deleted:    openair3/NAS/TEST/COPYING
	deleted:    openair3/NAS/TEST/MSC/COPYING
	deleted:    openair3/NAS/TEST/NETWORK/COPYING
	deleted:    openair3/NAS/TEST/USER/COPYING
	deleted:    openair3/NAS/TOOLS/COPYING
	deleted:    openair3/NAS/UE/API/USER/COPYING
	deleted:    openair3/NAS/UE/API/USIM/COPYING
	deleted:    openair3/NAS/UE/EMM/SAP/COPYING
	deleted:    openair3/NAS/UE/ESM/SAP/COPYING
	deleted:    openair3/S1AP/COPYING
	deleted:    openair3/S1AP/MESSAGES/ASN1/COPYING
	deleted:    openair3/S1AP/MESSAGES/ASN1/R10.5/COPYING
	deleted:    openair3/S1AP/MESSAGES/ASN1/R8.10/COPYING
	deleted:    openair3/S1AP/MESSAGES/ASN1/R9.8/COPYING
	deleted:    openair3/S1AP/MESSAGES/COPYING
	deleted:    openair3/SCTP/COPYING
	deleted:    openair3/SECU/COPYING
	deleted:    openair3/TEST/COPYING
	deleted:    openair3/UTILS/COPYING
	deleted:    targets/ARCH/COMMON/COPYING
	deleted:    targets/ARCH/ETHERNET/USERSPACE/LIB/COPYING
	deleted:    targets/ARCH/EXMIMO/DEFS/COPYING
	deleted:    targets/ARCH/EXMIMO/DRIVER/eurecom/COPYING
	deleted:    targets/ARCH/EXMIMO/DRIVER/exmimo3/COPYING
	deleted:    targets/ARCH/EXMIMO/DRIVER/telecomparistech/COPYING
	deleted:    targets/ARCH/EXMIMO/USERSPACE/LIB/COPYING
	deleted:    targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/COPYING
	deleted:    targets/ARCH/EXMIMO/USERSPACE/OCTAVE/COPYING
	deleted:    targets/ARCH/USRP/USERSPACE/LIB/COPYING
	deleted:    targets/COMMON/COPYING
	deleted:    targets/COPYING
	deleted:    targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/COPYING
	deleted:    targets/PROJECTS/COPYING
	deleted:    targets/PROJECTS/GENERIC-LTE-EPC/COPYING
	deleted:    targets/RT/USER/COPYING
	deleted:    targets/SIMU/PROC/COPYING
	deleted:    targets/SIMU/USER/COPYING
2016-09-28 10:45:02 +02:00
Rohit Gupta
8a2faa1cb3 change the build script to oai/ssh package 2016-09-28 06:31:29 +02:00
Raymond Knopp
1f77142158 addition of dfts of size 18432 for PRACH TX/RX with 23.04 Ms/s sampling (15/20 MHz BW). 2016-09-27 10:47:56 -07:00
Cedric Roux
5ab5c3ebbd delete bsearch.c and bsearch.h from source tree
they are not referenced in CMakeLists.txt (so says grep)
2016-09-27 17:01:54 +02:00
Cedric Roux
db3c2b4d71 add licensing info at top of source files
only .c, .h and .cpp processed.

 Changes to be committed:
	modified:   common/utils/asn1_conversions.h
	modified:   common/utils/assertions.h
	modified:   common/utils/itti/assertions.h
	modified:   common/utils/itti/backtrace.c
	modified:   common/utils/itti/backtrace.h
	modified:   common/utils/itti/intertask_interface.c
	modified:   common/utils/itti/intertask_interface.h
	modified:   common/utils/itti/intertask_interface_dump.c
	modified:   common/utils/itti/intertask_interface_dump.h
	modified:   common/utils/itti/intertask_interface_init.h
	modified:   common/utils/itti/intertask_interface_types.h
	modified:   common/utils/itti/intertask_messages_def.h
	modified:   common/utils/itti/intertask_messages_types.h
	modified:   common/utils/itti/itti_types.h
	modified:   common/utils/itti/memory_pools.c
	modified:   common/utils/itti/memory_pools.h
	modified:   common/utils/itti/messages_def.h
	modified:   common/utils/itti/messages_types.h
	modified:   common/utils/itti/signals.c
	modified:   common/utils/itti/signals.h
	modified:   common/utils/itti/tasks_def.h
	modified:   common/utils/itti/timer.c
	modified:   common/utils/itti/timer.h
	modified:   common/utils/itti/timer_messages_def.h
	modified:   common/utils/itti/timer_messages_types.h
	modified:   common/utils/itti_analyzer/common/itti_types.h
	modified:   common/utils/itti_analyzer/common/logs.h
	modified:   common/utils/itti_analyzer/common/rc.h
	modified:   common/utils/itti_analyzer/itti_analyzer.c
	modified:   common/utils/itti_analyzer/libbuffers/buffers.c
	modified:   common/utils/itti_analyzer/libbuffers/buffers.h
	modified:   common/utils/itti_analyzer/libbuffers/file.c
	modified:   common/utils/itti_analyzer/libbuffers/file.h
	modified:   common/utils/itti_analyzer/libbuffers/socket.c
	modified:   common/utils/itti_analyzer/libbuffers/socket.h
	modified:   common/utils/itti_analyzer/libparser/array_type.c
	modified:   common/utils/itti_analyzer/libparser/array_type.h
	modified:   common/utils/itti_analyzer/libparser/enum_type.c
	modified:   common/utils/itti_analyzer/libparser/enum_type.h
	modified:   common/utils/itti_analyzer/libparser/enum_value_type.c
	modified:   common/utils/itti_analyzer/libparser/enum_value_type.h
	modified:   common/utils/itti_analyzer/libparser/field_type.c
	modified:   common/utils/itti_analyzer/libparser/field_type.h
	modified:   common/utils/itti_analyzer/libparser/file_type.c
	modified:   common/utils/itti_analyzer/libparser/file_type.h
	modified:   common/utils/itti_analyzer/libparser/fundamental_type.c
	modified:   common/utils/itti_analyzer/libparser/fundamental_type.h
	modified:   common/utils/itti_analyzer/libparser/intertask_contexts.h
	modified:   common/utils/itti_analyzer/libparser/pointer_type.c
	modified:   common/utils/itti_analyzer/libparser/pointer_type.h
	modified:   common/utils/itti_analyzer/libparser/reference_type.c
	modified:   common/utils/itti_analyzer/libparser/reference_type.h
	modified:   common/utils/itti_analyzer/libparser/struct_type.c
	modified:   common/utils/itti_analyzer/libparser/struct_type.h
	modified:   common/utils/itti_analyzer/libparser/typedef_type.c
	modified:   common/utils/itti_analyzer/libparser/typedef_type.h
	modified:   common/utils/itti_analyzer/libparser/types.c
	modified:   common/utils/itti_analyzer/libparser/types.h
	modified:   common/utils/itti_analyzer/libparser/union_type.c
	modified:   common/utils/itti_analyzer/libparser/union_type.h
	modified:   common/utils/itti_analyzer/libparser/xml_parse.c
	modified:   common/utils/itti_analyzer/libparser/xml_parse.h
	modified:   common/utils/itti_analyzer/libresolver/locate_root.c
	modified:   common/utils/itti_analyzer/libresolver/locate_root.h
	modified:   common/utils/itti_analyzer/libresolver/resolvers.c
	modified:   common/utils/itti_analyzer/libresolver/resolvers.h
	modified:   common/utils/itti_analyzer/libui/ui_callbacks.c
	modified:   common/utils/itti_analyzer/libui/ui_callbacks.h
	modified:   common/utils/itti_analyzer/libui/ui_filters.c
	modified:   common/utils/itti_analyzer/libui/ui_filters.h
	modified:   common/utils/itti_analyzer/libui/ui_interface.c
	modified:   common/utils/itti_analyzer/libui/ui_interface.h
	modified:   common/utils/itti_analyzer/libui/ui_main_screen.c
	modified:   common/utils/itti_analyzer/libui/ui_main_screen.h
	modified:   common/utils/itti_analyzer/libui/ui_menu_bar.c
	modified:   common/utils/itti_analyzer/libui/ui_menu_bar.h
	modified:   common/utils/itti_analyzer/libui/ui_notebook.c
	modified:   common/utils/itti_analyzer/libui/ui_notebook.h
	modified:   common/utils/itti_analyzer/libui/ui_notif_dlg.c
	modified:   common/utils/itti_analyzer/libui/ui_notif_dlg.h
	modified:   common/utils/itti_analyzer/libui/ui_notifications.c
	modified:   common/utils/itti_analyzer/libui/ui_notifications.h
	modified:   common/utils/itti_analyzer/libui/ui_signal_dissect_view.c
	modified:   common/utils/itti_analyzer/libui/ui_signal_dissect_view.h
	modified:   common/utils/itti_analyzer/libui/ui_tree_view.c
	modified:   common/utils/itti_analyzer/libui/ui_tree_view.h
	modified:   common/utils/msc/msc.c
	modified:   common/utils/msc/msc.h
	modified:   openair1/PHY/CODING/3gpplte.c
	modified:   openair1/PHY/CODING/3gpplte_sse.c
	modified:   openair1/PHY/CODING/3gpplte_turbo_decoder.c
	modified:   openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c
	modified:   openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c
	modified:   openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c
	modified:   openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
	modified:   openair1/PHY/CODING/TESTBENCH/ltetest.c
	modified:   openair1/PHY/CODING/TESTBENCH/pdcch_test.c
	modified:   openair1/PHY/CODING/TESTBENCH/viterbi_test.c
	modified:   openair1/PHY/CODING/ccoding_byte.c
	modified:   openair1/PHY/CODING/ccoding_byte_lte.c
	modified:   openair1/PHY/CODING/crc_byte.c
	modified:   openair1/PHY/CODING/defs.h
	modified:   openair1/PHY/CODING/extern.h
	modified:   openair1/PHY/CODING/extern_3GPPinterleaver.h
	modified:   openair1/PHY/CODING/lte_interleaver.h
	modified:   openair1/PHY/CODING/lte_interleaver2.h
	modified:   openair1/PHY/CODING/lte_interleaver_inline.h
	modified:   openair1/PHY/CODING/lte_rate_matching.c
	modified:   openair1/PHY/CODING/lte_segmentation.c
	modified:   openair1/PHY/CODING/rate_matching.c
	modified:   openair1/PHY/CODING/scrambler.h
	modified:   openair1/PHY/CODING/vars.h
	modified:   openair1/PHY/CODING/viterbi.c
	modified:   openair1/PHY/CODING/viterbi_lte.c
	modified:   openair1/PHY/INIT/defs.h
	modified:   openair1/PHY/INIT/extern.h
	modified:   openair1/PHY/INIT/init_top.c
	modified:   openair1/PHY/INIT/lte_init.c
	modified:   openair1/PHY/INIT/lte_param_init.c
	modified:   openair1/PHY/INIT/lte_parms.c
	modified:   openair1/PHY/INIT/vars.h
	modified:   openair1/PHY/LTE_ESTIMATION/adjust_gain.c
	modified:   openair1/PHY/LTE_ESTIMATION/defs.h
	modified:   openair1/PHY/LTE_ESTIMATION/extern.h
	modified:   openair1/PHY/LTE_ESTIMATION/filt96_32.h
	modified:   openair1/PHY/LTE_ESTIMATION/freq_equalization.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
	modified:   openair1/PHY/LTE_ESTIMATION/pss6144.h
	modified:   openair1/PHY/LTE_ESTIMATION/vars.h
	modified:   openair1/PHY/LTE_REFSIG/defs.h
	modified:   openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c
	modified:   openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c
	modified:   openair1/PHY/LTE_REFSIG/lte_dl_uespec.c
	modified:   openair1/PHY/LTE_REFSIG/lte_gold.c
	modified:   openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c
	modified:   openair1/PHY/LTE_REFSIG/lte_ul_ref.c
	modified:   openair1/PHY/LTE_REFSIG/mod_table.h
	modified:   openair1/PHY/LTE_REFSIG/primary_synch.h
	modified:   openair1/PHY/LTE_TRANSPORT/dci.c
	modified:   openair1/PHY/LTE_TRANSPORT/dci.h
	modified:   openair1/PHY/LTE_TRANSPORT/dci_tools.c
	modified:   openair1/PHY/LTE_TRANSPORT/defs.h
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h
	modified:   openair1/PHY/LTE_TRANSPORT/drs_modulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/extern.h
	modified:   openair1/PHY/LTE_TRANSPORT/group_hopping.c
	modified:   openair1/PHY/LTE_TRANSPORT/if4_tools.c
	modified:   openair1/PHY/LTE_TRANSPORT/if4_tools.h
	modified:   openair1/PHY/LTE_TRANSPORT/if5_tools.c
	modified:   openair1/PHY/LTE_TRANSPORT/if5_tools.h
	modified:   openair1/PHY/LTE_TRANSPORT/initial_sync.c
	modified:   openair1/PHY/LTE_TRANSPORT/lte_mcs.c
	modified:   openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h
	modified:   openair1/PHY/LTE_TRANSPORT/pbch.c
	modified:   openair1/PHY/LTE_TRANSPORT/pcfich.c
	modified:   openair1/PHY/LTE_TRANSPORT/pch.c
	modified:   openair1/PHY/LTE_TRANSPORT/phich.c
	modified:   openair1/PHY/LTE_TRANSPORT/pilots.c
	modified:   openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c
	modified:   openair1/PHY/LTE_TRANSPORT/pmch.c
	modified:   openair1/PHY/LTE_TRANSPORT/power_control.c
	modified:   openair1/PHY/LTE_TRANSPORT/prach.c
	modified:   openair1/PHY/LTE_TRANSPORT/prach.h
	modified:   openair1/PHY/LTE_TRANSPORT/print_stats.c
	modified:   openair1/PHY/LTE_TRANSPORT/proto.h
	modified:   openair1/PHY/LTE_TRANSPORT/pss.c
	modified:   openair1/PHY/LTE_TRANSPORT/pucch.c
	modified:   openair1/PHY/LTE_TRANSPORT/rar_tools.c
	modified:   openair1/PHY/LTE_TRANSPORT/srs_modulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/sss.c
	modified:   openair1/PHY/LTE_TRANSPORT/sss.h
	modified:   openair1/PHY/LTE_TRANSPORT/uci.h
	modified:   openair1/PHY/LTE_TRANSPORT/uci_tools.c
	modified:   openair1/PHY/LTE_TRANSPORT/ulsch_coding.c
	modified:   openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
	modified:   openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/vars.h
	modified:   openair1/PHY/MODULATION/defs.h
	modified:   openair1/PHY/MODULATION/extern.h
	modified:   openair1/PHY/MODULATION/kHz_7_5.h
	modified:   openair1/PHY/MODULATION/ofdm_mod.c
	modified:   openair1/PHY/MODULATION/prach625Hz.h
	modified:   openair1/PHY/MODULATION/slot_fep.c
	modified:   openair1/PHY/MODULATION/slot_fep_mbsfn.c
	modified:   openair1/PHY/MODULATION/slot_fep_ul.c
	modified:   openair1/PHY/MODULATION/ul_7_5_kHz.c
	modified:   openair1/PHY/MODULATION/vars.h
	modified:   openair1/PHY/TOOLS/8bit_rxdemux.c
	modified:   openair1/PHY/TOOLS/8bit_txmux.c
	modified:   openair1/PHY/TOOLS/alaw_lut.h
	modified:   openair1/PHY/TOOLS/angle.c
	modified:   openair1/PHY/TOOLS/cadd_sv.c
	modified:   openair1/PHY/TOOLS/cadd_vv.c
	modified:   openair1/PHY/TOOLS/cdot_prod.c
	modified:   openair1/PHY/TOOLS/cmult_sv.c
	modified:   openair1/PHY/TOOLS/cmult_vv.c
	modified:   openair1/PHY/TOOLS/costable.h
	modified:   openair1/PHY/TOOLS/dB_routines.c
	modified:   openair1/PHY/TOOLS/dB_routines.h
	modified:   openair1/PHY/TOOLS/defs.h
	modified:   openair1/PHY/TOOLS/extern.h
	modified:   openair1/PHY/TOOLS/file_output.c
	modified:   openair1/PHY/TOOLS/invSqrt.c
	modified:   openair1/PHY/TOOLS/log2_approx.c
	modified:   openair1/PHY/TOOLS/lte_dfts.c
	modified:   openair1/PHY/TOOLS/lte_phy_scope.c
	modified:   openair1/PHY/TOOLS/lte_phy_scope.h
	modified:   openair1/PHY/TOOLS/lut.c
	modified:   openair1/PHY/TOOLS/memory_routines.c
	modified:   openair1/PHY/TOOLS/signal_energy.c
	modified:   openair1/PHY/TOOLS/smbv.c
	modified:   openair1/PHY/TOOLS/smbv.h
	modified:   openair1/PHY/TOOLS/sqrt.c
	modified:   openair1/PHY/TOOLS/time_meas.c
	modified:   openair1/PHY/TOOLS/time_meas.h
	modified:   openair1/PHY/TOOLS/twiddle12288.h
	modified:   openair1/PHY/TOOLS/twiddle1536.h
	modified:   openair1/PHY/TOOLS/twiddle24576.h
	modified:   openair1/PHY/TOOLS/twiddle6144.h
	modified:   openair1/PHY/TOOLS/twiddles4096.h
	modified:   openair1/PHY/TOOLS/twiddles8192.h
	modified:   openair1/PHY/TOOLS/vars.h
	modified:   openair1/PHY/defs.h
	modified:   openair1/PHY/extern.h
	modified:   openair1/PHY/impl_defs_lte.h
	modified:   openair1/PHY/impl_defs_top.h
	modified:   openair1/PHY/sse_intrin.h
	modified:   openair1/PHY/types.h
	modified:   openair1/PHY/vars.h
	modified:   openair1/SCHED/defs.h
	modified:   openair1/SCHED/extern.h
	modified:   openair1/SCHED/phy_mac_stub.c
	modified:   openair1/SCHED/phy_procedures_emos.h
	modified:   openair1/SCHED/phy_procedures_lte_common.c
	modified:   openair1/SCHED/phy_procedures_lte_eNb.c
	modified:   openair1/SCHED/phy_procedures_lte_ue.c
	modified:   openair1/SCHED/pucch_pc.c
	modified:   openair1/SCHED/pusch_pc.c
	modified:   openair1/SCHED/rt_compat.h
	modified:   openair1/SCHED/vars.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/defs.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/extern.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/proto.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/socket.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/socket.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/vars.h
	modified:   openair1/SIMULATION/LTE_PHY/LTE_Configuration.c
	modified:   openair1/SIMULATION/LTE_PHY/LTE_Configuration.h
	modified:   openair1/SIMULATION/LTE_PHY/dlsim.c
	modified:   openair1/SIMULATION/LTE_PHY/framegen.c
	modified:   openair1/SIMULATION/LTE_PHY/gpib_send.c
	modified:   openair1/SIMULATION/LTE_PHY/gpib_send.h
	modified:   openair1/SIMULATION/LTE_PHY/mbmssim.c
	modified:   openair1/SIMULATION/LTE_PHY/pbchsim.c
	modified:   openair1/SIMULATION/LTE_PHY/pdcchsim.c
	modified:   openair1/SIMULATION/LTE_PHY/prachsim.c
	modified:   openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h
	modified:   openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c
	modified:   openair1/SIMULATION/LTE_PHY/pucchsim.c
	modified:   openair1/SIMULATION/LTE_PHY/scansim.c
	modified:   openair1/SIMULATION/LTE_PHY/signalanalyzer.c
	modified:   openair1/SIMULATION/LTE_PHY/signalanalyzer.h
	modified:   openair1/SIMULATION/LTE_PHY/syncsim.c
	modified:   openair1/SIMULATION/LTE_PHY/test.c
	modified:   openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c
	modified:   openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h
	modified:   openair1/SIMULATION/LTE_PHY/ulsim.c
	modified:   openair1/SIMULATION/LTE_PHY/ulsim2.c
	modified:   openair1/SIMULATION/LTE_PHY/unitary_defs.h
	modified:   openair1/SIMULATION/RF/adc.c
	modified:   openair1/SIMULATION/RF/dac.c
	modified:   openair1/SIMULATION/RF/defs.h
	modified:   openair1/SIMULATION/RF/rf.c
	modified:   openair1/SIMULATION/TOOLS/abstraction.c
	modified:   openair1/SIMULATION/TOOLS/ch_desc_proto.c
	modified:   openair1/SIMULATION/TOOLS/defs.h
	modified:   openair1/SIMULATION/TOOLS/gauss.c
	modified:   openair1/SIMULATION/TOOLS/llr_quantization.c
	modified:   openair1/SIMULATION/TOOLS/multipath_channel.c
	modified:   openair1/SIMULATION/TOOLS/multipath_tv_channel.c
	modified:   openair1/SIMULATION/TOOLS/random_channel.c
	modified:   openair1/SIMULATION/TOOLS/rangen_double.c
	modified:   openair1/SIMULATION/TOOLS/scm_corrmat.h
	modified:   openair1/SIMULATION/TOOLS/taus.c
	modified:   openair2/COMMON/as_message.h
	modified:   openair2/COMMON/commonDef.h
	modified:   openair2/COMMON/gtpv1_u_messages_def.h
	modified:   openair2/COMMON/gtpv1_u_messages_types.h
	modified:   openair2/COMMON/intertask_interface_conf.h
	modified:   openair2/COMMON/mac_messages_def.h
	modified:   openair2/COMMON/mac_messages_types.h
	modified:   openair2/COMMON/mac_primitives.h
	modified:   openair2/COMMON/mac_rlc_primitives.h
	modified:   openair2/COMMON/mac_rrc_primitives.h
	modified:   openair2/COMMON/messages_def.h
	modified:   openair2/COMMON/messages_types.h
	modified:   openair2/COMMON/nas_messages_def.h
	modified:   openair2/COMMON/nas_messages_types.h
	modified:   openair2/COMMON/networkDef.h
	modified:   openair2/COMMON/openair_defs.h
	modified:   openair2/COMMON/openair_types.h
	modified:   openair2/COMMON/pdcp_messages_def.h
	modified:   openair2/COMMON/pdcp_messages_types.h
	modified:   openair2/COMMON/phy_messages_def.h
	modified:   openair2/COMMON/phy_messages_types.h
	modified:   openair2/COMMON/platform_constants.h
	modified:   openair2/COMMON/platform_types.h
	modified:   openair2/COMMON/ral_messages_def.h
	modified:   openair2/COMMON/ral_messages_types.h
	modified:   openair2/COMMON/rlc_messages_def.h
	modified:   openair2/COMMON/rlc_messages_types.h
	modified:   openair2/COMMON/rrc_messages_def.h
	modified:   openair2/COMMON/rrc_messages_types.h
	modified:   openair2/COMMON/rrm_config_structs.h
	modified:   openair2/COMMON/rrm_constants.h
	modified:   openair2/COMMON/rtos_header.h
	modified:   openair2/COMMON/s1ap_messages_def.h
	modified:   openair2/COMMON/s1ap_messages_types.h
	modified:   openair2/COMMON/sctp_messages_def.h
	modified:   openair2/COMMON/sctp_messages_types.h
	modified:   openair2/COMMON/tasks_def.h
	modified:   openair2/COMMON/udp_messages_def.h
	modified:   openair2/COMMON/udp_messages_types.h
	modified:   openair2/COMMON/x2ap_messages_def.h
	modified:   openair2/COMMON/x2ap_messages_types.h
	modified:   openair2/DOCS/TEMPLATES/CODE/example_doxy.h
	modified:   openair2/ENB_APP/enb_app.c
	modified:   openair2/ENB_APP/enb_app.h
	modified:   openair2/ENB_APP/enb_config.c
	modified:   openair2/ENB_APP/enb_config.h
	modified:   openair2/LAYER2/MAC/config.c
	modified:   openair2/LAYER2/MAC/defs.h
	modified:   openair2/LAYER2/MAC/eNB_scheduler.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_RA.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_bch.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_mch.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_primitives.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
	modified:   openair2/LAYER2/MAC/extern.h
	modified:   openair2/LAYER2/MAC/l1_helpers.c
	modified:   openair2/LAYER2/MAC/lte_transport_init.c
	modified:   openair2/LAYER2/MAC/main.c
	modified:   openair2/LAYER2/MAC/openair2_proc.c
	modified:   openair2/LAYER2/MAC/pre_processor.c
	modified:   openair2/LAYER2/MAC/proto.h
	modified:   openair2/LAYER2/MAC/ra_procedures.c
	modified:   openair2/LAYER2/MAC/rar_tools.c
	modified:   openair2/LAYER2/MAC/ue_procedures.c
	modified:   openair2/LAYER2/MAC/vars.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h
	modified:   openair2/LAYER2/RLC/mac_primitives.h
	modified:   openair2/LAYER2/RLC/rlc.c
	modified:   openair2/LAYER2/RLC/rlc.h
	modified:   openair2/LAYER2/RLC/rlc_def.h
	modified:   openair2/LAYER2/RLC/rlc_def_lte.h
	modified:   openair2/LAYER2/RLC/rlc_mac.c
	modified:   openair2/LAYER2/RLC/rlc_mpls.c
	modified:   openair2/LAYER2/RLC/rlc_primitives.h
	modified:   openair2/LAYER2/RLC/rlc_rrc.c
	modified:   openair2/LAYER2/layer2_top.c
	modified:   openair2/LAYER2/openair2_proc.c
	modified:   openair2/LAYER2/register.c
	modified:   openair2/LAYER2/register.h
	modified:   openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c
	modified:   openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c
	modified:   openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h
	modified:   openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c
	modified:   openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c
	modified:   openair2/NAS/nas_ue_task.h
	modified:   openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c
	modified:   openair2/NETWORK_DRIVER/LITE/classifier.c
	modified:   openair2/NETWORK_DRIVER/LITE/common.c
	modified:   openair2/NETWORK_DRIVER/LITE/constant.h
	modified:   openair2/NETWORK_DRIVER/LITE/device.c
	modified:   openair2/NETWORK_DRIVER/LITE/ioctl.c
	modified:   openair2/NETWORK_DRIVER/LITE/ioctl.h
	modified:   openair2/NETWORK_DRIVER/LITE/local.h
	modified:   openair2/NETWORK_DRIVER/LITE/netlink.c
	modified:   openair2/NETWORK_DRIVER/LITE/proto_extern.h
	modified:   openair2/NETWORK_DRIVER/LITE/sap.h
	modified:   openair2/NETWORK_DRIVER/LITE/tool.c
	modified:   openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c
	modified:   openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c
	modified:   openair2/NETWORK_DRIVER/MESH/classifier.c
	modified:   openair2/NETWORK_DRIVER/MESH/common.c
	modified:   openair2/NETWORK_DRIVER/MESH/constant.h
	modified:   openair2/NETWORK_DRIVER/MESH/device.c
	modified:   openair2/NETWORK_DRIVER/MESH/ioctl.c
	modified:   openair2/NETWORK_DRIVER/MESH/ioctl.h
	modified:   openair2/NETWORK_DRIVER/MESH/local.h
	modified:   openair2/NETWORK_DRIVER/MESH/mesh.c
	modified:   openair2/NETWORK_DRIVER/MESH/netlink.c
	modified:   openair2/NETWORK_DRIVER/MESH/proto_extern.h
	modified:   openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h
	modified:   openair2/NETWORK_DRIVER/MESH/sap.h
	modified:   openair2/NETWORK_DRIVER/MESH/tool.c
	modified:   openair2/NETWORK_DRIVER/UE_IP/common.c
	modified:   openair2/NETWORK_DRIVER/UE_IP/constant.h
	modified:   openair2/NETWORK_DRIVER/UE_IP/device.c
	modified:   openair2/NETWORK_DRIVER/UE_IP/local.h
	modified:   openair2/NETWORK_DRIVER/UE_IP/netlink.c
	modified:   openair2/NETWORK_DRIVER/UE_IP/proto_extern.h
	modified:   openair2/NETWORK_DRIVER/UE_IP/sap.h
	modified:   openair2/PHY_INTERFACE/defs.h
	modified:   openair2/PHY_INTERFACE/extern.h
	modified:   openair2/PHY_INTERFACE/mac_phy_primitives.c
	modified:   openair2/PHY_INTERFACE/mac_phy_primitives.h
	modified:   openair2/PHY_INTERFACE/vars.h
	modified:   openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c
	modified:   openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h
	modified:   openair2/RRC/LITE/L2_interface.c
	modified:   openair2/RRC/LITE/MESSAGES/asn1_msg.c
	modified:   openair2/RRC/LITE/MESSAGES/asn1_msg.h
	modified:   openair2/RRC/LITE/MESSAGES/rtai_mem.c
	modified:   openair2/RRC/LITE/MESSAGES/rtai_mem.h
	modified:   openair2/RRC/LITE/defs.h
	modified:   openair2/RRC/LITE/extern.h
	modified:   openair2/RRC/LITE/mesh_top.c
	modified:   openair2/RRC/LITE/plmn_data.h
	modified:   openair2/RRC/LITE/proto.h
	modified:   openair2/RRC/LITE/rrc_2_rrm_msg.c
	modified:   openair2/RRC/LITE/rrc_UE.c
	modified:   openair2/RRC/LITE/rrc_UE_ral.c
	modified:   openair2/RRC/LITE/rrc_UE_ral.h
	modified:   openair2/RRC/LITE/rrc_common.c
	modified:   openair2/RRC/LITE/rrc_config.c
	modified:   openair2/RRC/LITE/rrc_eNB.c
	modified:   openair2/RRC/LITE/rrc_eNB_GTPV1U.c
	modified:   openair2/RRC/LITE/rrc_eNB_GTPV1U.h
	modified:   openair2/RRC/LITE/rrc_eNB_S1AP.c
	modified:   openair2/RRC/LITE/rrc_eNB_S1AP.h
	modified:   openair2/RRC/LITE/rrc_eNB_UE_context.c
	modified:   openair2/RRC/LITE/rrc_eNB_UE_context.h
	modified:   openair2/RRC/LITE/rrc_eNB_ral.c
	modified:   openair2/RRC/LITE/rrc_eNB_ral.h
	modified:   openair2/RRC/LITE/rrc_rrm_interface.c
	modified:   openair2/RRC/LITE/rrc_rrm_interface.h
	modified:   openair2/RRC/LITE/rrc_types.h
	modified:   openair2/RRC/LITE/rrm_2_rrc_msg.c
	modified:   openair2/RRC/LITE/utils.c
	modified:   openair2/RRC/LITE/vars.h
	modified:   openair2/RRC/NAS/nas_config.c
	modified:   openair2/RRC/NAS/nas_config.h
	modified:   openair2/RRC/NAS/rb_config.c
	modified:   openair2/RRC/NAS/rb_config.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/Message.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/Message.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerConfirm.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerConfirm.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerRequest.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerRequest.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserConfirm.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserConfirm.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserRequest.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserRequest.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageConnectionRequest.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageConnectionRequest.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveRadioAccessBearerRequest.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveRadioAccessBearerRequest.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveUserRequest.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveUserRequest.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageUserReconfigurationComplete.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageUserReconfigurationComplete.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRCUdpSocket.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRCUdpSocket.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddRadioAccessBearerResponse.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddRadioAccessBearerResponse.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddUserResponse.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddUserResponse.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageConnectionResponse.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageConnectionResponse.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveRadioAccessBearerResponse.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveRadioAccessBearerResponse.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveUserResponse.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveUserResponse.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageUserReconfiguration.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageUserReconfiguration.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.h
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrm/RRMUdpSocket.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/com/rrm/RRMUdpSocket.h
	modified:   openair2/RRM_4_RRC_LITE/src/platform.h
	modified:   openair2/RRM_4_RRC_LITE/src/platform_constants.h
	modified:   openair2/RRM_4_RRC_LITE/src/platform_defines.h
	modified:   openair2/RRM_4_RRC_LITE/src/platform_dim.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Asn1Utils.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Asn1Utils.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Command.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Command.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/DataRadioBearer.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/DataRadioBearer.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/ENodeB.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/ENodeB.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Exceptions.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/LogicalChannel.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/LogicalChannel.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Mobile.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Mobile.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/RadioBearer.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/RadioBearer.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/RadioResources.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/RadioResources.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/SignallingRadioBearer.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/SignallingRadioBearer.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Transaction.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Transaction.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Transactions.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Transactions.h
	modified:   openair2/RRM_4_RRC_LITE/src/rrm.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/test/TestScenario.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/test/TestScenario.h
	modified:   openair2/RRM_4_RRC_LITE/src/test/test.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/version.h
	modified:   openair2/UTIL/BIGPHYS/bigphys.c
	modified:   openair2/UTIL/BIGPHYS/defs.h
	modified:   openair2/UTIL/CLI/cli.c
	modified:   openair2/UTIL/CLI/cli.h
	modified:   openair2/UTIL/CLI/cli_cmd.c
	modified:   openair2/UTIL/CLI/cli_if.h
	modified:   openair2/UTIL/CLI/cli_server.c
	modified:   openair2/UTIL/FIFO/pad_list.c
	modified:   openair2/UTIL/FIFO/pad_list.h
	modified:   openair2/UTIL/FIFO/types.h
	modified:   openair2/UTIL/LISTS/list.c
	modified:   openair2/UTIL/LISTS/list.h
	modified:   openair2/UTIL/LISTS/list2.c
	modified:   openair2/UTIL/LOG/log.c
	modified:   openair2/UTIL/LOG/log.h
	modified:   openair2/UTIL/LOG/log_extern.h
	modified:   openair2/UTIL/LOG/log_if.h
	modified:   openair2/UTIL/LOG/vcd_signal_dumper.c
	modified:   openair2/UTIL/LOG/vcd_signal_dumper.h
	modified:   openair2/UTIL/MATH/crc_byte.c
	modified:   openair2/UTIL/MATH/oml.c
	modified:   openair2/UTIL/MATH/oml.h
	modified:   openair2/UTIL/MATH/random.c
	modified:   openair2/UTIL/MATH/random_proto_extern.h
	modified:   openair2/UTIL/MATH/taus.c
	modified:   openair2/UTIL/MEM/mem_block.c
	modified:   openair2/UTIL/MEM/mem_block.h
	modified:   openair2/UTIL/MEM/mem_mngt.c
	modified:   openair2/UTIL/MEM/mem_mngt_proto_extern.h
	modified:   openair2/UTIL/MEM/mem_pool.h
	modified:   openair2/UTIL/OCG/OCG.c
	modified:   openair2/UTIL/OCG/OCG.h
	modified:   openair2/UTIL/OCG/OCG_call_emu.c
	modified:   openair2/UTIL/OCG/OCG_call_emu.h
	modified:   openair2/UTIL/OCG/OCG_config_mobi.c
	modified:   openair2/UTIL/OCG/OCG_config_mobi.h
	modified:   openair2/UTIL/OCG/OCG_create_dir.c
	modified:   openair2/UTIL/OCG/OCG_create_dir.h
	modified:   openair2/UTIL/OCG/OCG_detect_file.c
	modified:   openair2/UTIL/OCG/OCG_detect_file.h
	modified:   openair2/UTIL/OCG/OCG_extern.h
	modified:   openair2/UTIL/OCG/OCG_generate_report.c
	modified:   openair2/UTIL/OCG/OCG_generate_report.h
	modified:   openair2/UTIL/OCG/OCG_get_opt.c
	modified:   openair2/UTIL/OCG/OCG_get_opt.h
	modified:   openair2/UTIL/OCG/OCG_if.h
	modified:   openair2/UTIL/OCG/OCG_parse_XML.c
	modified:   openair2/UTIL/OCG/OCG_parse_XML.h
	modified:   openair2/UTIL/OCG/OCG_parse_filename.c
	modified:   openair2/UTIL/OCG/OCG_parse_filename.h
	modified:   openair2/UTIL/OCG/OCG_save_XML.c
	modified:   openair2/UTIL/OCG/OCG_save_XML.h
	modified:   openair2/UTIL/OCG/OCG_vars.h
	modified:   openair2/UTIL/OMG/client_traci_OMG.c
	modified:   openair2/UTIL/OMG/client_traci_OMG.h
	modified:   openair2/UTIL/OMG/common.c
	modified:   openair2/UTIL/OMG/defs.h
	modified:   openair2/UTIL/OMG/grid.c
	modified:   openair2/UTIL/OMG/grid.h
	modified:   openair2/UTIL/OMG/id_manager.c
	modified:   openair2/UTIL/OMG/id_manager.h
	modified:   openair2/UTIL/OMG/job.c
	modified:   openair2/UTIL/OMG/mobility_parser.c
	modified:   openair2/UTIL/OMG/mobility_parser.h
	modified:   openair2/UTIL/OMG/omg.c
	modified:   openair2/UTIL/OMG/omg.h
	modified:   openair2/UTIL/OMG/omg_constants.h
	modified:   openair2/UTIL/OMG/omg_hashtable.c
	modified:   openair2/UTIL/OMG/omg_hashtable.h
	modified:   openair2/UTIL/OMG/omg_vars.h
	modified:   openair2/UTIL/OMG/rwalk.c
	modified:   openair2/UTIL/OMG/rwalk.h
	modified:   openair2/UTIL/OMG/rwp.c
	modified:   openair2/UTIL/OMG/rwp.h
	modified:   openair2/UTIL/OMG/socket_traci_OMG.c
	modified:   openair2/UTIL/OMG/socket_traci_OMG.h
	modified:   openair2/UTIL/OMG/static.c
	modified:   openair2/UTIL/OMG/static.h
	modified:   openair2/UTIL/OMG/steadystaterwp.c
	modified:   openair2/UTIL/OMG/steadystaterwp.h
	modified:   openair2/UTIL/OMG/storage_traci_OMG.c
	modified:   openair2/UTIL/OMG/storage_traci_OMG.h
	modified:   openair2/UTIL/OMG/sumo.c
	modified:   openair2/UTIL/OMG/sumo.h
	modified:   openair2/UTIL/OMG/trace.c
	modified:   openair2/UTIL/OMG/trace.h
	modified:   openair2/UTIL/OMG/trace_hashtable.c
	modified:   openair2/UTIL/OMG/trace_hashtable.h
	modified:   openair2/UTIL/OMV/communicationthread.cpp
	modified:   openair2/UTIL/OMV/communicationthread.h
	modified:   openair2/UTIL/OMV/mywindow.cpp
	modified:   openair2/UTIL/OMV/mywindow.h
	modified:   openair2/UTIL/OMV/omv.cpp
	modified:   openair2/UTIL/OMV/openglwidget.cpp
	modified:   openair2/UTIL/OMV/openglwidget.h
	modified:   openair2/UTIL/OMV/structures.h
	modified:   openair2/UTIL/OPT/opt.h
	modified:   openair2/UTIL/OPT/socket_sender.c
	modified:   openair2/UTIL/OPT/vars.h
	modified:   openair2/UTIL/OSA/osa_defs.h
	modified:   openair2/UTIL/OSA/osa_internal.h
	modified:   openair2/UTIL/OSA/osa_key_deriver.c
	modified:   openair2/UTIL/OSA/osa_rijndael.c
	modified:   openair2/UTIL/OSA/osa_rijndael.h
	modified:   openair2/UTIL/OSA/osa_snow3g.c
	modified:   openair2/UTIL/OSA/osa_snow3g.h
	modified:   openair2/UTIL/OSA/osa_stream_eea.c
	modified:   openair2/UTIL/OSA/osa_stream_eia.c
	modified:   openair2/UTIL/OTG/main.c
	modified:   openair2/UTIL/OTG/otg.c
	modified:   openair2/UTIL/OTG/otg.h
	modified:   openair2/UTIL/OTG/otg_config.h
	modified:   openair2/UTIL/OTG/otg_defs.h
	modified:   openair2/UTIL/OTG/otg_externs.h
	modified:   openair2/UTIL/OTG/otg_form.c
	modified:   openair2/UTIL/OTG/otg_form.h
	modified:   openair2/UTIL/OTG/otg_kpi.c
	modified:   openair2/UTIL/OTG/otg_kpi.h
	modified:   openair2/UTIL/OTG/otg_models.c
	modified:   openair2/UTIL/OTG/otg_models.h
	modified:   openair2/UTIL/OTG/otg_rx.c
	modified:   openair2/UTIL/OTG/otg_rx.h
	modified:   openair2/UTIL/OTG/otg_rx_socket.c
	modified:   openair2/UTIL/OTG/otg_rx_socket.h
	modified:   openair2/UTIL/OTG/otg_tx.c
	modified:   openair2/UTIL/OTG/otg_tx.h
	modified:   openair2/UTIL/OTG/otg_tx_socket.c
	modified:   openair2/UTIL/OTG/otg_tx_socket.h
	modified:   openair2/UTIL/OTG/otg_vars.h
	modified:   openair2/UTIL/OTG/traffic_config.h
	modified:   openair2/UTIL/TIMER/umts_timer.c
	modified:   openair2/UTIL/TIMER/umts_timer.h
	modified:   openair2/UTIL/TIMER/umts_timer_proto_extern.h
	modified:   openair2/UTIL/TIMER/umts_timer_struct.h
	modified:   openair2/UTIL/TRACE/fifo_printf.c
	modified:   openair2/UTIL/TRACE/fifo_printf.h
	modified:   openair2/UTIL/TRACE/fifo_printf_proto_extern.h
	modified:   openair2/UTIL/TRACE/print.h
	modified:   openair2/X2AP/x2ap.c
	modified:   openair2/X2AP/x2ap.h
	modified:   openair2/X2AP/x2ap_common.c
	modified:   openair2/X2AP/x2ap_common.h
	modified:   openair3/COMMON/common_types.h
	modified:   openair3/COMMON/gtpv1_u_messages_def.h
	modified:   openair3/COMMON/gtpv1_u_messages_types.h
	modified:   openair3/COMMON/intertask_interface_conf.h
	modified:   openair3/COMMON/messages_def.h
	modified:   openair3/COMMON/messages_types.h
	modified:   openair3/COMMON/nas_messages_def.h
	modified:   openair3/COMMON/nas_messages_types.h
	modified:   openair3/COMMON/s1ap_messages_def.h
	modified:   openair3/COMMON/s1ap_messages_types.h
	modified:   openair3/COMMON/sctp_messages_def.h
	modified:   openair3/COMMON/sctp_messages_types.h
	modified:   openair3/COMMON/security_types.h
	modified:   openair3/COMMON/tasks_def.h
	modified:   openair3/COMMON/udp_messages_def.h
	modified:   openair3/COMMON/udp_messages_types.h
	modified:   openair3/GTPV1-U/gtpv1u.h
	modified:   openair3/GTPV1-U/gtpv1u_eNB.c
	modified:   openair3/GTPV1-U/gtpv1u_eNB_defs.h
	modified:   openair3/GTPV1-U/gtpv1u_eNB_task.h
	modified:   openair3/GTPV1-U/gtpv1u_sgw_defs.h
	modified:   openair3/GTPV1-U/gtpv1u_task.c
	modified:   openair3/GTPV1-U/gtpv1u_teid_pool.c
	modified:   openair3/NAS/COMMON/API/NETWORK/as_message.c
	modified:   openair3/NAS/COMMON/API/NETWORK/l2_message.h
	modified:   openair3/NAS/COMMON/API/NETWORK/nas_message.c
	modified:   openair3/NAS/COMMON/API/NETWORK/nas_message.h
	modified:   openair3/NAS/COMMON/API/NETWORK/network_api.c
	modified:   openair3/NAS/COMMON/API/NETWORK/network_api.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachAccept.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachAccept.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachComplete.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachComplete.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachReject.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachReject.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h
	modified:   openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c
	modified:   openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h
	modified:   openair3/NAS/COMMON/EMM/MSG/DetachAccept.c
	modified:   openair3/NAS/COMMON/EMM/MSG/DetachAccept.h
	modified:   openair3/NAS/COMMON/EMM/MSG/DetachRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/DetachRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c
	modified:   openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h
	modified:   openair3/NAS/COMMON/EMM/MSG/EmmInformation.c
	modified:   openair3/NAS/COMMON/EMM/MSG/EmmInformation.h
	modified:   openair3/NAS/COMMON/EMM/MSG/EmmStatus.c
	modified:   openair3/NAS/COMMON/EMM/MSG/EmmStatus.h
	modified:   openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c
	modified:   openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h
	modified:   openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c
	modified:   openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h
	modified:   openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c
	modified:   openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h
	modified:   openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h
	modified:   openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h
	modified:   openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c
	modified:   openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c
	modified:   openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c
	modified:   openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h
	modified:   openair3/NAS/COMMON/EMM/MSG/ServiceReject.c
	modified:   openair3/NAS/COMMON/EMM/MSG/ServiceReject.h
	modified:   openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c
	modified:   openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h
	modified:   openair3/NAS/COMMON/EMM/MSG/emm_cause.h
	modified:   openair3/NAS/COMMON/EMM/MSG/emm_msg.c
	modified:   openair3/NAS/COMMON/EMM/MSG/emm_msg.h
	modified:   openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c
	modified:   openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h
	modified:   openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmStatus.c
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmStatus.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/esm_cause.h
	modified:   openair3/NAS/COMMON/ESM/MSG/esm_msg.c
	modified:   openair3/NAS/COMMON/ESM/MSG/esm_msg.h
	modified:   openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h
	modified:   openair3/NAS/COMMON/IES/AccessPointName.c
	modified:   openair3/NAS/COMMON/IES/AccessPointName.h
	modified:   openair3/NAS/COMMON/IES/AdditionalUpdateResult.c
	modified:   openair3/NAS/COMMON/IES/AdditionalUpdateResult.h
	modified:   openair3/NAS/COMMON/IES/AdditionalUpdateType.c
	modified:   openair3/NAS/COMMON/IES/AdditionalUpdateType.h
	modified:   openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c
	modified:   openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h
	modified:   openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c
	modified:   openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h
	modified:   openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c
	modified:   openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h
	modified:   openair3/NAS/COMMON/IES/AuthenticationParameterRand.c
	modified:   openair3/NAS/COMMON/IES/AuthenticationParameterRand.h
	modified:   openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c
	modified:   openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h
	modified:   openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c
	modified:   openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h
	modified:   openair3/NAS/COMMON/IES/Cli.c
	modified:   openair3/NAS/COMMON/IES/Cli.h
	modified:   openair3/NAS/COMMON/IES/CsfbResponse.c
	modified:   openair3/NAS/COMMON/IES/CsfbResponse.h
	modified:   openair3/NAS/COMMON/IES/DaylightSavingTime.c
	modified:   openair3/NAS/COMMON/IES/DaylightSavingTime.h
	modified:   openair3/NAS/COMMON/IES/DetachType.c
	modified:   openair3/NAS/COMMON/IES/DetachType.h
	modified:   openair3/NAS/COMMON/IES/DrxParameter.c
	modified:   openair3/NAS/COMMON/IES/DrxParameter.h
	modified:   openair3/NAS/COMMON/IES/EmergencyNumberList.c
	modified:   openair3/NAS/COMMON/IES/EmergencyNumberList.h
	modified:   openair3/NAS/COMMON/IES/EmmCause.c
	modified:   openair3/NAS/COMMON/IES/EmmCause.h
	modified:   openair3/NAS/COMMON/IES/EpsAttachResult.c
	modified:   openair3/NAS/COMMON/IES/EpsAttachResult.h
	modified:   openair3/NAS/COMMON/IES/EpsAttachType.c
	modified:   openair3/NAS/COMMON/IES/EpsAttachType.h
	modified:   openair3/NAS/COMMON/IES/EpsBearerContextStatus.c
	modified:   openair3/NAS/COMMON/IES/EpsBearerContextStatus.h
	modified:   openair3/NAS/COMMON/IES/EpsBearerIdentity.c
	modified:   openair3/NAS/COMMON/IES/EpsBearerIdentity.h
	modified:   openair3/NAS/COMMON/IES/EpsMobileIdentity.c
	modified:   openair3/NAS/COMMON/IES/EpsMobileIdentity.h
	modified:   openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c
	modified:   openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h
	modified:   openair3/NAS/COMMON/IES/EpsQualityOfService.c
	modified:   openair3/NAS/COMMON/IES/EpsQualityOfService.h
	modified:   openair3/NAS/COMMON/IES/EpsUpdateResult.c
	modified:   openair3/NAS/COMMON/IES/EpsUpdateResult.h
	modified:   openair3/NAS/COMMON/IES/EpsUpdateType.c
	modified:   openair3/NAS/COMMON/IES/EpsUpdateType.h
	modified:   openair3/NAS/COMMON/IES/EsmCause.c
	modified:   openair3/NAS/COMMON/IES/EsmCause.h
	modified:   openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c
	modified:   openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h
	modified:   openair3/NAS/COMMON/IES/EsmMessageContainer.c
	modified:   openair3/NAS/COMMON/IES/EsmMessageContainer.h
	modified:   openair3/NAS/COMMON/IES/GprsTimer.c
	modified:   openair3/NAS/COMMON/IES/GprsTimer.h
	modified:   openair3/NAS/COMMON/IES/GutiType.c
	modified:   openair3/NAS/COMMON/IES/GutiType.h
	modified:   openair3/NAS/COMMON/IES/IdentityType2.c
	modified:   openair3/NAS/COMMON/IES/IdentityType2.h
	modified:   openair3/NAS/COMMON/IES/ImeisvRequest.c
	modified:   openair3/NAS/COMMON/IES/ImeisvRequest.h
	modified:   openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c
	modified:   openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h
	modified:   openair3/NAS/COMMON/IES/LcsClientIdentity.c
	modified:   openair3/NAS/COMMON/IES/LcsClientIdentity.h
	modified:   openair3/NAS/COMMON/IES/LcsIndicator.c
	modified:   openair3/NAS/COMMON/IES/LcsIndicator.h
	modified:   openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c
	modified:   openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h
	modified:   openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c
	modified:   openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h
	modified:   openair3/NAS/COMMON/IES/LocationAreaIdentification.c
	modified:   openair3/NAS/COMMON/IES/LocationAreaIdentification.h
	modified:   openair3/NAS/COMMON/IES/MessageType.c
	modified:   openair3/NAS/COMMON/IES/MessageType.h
	modified:   openair3/NAS/COMMON/IES/MobileIdentity.c
	modified:   openair3/NAS/COMMON/IES/MobileIdentity.h
	modified:   openair3/NAS/COMMON/IES/MobileStationClassmark2.c
	modified:   openair3/NAS/COMMON/IES/MobileStationClassmark2.h
	modified:   openair3/NAS/COMMON/IES/MobileStationClassmark3.c
	modified:   openair3/NAS/COMMON/IES/MobileStationClassmark3.h
	modified:   openair3/NAS/COMMON/IES/MsNetworkCapability.c
	modified:   openair3/NAS/COMMON/IES/MsNetworkCapability.h
	modified:   openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c
	modified:   openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h
	modified:   openair3/NAS/COMMON/IES/NasKeySetIdentifier.c
	modified:   openair3/NAS/COMMON/IES/NasKeySetIdentifier.h
	modified:   openair3/NAS/COMMON/IES/NasMessageContainer.c
	modified:   openair3/NAS/COMMON/IES/NasMessageContainer.h
	modified:   openair3/NAS/COMMON/IES/NasRequestType.c
	modified:   openair3/NAS/COMMON/IES/NasRequestType.h
	modified:   openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c
	modified:   openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h
	modified:   openair3/NAS/COMMON/IES/NetworkName.c
	modified:   openair3/NAS/COMMON/IES/NetworkName.h
	modified:   openair3/NAS/COMMON/IES/Nonce.c
	modified:   openair3/NAS/COMMON/IES/Nonce.h
	modified:   openair3/NAS/COMMON/IES/PTmsiSignature.c
	modified:   openair3/NAS/COMMON/IES/PTmsiSignature.h
	modified:   openair3/NAS/COMMON/IES/PacketFlowIdentifier.c
	modified:   openair3/NAS/COMMON/IES/PacketFlowIdentifier.h
	modified:   openair3/NAS/COMMON/IES/PagingIdentity.c
	modified:   openair3/NAS/COMMON/IES/PagingIdentity.h
	modified:   openair3/NAS/COMMON/IES/PdnAddress.c
	modified:   openair3/NAS/COMMON/IES/PdnAddress.h
	modified:   openair3/NAS/COMMON/IES/PdnType.c
	modified:   openair3/NAS/COMMON/IES/PdnType.h
	modified:   openair3/NAS/COMMON/IES/PlmnList.c
	modified:   openair3/NAS/COMMON/IES/PlmnList.h
	modified:   openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c
	modified:   openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h
	modified:   openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c
	modified:   openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h
	modified:   openair3/NAS/COMMON/IES/ProtocolDiscriminator.c
	modified:   openair3/NAS/COMMON/IES/ProtocolDiscriminator.h
	modified:   openair3/NAS/COMMON/IES/QualityOfService.c
	modified:   openair3/NAS/COMMON/IES/QualityOfService.h
	modified:   openair3/NAS/COMMON/IES/RadioPriority.c
	modified:   openair3/NAS/COMMON/IES/RadioPriority.h
	modified:   openair3/NAS/COMMON/IES/SecurityHeaderType.c
	modified:   openair3/NAS/COMMON/IES/SecurityHeaderType.h
	modified:   openair3/NAS/COMMON/IES/ServiceType.c
	modified:   openair3/NAS/COMMON/IES/ServiceType.h
	modified:   openair3/NAS/COMMON/IES/ShortMac.c
	modified:   openair3/NAS/COMMON/IES/ShortMac.h
	modified:   openair3/NAS/COMMON/IES/SsCode.c
	modified:   openair3/NAS/COMMON/IES/SsCode.h
	modified:   openair3/NAS/COMMON/IES/SupportedCodecList.c
	modified:   openair3/NAS/COMMON/IES/SupportedCodecList.h
	modified:   openair3/NAS/COMMON/IES/TimeZone.c
	modified:   openair3/NAS/COMMON/IES/TimeZone.h
	modified:   openair3/NAS/COMMON/IES/TimeZoneAndTime.c
	modified:   openair3/NAS/COMMON/IES/TimeZoneAndTime.h
	modified:   openair3/NAS/COMMON/IES/TmsiStatus.c
	modified:   openair3/NAS/COMMON/IES/TmsiStatus.h
	modified:   openair3/NAS/COMMON/IES/TrackingAreaIdentity.c
	modified:   openair3/NAS/COMMON/IES/TrackingAreaIdentity.h
	modified:   openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c
	modified:   openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h
	modified:   openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c
	modified:   openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h
	modified:   openair3/NAS/COMMON/IES/TrafficFlowTemplate.c
	modified:   openair3/NAS/COMMON/IES/TrafficFlowTemplate.h
	modified:   openair3/NAS/COMMON/IES/TransactionIdentifier.c
	modified:   openair3/NAS/COMMON/IES/TransactionIdentifier.h
	modified:   openair3/NAS/COMMON/IES/UeNetworkCapability.c
	modified:   openair3/NAS/COMMON/IES/UeNetworkCapability.h
	modified:   openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c
	modified:   openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h
	modified:   openair3/NAS/COMMON/IES/UeSecurityCapability.c
	modified:   openair3/NAS/COMMON/IES/UeSecurityCapability.h
	modified:   openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c
	modified:   openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h
	modified:   openair3/NAS/COMMON/UTIL/OctetString.c
	modified:   openair3/NAS/COMMON/UTIL/OctetString.h
	modified:   openair3/NAS/COMMON/UTIL/TLVDecoder.c
	modified:   openair3/NAS/COMMON/UTIL/TLVDecoder.h
	modified:   openair3/NAS/COMMON/UTIL/TLVEncoder.c
	modified:   openair3/NAS/COMMON/UTIL/TLVEncoder.h
	modified:   openair3/NAS/COMMON/UTIL/device.c
	modified:   openair3/NAS/COMMON/UTIL/device.h
	modified:   openair3/NAS/COMMON/UTIL/memory.c
	modified:   openair3/NAS/COMMON/UTIL/memory.h
	modified:   openair3/NAS/COMMON/UTIL/nas_log.c
	modified:   openair3/NAS/COMMON/UTIL/nas_log.h
	modified:   openair3/NAS/COMMON/UTIL/nas_timer.c
	modified:   openair3/NAS/COMMON/UTIL/nas_timer.h
	modified:   openair3/NAS/COMMON/UTIL/parser.c
	modified:   openair3/NAS/COMMON/UTIL/parser.h
	modified:   openair3/NAS/COMMON/UTIL/socket.c
	modified:   openair3/NAS/COMMON/UTIL/socket.h
	modified:   openair3/NAS/COMMON/UTIL/stty.c
	modified:   openair3/NAS/COMMON/UTIL/tst/timer.c
	modified:   openair3/NAS/COMMON/securityDef.h
	modified:   openair3/NAS/COMMON/userDef.h
	modified:   openair3/NAS/TEST/AS_SIMULATOR/as_data.c
	modified:   openair3/NAS/TEST/AS_SIMULATOR/as_data.h
	modified:   openair3/NAS/TEST/AS_SIMULATOR/as_process.c
	modified:   openair3/NAS/TEST/AS_SIMULATOR/as_process.h
	modified:   openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c
	modified:   openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c
	modified:   openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h
	modified:   openair3/NAS/TEST/AS_SIMULATOR/nas_data.c
	modified:   openair3/NAS/TEST/AS_SIMULATOR/nas_data.h
	modified:   openair3/NAS/TEST/AS_SIMULATOR/nas_process.c
	modified:   openair3/NAS/TEST/AS_SIMULATOR/nas_process.h
	modified:   openair3/NAS/TEST/NETWORK/network_parser.c
	modified:   openair3/NAS/TEST/NETWORK/network_parser.h
	modified:   openair3/NAS/TEST/NETWORK/network_simulator.c
	modified:   openair3/NAS/TEST/USER/user_parser.c
	modified:   openair3/NAS/TEST/USER/user_parser.h
	modified:   openair3/NAS/TEST/USER/user_simulator.c
	modified:   openair3/NAS/TOOLS/network.h
	modified:   openair3/NAS/TOOLS/ue_data.c
	modified:   openair3/NAS/TOOLS/usim_data.c
	modified:   openair3/NAS/UE/API/USER/at_command.c
	modified:   openair3/NAS/UE/API/USER/at_command.h
	modified:   openair3/NAS/UE/API/USER/at_error.c
	modified:   openair3/NAS/UE/API/USER/at_error.h
	modified:   openair3/NAS/UE/API/USER/at_response.c
	modified:   openair3/NAS/UE/API/USER/at_response.h
	modified:   openair3/NAS/UE/API/USER/tst/at_parser.c
	modified:   openair3/NAS/UE/API/USER/user_api.c
	modified:   openair3/NAS/UE/API/USER/user_api.h
	modified:   openair3/NAS/UE/API/USER/user_indication.c
	modified:   openair3/NAS/UE/API/USER/user_indication.h
	modified:   openair3/NAS/UE/API/USIM/aka_functions.c
	modified:   openair3/NAS/UE/API/USIM/aka_functions.h
	modified:   openair3/NAS/UE/API/USIM/usim_api.c
	modified:   openair3/NAS/UE/API/USIM/usim_api.h
	modified:   openair3/NAS/UE/EMM/Attach.c
	modified:   openair3/NAS/UE/EMM/Authentication.c
	modified:   openair3/NAS/UE/EMM/Detach.c
	modified:   openair3/NAS/UE/EMM/EmmStatusHdl.c
	modified:   openair3/NAS/UE/EMM/Identification.c
	modified:   openair3/NAS/UE/EMM/IdleMode.c
	modified:   openair3/NAS/UE/EMM/IdleMode.h
	modified:   openair3/NAS/UE/EMM/LowerLayer.c
	modified:   openair3/NAS/UE/EMM/LowerLayer.h
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregistered.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmNull.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegistered.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_as.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_as.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_asDef.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_esm.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_esm.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_esmDef.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_fsm.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_fsm.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_recv.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_recv.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_reg.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_reg.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_regDef.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_sap.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_sap.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_send.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_send.h
	modified:   openair3/NAS/UE/EMM/SecurityModeControl.c
	modified:   openair3/NAS/UE/EMM/ServiceRequestHdl.c
	modified:   openair3/NAS/UE/EMM/TrackingAreaUpdate.c
	modified:   openair3/NAS/UE/EMM/emmData.h
	modified:   openair3/NAS/UE/EMM/emm_main.c
	modified:   openair3/NAS/UE/EMM/emm_main.h
	modified:   openair3/NAS/UE/EMM/emm_proc.h
	modified:   openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
	modified:   openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
	modified:   openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c
	modified:   openair3/NAS/UE/ESM/EsmStatusHdl.c
	modified:   openair3/NAS/UE/ESM/PdnConnectivity.c
	modified:   openair3/NAS/UE/ESM/PdnDisconnect.c
	modified:   openair3/NAS/UE/ESM/SAP/esm_recv.c
	modified:   openair3/NAS/UE/ESM/SAP/esm_recv.h
	modified:   openair3/NAS/UE/ESM/SAP/esm_sap.c
	modified:   openair3/NAS/UE/ESM/SAP/esm_sap.h
	modified:   openair3/NAS/UE/ESM/SAP/esm_sapDef.h
	modified:   openair3/NAS/UE/ESM/SAP/esm_send.c
	modified:   openair3/NAS/UE/ESM/SAP/esm_send.h
	modified:   openair3/NAS/UE/ESM/esmData.h
	modified:   openair3/NAS/UE/ESM/esm_ebr.c
	modified:   openair3/NAS/UE/ESM/esm_ebr.h
	modified:   openair3/NAS/UE/ESM/esm_ebr_context.c
	modified:   openair3/NAS/UE/ESM/esm_ebr_context.h
	modified:   openair3/NAS/UE/ESM/esm_ip.c
	modified:   openair3/NAS/UE/ESM/esm_main.c
	modified:   openair3/NAS/UE/ESM/esm_main.h
	modified:   openair3/NAS/UE/ESM/esm_proc.h
	modified:   openair3/NAS/UE/ESM/esm_pt.c
	modified:   openair3/NAS/UE/ESM/esm_pt.h
	modified:   openair3/NAS/UE/UEprocess.c
	modified:   openair3/NAS/UE/nas_itti_messaging.c
	modified:   openair3/NAS/UE/nas_itti_messaging.h
	modified:   openair3/NAS/UE/nas_network.c
	modified:   openair3/NAS/UE/nas_network.h
	modified:   openair3/NAS/UE/nas_parser.c
	modified:   openair3/NAS/UE/nas_parser.h
	modified:   openair3/NAS/UE/nas_proc.c
	modified:   openair3/NAS/UE/nas_proc.h
	modified:   openair3/NAS/UE/nas_ue_task.c
	modified:   openair3/NAS/UE/nas_user.c
	modified:   openair3/NAS/UE/nas_user.h
	modified:   openair3/S1AP/s1ap_common.c
	modified:   openair3/S1AP/s1ap_common.h
	modified:   openair3/S1AP/s1ap_eNB.c
	modified:   openair3/S1AP/s1ap_eNB.h
	modified:   openair3/S1AP/s1ap_eNB_context_management_procedures.c
	modified:   openair3/S1AP/s1ap_eNB_context_management_procedures.h
	modified:   openair3/S1AP/s1ap_eNB_decoder.c
	modified:   openair3/S1AP/s1ap_eNB_decoder.h
	modified:   openair3/S1AP/s1ap_eNB_default_values.h
	modified:   openair3/S1AP/s1ap_eNB_defs.h
	modified:   openair3/S1AP/s1ap_eNB_encoder.c
	modified:   openair3/S1AP/s1ap_eNB_encoder.h
	modified:   openair3/S1AP/s1ap_eNB_handlers.c
	modified:   openair3/S1AP/s1ap_eNB_handlers.h
	modified:   openair3/S1AP/s1ap_eNB_itti_messaging.c
	modified:   openair3/S1AP/s1ap_eNB_itti_messaging.h
	modified:   openair3/S1AP/s1ap_eNB_management_procedures.c
	modified:   openair3/S1AP/s1ap_eNB_management_procedures.h
	modified:   openair3/S1AP/s1ap_eNB_nas_procedures.c
	modified:   openair3/S1AP/s1ap_eNB_nas_procedures.h
	modified:   openair3/S1AP/s1ap_eNB_nnsf.c
	modified:   openair3/S1AP/s1ap_eNB_nnsf.h
	modified:   openair3/S1AP/s1ap_eNB_overload.c
	modified:   openair3/S1AP/s1ap_eNB_overload.h
	modified:   openair3/S1AP/s1ap_eNB_trace.c
	modified:   openair3/S1AP/s1ap_eNB_trace.h
	modified:   openair3/S1AP/s1ap_eNB_ue_context.c
	modified:   openair3/S1AP/s1ap_eNB_ue_context.h
	modified:   openair3/SCTP/sctp_common.c
	modified:   openair3/SCTP/sctp_common.h
	modified:   openair3/SCTP/sctp_default_values.h
	modified:   openair3/SCTP/sctp_eNB_defs.h
	modified:   openair3/SCTP/sctp_eNB_itti_messaging.c
	modified:   openair3/SCTP/sctp_eNB_itti_messaging.h
	modified:   openair3/SCTP/sctp_eNB_task.c
	modified:   openair3/SCTP/sctp_eNB_task.h
	modified:   openair3/SCTP/sctp_primitives_client.c
	modified:   openair3/SCTP/sctp_primitives_client.h
	modified:   openair3/SECU/kdf.c
	modified:   openair3/SECU/key_nas_deriver.c
	modified:   openair3/SECU/key_nas_encryption.c
	modified:   openair3/SECU/nas_stream_eea1.c
	modified:   openair3/SECU/nas_stream_eea2.c
	modified:   openair3/SECU/nas_stream_eia1.c
	modified:   openair3/SECU/nas_stream_eia2.c
	modified:   openair3/SECU/rijndael.c
	modified:   openair3/SECU/rijndael.h
	modified:   openair3/SECU/secu_defs.h
	modified:   openair3/SECU/snow3g.c
	modified:   openair3/SECU/snow3g.h
	modified:   openair3/TEST/EPC_TEST/generate_scenario.c
	modified:   openair3/TEST/EPC_TEST/generate_scenario.h
	modified:   openair3/TEST/EPC_TEST/play_scenario.c
	modified:   openair3/TEST/EPC_TEST/play_scenario.h
	modified:   openair3/TEST/EPC_TEST/play_scenario_decode.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_display.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_fsm.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_parse.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_s1ap.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h
	modified:   openair3/TEST/EPC_TEST/play_scenario_sctp.c
	modified:   openair3/TEST/oaisim_mme_client_test.c
	modified:   openair3/TEST/oaisim_mme_itti_test.c
	modified:   openair3/TEST/oaisim_mme_list_benchmark.c
	modified:   openair3/TEST/oaisim_mme_s1ap_test.c
	modified:   openair3/TEST/oaisim_mme_sctp_test.c
	modified:   openair3/TEST/oaisim_mme_test_s1c.c
	modified:   openair3/TEST/oaisim_mme_test_s1c.h
	modified:   openair3/TEST/oaisim_mme_test_s1c_s1ap.c
	modified:   openair3/TEST/oaisim_mme_test_s1c_s1ap.h
	modified:   openair3/TEST/oaisim_mme_test_s1c_scenario.c
	modified:   openair3/TEST/oaisim_mme_test_s1c_scenario.h
	modified:   openair3/TEST/oaisim_mme_test_s1c_scenario1.c
	modified:   openair3/TEST/test_aes128_cmac_encrypt.c
	modified:   openair3/TEST/test_aes128_ctr_decrypt.c
	modified:   openair3/TEST/test_aes128_ctr_encrypt.c
	modified:   openair3/TEST/test_kdf.c
	modified:   openair3/TEST/test_s1ap.c
	modified:   openair3/TEST/test_secu.c
	modified:   openair3/TEST/test_secu_kenb.c
	modified:   openair3/TEST/test_secu_knas.c
	modified:   openair3/TEST/test_secu_knas_encrypt_eea1.c
	modified:   openair3/TEST/test_secu_knas_encrypt_eea2.c
	modified:   openair3/TEST/test_secu_knas_encrypt_eia1.c
	modified:   openair3/TEST/test_secu_knas_encrypt_eia2.c
	modified:   openair3/TEST/test_secu_knas_stream_int.c
	modified:   openair3/UDP/udp_eNB_task.c
	modified:   openair3/UDP/udp_eNB_task.h
	modified:   openair3/UTILS/conversions.c
	modified:   openair3/UTILS/conversions.h
	modified:   openair3/UTILS/enum_string.c
	modified:   openair3/UTILS/enum_string.h
	modified:   openair3/UTILS/log.c
	modified:   openair3/UTILS/log.h
	modified:   openair3/UTILS/mcc_mnc_itu.c
	modified:   openair3/UTILS/mcc_mnc_itu.h
	modified:   openair3/UTILS/mme_config.c
	modified:   openair3/UTILS/mme_config.h
	modified:   openair3/UTILS/mme_default_values.h
	modified:   targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c
	modified:   targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h
	modified:   targets/ARCH/COMMON/common_lib.c
	modified:   targets/ARCH/COMMON/common_lib.h
	modified:   targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c
	modified:   targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
	modified:   targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
	modified:   targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h
	modified:   targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h
	modified:   targets/ARCH/EXMIMO/DEFS/openair_device.h
	modified:   targets/ARCH/EXMIMO/DEFS/pcie_interface.h
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c
	modified:   targets/ARCH/EXMIMO/USERSPACE/LIB/example.c
	modified:   targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c
	modified:   targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h
	modified:   targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
	modified:   targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h
	modified:   targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c
	modified:   targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h
	modified:   targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h
	modified:   targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
	modified:   targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp
	modified:   targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
	modified:   targets/COMMON/create_tasks.c
	modified:   targets/COMMON/create_tasks.h
	modified:   targets/RT/USER/TOOLS/thread_ipc.c
	modified:   targets/RT/USER/TOOLS/thread_ipc.h
	modified:   targets/RT/USER/UE_transport_IQ.c
	modified:   targets/RT/USER/condtest.c
	modified:   targets/RT/USER/eNB_transport_IQ.c
	modified:   targets/RT/USER/emos-raw.c
	modified:   targets/RT/USER/lte-enb.c
	modified:   targets/RT/USER/lte-softmodem.c
	modified:   targets/RT/USER/lte-ue.c
	modified:   targets/RT/USER/msg_helper.c
	modified:   targets/RT/USER/msg_many.c
	modified:   targets/RT/USER/msg_many.h
	modified:   targets/RT/USER/rrh.c
	modified:   targets/RT/USER/rrh_gw.c
	modified:   targets/RT/USER/rrh_gw.h
	modified:   targets/RT/USER/rrh_gw_externs.h
	modified:   targets/RT/USER/rt_wrapper.c
	modified:   targets/RT/USER/rt_wrapper.h
	modified:   targets/RT/USER/sleeptest.c
	modified:   targets/RT/USER/stats.c
	modified:   targets/RT/USER/stats.h
	modified:   targets/RT/USER/synctest.c
	modified:   targets/SIMU/PROC/Process.c
	modified:   targets/SIMU/PROC/Process.h
	modified:   targets/SIMU/PROC/Tsync.h
	modified:   targets/SIMU/PROC/channel_sim_proc.c
	modified:   targets/SIMU/PROC/channel_sim_proc.h
	modified:   targets/SIMU/PROC/interface.h
	modified:   targets/SIMU/USER/channel_sim.c
	modified:   targets/SIMU/USER/cor_SF_sim.c
	modified:   targets/SIMU/USER/cor_SF_sim.h
	modified:   targets/SIMU/USER/event_handler.c
	modified:   targets/SIMU/USER/event_handler.h
	modified:   targets/SIMU/USER/init_lte.c
	modified:   targets/SIMU/USER/init_lte.h
	modified:   targets/SIMU/USER/oaisim.c
	modified:   targets/SIMU/USER/oaisim.h
	modified:   targets/SIMU/USER/oaisim_config.c
	modified:   targets/SIMU/USER/oaisim_config.h
	modified:   targets/SIMU/USER/oaisim_functions.c
	modified:   targets/SIMU/USER/oaisim_functions.h
	modified:   targets/SIMU/USER/oaisim_pad.c
	modified:   targets/SIMU/USER/phy_procedures_sim_form.c
	modified:   targets/SIMU/USER/phy_procedures_sim_form.h
	modified:   targets/SIMU/USER/sinr_sim.c
	modified:   targets/TEST/AT_COMMANDS/oaisim.c
	modified:   targets/TEST/PACKET_TRACER/pt.c
	modified:   targets/TEST/PDCP/test_pdcp.c
	modified:   targets/TEST/PDCP/test_pdcp.h
	modified:   targets/TEST/PDCP/test_util.h
	modified:   targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c
	modified:   targets/TEST/RLC_AM_V9.3.0/oaisim.c
	modified:   targets/TEST/RLC_UM_V9.3.0/oaisim.c
	modified:   targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp
	modified:   targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp
	modified:   targets/TEST/ROHDE_SCHWARZ/TcpClient.h
2016-09-27 16:54:39 +02:00
Rohit Gupta
c034cc75df Merge branch 'enhancement-10-harmony' into develop 2016-09-27 16:35:21 +02:00
S. Sandeep Kumar
52880e0c17 fix node_function in oaisim conf files 2016-09-27 18:53:05 +05:30
Cedric Roux
0d7039d36a rename COPYING to LICENSE 2016-09-27 15:06:56 +02:00
Cedric Roux
7a724e7d2e Merge remote-tracking branch 'origin/develop' into feature-131-new-license
Conflicts:
	openair1/PHY/INIT/lte_init.c
	openair1/PHY/LTE_TRANSPORT/dci_tools.c
	openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
	openair1/SCHED/phy_procedures_lte_eNb.c
	openair1/SCHED/phy_procedures_lte_ue.c
	openair1/SIMULATION/LTE_PHY/dlsim.c
	openair1/SIMULATION/RF/adc.c
	openair2/LAYER2/MAC/lte_transport_init.c
	targets/RT/USER/lte-softmodem.c
	targets/RT/USER/sched_dlsch.c
	targets/RT/USER/sched_rx_pdsch.c
	targets/RT/USER/sched_ulsch.c
	targets/SIMU/USER/oaisim.c
2016-09-27 15:05:00 +02:00
Cedric Roux
f06dd02fe8 change COPYING to the new license 2016-09-27 14:36:06 +02:00
fnabet
679e7f6d40 Merge branch 'develop' into develop1B 2016-09-27 14:29:47 +02:00
S. Sandeep Kumar
2c45e04951 add static to the declaration of inline in PHY/defs.h 2016-09-27 15:46:34 +05:30
calvin wang
8ce73e5a7e L2 stabilization BSR fertilization 2016-09-27 17:08:17 +08:00
Cedric Roux
e08e2577f5 hotfix: bad copy from userspace by ExpressMIMO2 kernel driver
The ExpressMIMO2 kernel driver did not use proper mechanisms
to copy from user space.

It is very surprising that it ever worked at all...

This commit is a quick fix. It is not the end of the story
and some more work may be needed if things don't work.

The remaining issue is that we pass pointer addresses to the
kernel as 32 bits values, but pointers are 64 bits values
(on x86_64, our supported platform). Some checks have been
put in place to detect if upper 32 bits of a pointer are
not 0 and print a strong error message in case of problem,
but no clean solution has been implemented.
2016-09-27 10:57:03 +02:00
Rohit Gupta
7361e74eb9 Merge branch 'enhancement-10-harmony' into develop 2016-09-27 10:40:03 +02:00
Rohit Gupta
33fddd3a9a Merge branch 'develop' into enhancement-10-harmony 2016-09-27 10:39:28 +02:00
Rohit Gupta
460f01f6d3 Gitlab CI test case modified file + disable cpu affinity 2016-09-27 10:38:13 +02:00
Raymond Knopp
ff90a54ad9 bugfix for 4096 and 8192-point dfts. 2016-09-26 12:08:33 -07:00
Rohit Gupta
265a2d01bd update USRP config files with calibration verified 2016-09-26 19:08:11 +02:00
Florian Kaltenberger
784c4e4941 adding missing symbol to octave tools 2016-09-26 17:19:51 +02:00
Rohit Gupta
da100fb693 add NTP for synch time between test setup machines 2016-09-26 14:21:35 +02:00
Rohit Gupta
b1fc862b9b Merge branch 'enhancement-10-harmony' of gitlab.eurecom.fr:oai/openairinterface5g into enhancement-10-harmony 2016-09-26 14:18:34 +02:00
Rohit Gupta
2d3333dd6b Gitlab CI: fix for cleaning memory only when critically low 2016-09-26 14:13:32 +02:00
Rohit Gupta
c7ae754066 compilation fix for pbchsim 2016-09-26 13:12:34 +02:00
Rohit Gupta
ce9c87026d minor compilation fixes to LMSSDR driver 2016-09-26 13:05:48 +02:00
Rohit Gupta
2f00edeb8e minor compilation fixes to BladeRF driver 2016-09-26 12:53:50 +02:00
Florian Kaltenberger
e94eb6673c moving hastable into other directory and adding OAI license 2016-09-25 16:29:12 +02:00
Florian Kaltenberger
cc6926c559 removing duplicate files 2016-09-25 16:13:58 +02:00
Raymond Knopp
3124cb2c00 more fixes for oaisim, TM2. 2016-09-25 14:53:16 +02:00
Raymond Knopp
7df5c381fd Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-24 22:04:19 -07:00
Raymond Knopp
829ee59707 fixes for oaisim, testing TM2 2016-09-24 22:03:35 -07:00
Rohit Gupta
e584ce06c4 Gitlab CI:minor type in python script 2016-09-24 21:16:10 +02:00
Rohit Gupta
a4d3ec8dc4 Gitlab CI:minor fix to log directory creation 2016-09-24 21:14:31 +02:00
Rohit Gupta
2098dcdd0a Gitlab CI: minor fix to how processes are terminated 2016-09-24 21:06:19 +02:00
Rohit Gupta
1edceeb6ea config files fix for new params in enhancement-10-harmony branch 2016-09-24 19:58:24 +02:00
Rohit Gupta
574fbd661c activate TX path of UE 2016-09-23 16:38:20 +02:00
Raymond Knopp
7c9f9763e8 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-23 02:39:02 +02:00
Raymond Knopp
5e7f007009 fixed --single-thread flag (when not set) 2016-09-23 02:08:52 +02:00
Rohit Gupta
5b489d530d Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-22 18:37:01 +02:00
Rohit Gupta
29fac70eb6 minor fix pthread_create call 2016-09-22 18:36:35 +02:00
Raymond Knopp
19818393e6 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-22 16:23:30 +02:00
Raymond Knopp
e5b643d03c updates for UE with USRP 2016-09-22 16:22:55 +02:00
Rohit Gupta
898774d68a minor compilation fix 2016-09-21 19:08:25 +02:00
Rohit Gupta
41b80a11d0 Merge from develop 2016-09-21 18:27:24 +02:00
Raymond Knopp
7af3d98fd9 bugfix in ulsch_decoding. removal of logging in pucch.c and usrp_lib.cpp. 2016-09-21 17:23:50 +02:00
Raymond Knopp
f05013a287 real changes for L1 threading. previous was bogus 2016-09-20 16:55:16 +02:00
Raymond Knopp
8d15dfe894 small bugs for lte-softmodem with parallel threads in L1 2016-09-20 07:57:27 -07:00
Raymond Knopp
43f96a0eac finishing merge with develop 2016-09-19 14:13:11 -07:00
Wilson W.K. Thong
754cab7ec4 added SFN to wireshark logging output
Conflicts:
	openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
	openair2/LAYER2/MAC/ue_procedures.c
2016-09-19 15:08:50 +08:00
Raymond Knopp
7678f88a47 Merge branch 'develop' into enhancement-10-harmony
Conflicts:
	cmake_targets/autotests/test_case_list.xml
	openair1/PHY/INIT/lte_init.c
	openair1/PHY/INIT/lte_param_init.c
	openair1/PHY/LTE_TRANSPORT/pucch.c
	openair1/SIMULATION/LTE_PHY/pdcchsim.c
	openair2/ENB_APP/enb_config.h
	openair2/RRC/LITE/rrc_eNB.c
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf
	targets/RT/USER/lte-softmodem.c
	targets/SIMU/USER/init_lte.c
	targets/SIMU/USER/oaisim.c
	targets/SIMU/USER/oaisim_functions.c
2016-09-18 22:16:29 -07:00
Wilson W.K. Thong
95077bae4f removed words 'wilson' from src 2016-09-19 12:01:16 +08:00
Wilson W.K. Thong
1de77c7a4e changed so USRP also uses the piece of codes EXMIMO is uing in setting TA=624 when it is TDD
(cherry picked from commit a75dbc4156ed4e216145f1deb81c6e04c1cddf02)
2016-09-19 12:00:39 +08:00
Wilson W.K. Thong
6feb848ebe removed all 'wilson' and 'ASTRI' words from comments
Conflicts:
	openair2/LAYER2/PDCP_v10.1.0/pdcp.c
	openair2/LAYER2/RLC/rlc_rrc.c
2016-09-19 11:53:55 +08:00
Wilson W.K. Thong
19c81e741e fixed hard-code DRB-ID<->LC-ID mapping (DRB-ID = LC-ID - 2) so they are not fully configurable
fixed hard-code default DRB-ID (1) so it is now fully configurable

(cherry picked from commit 4499124853b8985c3f157721997125370f1ca475)

Conflicts:
	openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c

Conflicts:
	openair2/LAYER2/PDCP_v10.1.0/pdcp.c
2016-09-19 11:53:55 +08:00
Wilson W.K. Thong
7e2c8e39f8 fixed oaisim build failed with the new KeNB refresh request message from NAS -> AS 2016-09-19 11:32:46 +08:00
Wilson W.K. Thong
fe2b7d80d3 removed 'wilson' from the codes 2016-09-19 11:32:46 +08:00
Wilson W.K. Thong
6b48fd6380 ** new procedure - refresh kENB from NAS -> AS **
added flow to refresh KeNB key in RRC on receiving S1AP-InitialContextSetup
added flow to configure PDCP security mode
enabled filling in the PDCP MAC code during and after RRC-SMC procedure

(cherry picked from commit 898cd5c45aedb27625d73352568211b4467c8dd9)
2016-09-19 11:32:46 +08:00
Raymond Knopp
b8a37a34cf pucch format 2/2a/2b UE TX 2016-09-17 14:55:26 -07:00
Raymond Knopp
2d73663bc6 modifications for odd N_RB_DL in dlsch_modulation.c 2016-09-15 10:03:50 -07:00
Cedric Roux
3d88f4ed2f remove copyright notice
All the *.c *.h and *.cpp files that have a eurecom copyright at
the head have been processed.

All other files (ie. those with other extensions) have not been touched.

 Changes to be committed:
	modified:   common/utils/asn1_conversions.h
	modified:   common/utils/assertions.h
	modified:   common/utils/collection/hashtable/hashtable.c
	modified:   common/utils/collection/hashtable/hashtable.h
	modified:   common/utils/collection/hashtable/obj_hashtable.c
	modified:   common/utils/collection/hashtable/obj_hashtable.h
	modified:   common/utils/itti/assertions.h
	modified:   common/utils/itti/backtrace.c
	modified:   common/utils/itti/backtrace.h
	modified:   common/utils/itti/intertask_interface.c
	modified:   common/utils/itti/intertask_interface.h
	modified:   common/utils/itti/intertask_interface_dump.c
	modified:   common/utils/itti/intertask_interface_dump.h
	modified:   common/utils/itti/intertask_interface_init.h
	modified:   common/utils/itti/intertask_interface_types.h
	modified:   common/utils/itti/intertask_messages_def.h
	modified:   common/utils/itti/intertask_messages_types.h
	modified:   common/utils/itti/itti_types.h
	modified:   common/utils/itti/memory_pools.c
	modified:   common/utils/itti/memory_pools.h
	modified:   common/utils/itti/messages_def.h
	modified:   common/utils/itti/messages_types.h
	modified:   common/utils/itti/signals.c
	modified:   common/utils/itti/signals.h
	modified:   common/utils/itti/tasks_def.h
	modified:   common/utils/itti/timer.c
	modified:   common/utils/itti/timer.h
	modified:   common/utils/itti/timer_messages_def.h
	modified:   common/utils/itti/timer_messages_types.h
	modified:   common/utils/itti_analyzer/common/itti_types.h
	modified:   common/utils/itti_analyzer/common/logs.h
	modified:   common/utils/itti_analyzer/common/rc.h
	modified:   common/utils/itti_analyzer/itti_analyzer.c
	modified:   common/utils/itti_analyzer/libbuffers/buffers.c
	modified:   common/utils/itti_analyzer/libbuffers/buffers.h
	modified:   common/utils/itti_analyzer/libbuffers/file.c
	modified:   common/utils/itti_analyzer/libbuffers/file.h
	modified:   common/utils/itti_analyzer/libbuffers/socket.c
	modified:   common/utils/itti_analyzer/libbuffers/socket.h
	modified:   common/utils/itti_analyzer/libparser/array_type.c
	modified:   common/utils/itti_analyzer/libparser/array_type.h
	modified:   common/utils/itti_analyzer/libparser/enum_type.c
	modified:   common/utils/itti_analyzer/libparser/enum_type.h
	modified:   common/utils/itti_analyzer/libparser/enum_value_type.c
	modified:   common/utils/itti_analyzer/libparser/enum_value_type.h
	modified:   common/utils/itti_analyzer/libparser/field_type.c
	modified:   common/utils/itti_analyzer/libparser/field_type.h
	modified:   common/utils/itti_analyzer/libparser/file_type.c
	modified:   common/utils/itti_analyzer/libparser/file_type.h
	modified:   common/utils/itti_analyzer/libparser/fundamental_type.c
	modified:   common/utils/itti_analyzer/libparser/fundamental_type.h
	modified:   common/utils/itti_analyzer/libparser/intertask_contexts.h
	modified:   common/utils/itti_analyzer/libparser/pointer_type.c
	modified:   common/utils/itti_analyzer/libparser/pointer_type.h
	modified:   common/utils/itti_analyzer/libparser/reference_type.c
	modified:   common/utils/itti_analyzer/libparser/reference_type.h
	modified:   common/utils/itti_analyzer/libparser/struct_type.c
	modified:   common/utils/itti_analyzer/libparser/struct_type.h
	modified:   common/utils/itti_analyzer/libparser/typedef_type.c
	modified:   common/utils/itti_analyzer/libparser/typedef_type.h
	modified:   common/utils/itti_analyzer/libparser/types.c
	modified:   common/utils/itti_analyzer/libparser/types.h
	modified:   common/utils/itti_analyzer/libparser/union_type.c
	modified:   common/utils/itti_analyzer/libparser/union_type.h
	modified:   common/utils/itti_analyzer/libparser/xml_parse.c
	modified:   common/utils/itti_analyzer/libparser/xml_parse.h
	modified:   common/utils/itti_analyzer/libresolver/locate_root.c
	modified:   common/utils/itti_analyzer/libresolver/locate_root.h
	modified:   common/utils/itti_analyzer/libresolver/resolvers.c
	modified:   common/utils/itti_analyzer/libresolver/resolvers.h
	modified:   common/utils/itti_analyzer/libui/ui_callbacks.c
	modified:   common/utils/itti_analyzer/libui/ui_callbacks.h
	modified:   common/utils/itti_analyzer/libui/ui_filters.c
	modified:   common/utils/itti_analyzer/libui/ui_filters.h
	modified:   common/utils/itti_analyzer/libui/ui_interface.c
	modified:   common/utils/itti_analyzer/libui/ui_interface.h
	modified:   common/utils/itti_analyzer/libui/ui_main_screen.c
	modified:   common/utils/itti_analyzer/libui/ui_main_screen.h
	modified:   common/utils/itti_analyzer/libui/ui_menu_bar.c
	modified:   common/utils/itti_analyzer/libui/ui_menu_bar.h
	modified:   common/utils/itti_analyzer/libui/ui_notebook.c
	modified:   common/utils/itti_analyzer/libui/ui_notebook.h
	modified:   common/utils/itti_analyzer/libui/ui_notif_dlg.c
	modified:   common/utils/itti_analyzer/libui/ui_notif_dlg.h
	modified:   common/utils/itti_analyzer/libui/ui_notifications.c
	modified:   common/utils/itti_analyzer/libui/ui_notifications.h
	modified:   common/utils/itti_analyzer/libui/ui_signal_dissect_view.c
	modified:   common/utils/itti_analyzer/libui/ui_signal_dissect_view.h
	modified:   common/utils/itti_analyzer/libui/ui_tree_view.c
	modified:   common/utils/itti_analyzer/libui/ui_tree_view.h
	modified:   common/utils/msc/msc.c
	modified:   common/utils/msc/msc.h
	modified:   openair1/PHY/CODING/3gpplte.c
	modified:   openair1/PHY/CODING/3gpplte_sse.c
	modified:   openair1/PHY/CODING/3gpplte_turbo_decoder.c
	modified:   openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c
	modified:   openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c
	modified:   openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c
	modified:   openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
	modified:   openair1/PHY/CODING/TESTBENCH/ltetest.c
	modified:   openair1/PHY/CODING/TESTBENCH/pdcch_test.c
	modified:   openair1/PHY/CODING/TESTBENCH/viterbi_test.c
	modified:   openair1/PHY/CODING/ccoding_byte.c
	modified:   openair1/PHY/CODING/ccoding_byte_lte.c
	modified:   openair1/PHY/CODING/crc_byte.c
	modified:   openair1/PHY/CODING/defs.h
	modified:   openair1/PHY/CODING/extern.h
	modified:   openair1/PHY/CODING/extern_3GPPinterleaver.h
	modified:   openair1/PHY/CODING/lte_interleaver.h
	modified:   openair1/PHY/CODING/lte_interleaver2.h
	modified:   openair1/PHY/CODING/lte_interleaver_inline.h
	modified:   openair1/PHY/CODING/lte_rate_matching.c
	modified:   openair1/PHY/CODING/lte_segmentation.c
	modified:   openair1/PHY/CODING/rate_matching.c
	modified:   openair1/PHY/CODING/scrambler.h
	modified:   openair1/PHY/CODING/vars.h
	modified:   openair1/PHY/CODING/viterbi.c
	modified:   openair1/PHY/CODING/viterbi_lte.c
	modified:   openair1/PHY/INIT/defs.h
	modified:   openair1/PHY/INIT/extern.h
	modified:   openair1/PHY/INIT/init_top.c
	modified:   openair1/PHY/INIT/lte_init.c
	modified:   openair1/PHY/INIT/lte_parms.c
	modified:   openair1/PHY/INIT/vars.h
	modified:   openair1/PHY/LTE_ESTIMATION/adjust_gain.c
	modified:   openair1/PHY/LTE_ESTIMATION/defs.h
	modified:   openair1/PHY/LTE_ESTIMATION/extern.h
	modified:   openair1/PHY/LTE_ESTIMATION/filt96_32.h
	modified:   openair1/PHY/LTE_ESTIMATION/freq_equalization.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
	modified:   openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
	modified:   openair1/PHY/LTE_ESTIMATION/pss6144.h
	modified:   openair1/PHY/LTE_ESTIMATION/vars.h
	modified:   openair1/PHY/LTE_REFSIG/defs.h
	modified:   openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c
	modified:   openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c
	modified:   openair1/PHY/LTE_REFSIG/lte_dl_uespec.c
	modified:   openair1/PHY/LTE_REFSIG/lte_gold.c
	modified:   openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c
	modified:   openair1/PHY/LTE_REFSIG/lte_ul_ref.c
	modified:   openair1/PHY/LTE_REFSIG/mod_table.h
	modified:   openair1/PHY/LTE_TRANSPORT/dci.c
	modified:   openair1/PHY/LTE_TRANSPORT/dci.h
	modified:   openair1/PHY/LTE_TRANSPORT/dci_tools.c
	modified:   openair1/PHY/LTE_TRANSPORT/defs.h
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h
	modified:   openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h
	modified:   openair1/PHY/LTE_TRANSPORT/drs_modulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/extern.h
	modified:   openair1/PHY/LTE_TRANSPORT/group_hopping.c
	modified:   openair1/PHY/LTE_TRANSPORT/initial_sync.c
	modified:   openair1/PHY/LTE_TRANSPORT/lte_mcs.c
	modified:   openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h
	modified:   openair1/PHY/LTE_TRANSPORT/pbch.c
	modified:   openair1/PHY/LTE_TRANSPORT/pcfich.c
	modified:   openair1/PHY/LTE_TRANSPORT/phich.c
	modified:   openair1/PHY/LTE_TRANSPORT/pilots.c
	modified:   openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c
	modified:   openair1/PHY/LTE_TRANSPORT/pmch.c
	modified:   openair1/PHY/LTE_TRANSPORT/power_control.c
	modified:   openair1/PHY/LTE_TRANSPORT/prach.c
	modified:   openair1/PHY/LTE_TRANSPORT/prach.h
	modified:   openair1/PHY/LTE_TRANSPORT/print_stats.c
	modified:   openair1/PHY/LTE_TRANSPORT/proto.h
	modified:   openair1/PHY/LTE_TRANSPORT/pss.c
	modified:   openair1/PHY/LTE_TRANSPORT/pucch.c
	modified:   openair1/PHY/LTE_TRANSPORT/rar_tools.c
	modified:   openair1/PHY/LTE_TRANSPORT/srs_modulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/sss.c
	modified:   openair1/PHY/LTE_TRANSPORT/sss.h
	modified:   openair1/PHY/LTE_TRANSPORT/uci.h
	modified:   openair1/PHY/LTE_TRANSPORT/uci_tools.c
	modified:   openair1/PHY/LTE_TRANSPORT/ulsch_coding.c
	modified:   openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
	modified:   openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c
	modified:   openair1/PHY/LTE_TRANSPORT/vars.h
	modified:   openair1/PHY/MODULATION/defs.h
	modified:   openair1/PHY/MODULATION/extern.h
	modified:   openair1/PHY/MODULATION/kHz_7_5.h
	modified:   openair1/PHY/MODULATION/ofdm_mod.c
	modified:   openair1/PHY/MODULATION/prach625Hz.h
	modified:   openair1/PHY/MODULATION/slot_fep.c
	modified:   openair1/PHY/MODULATION/slot_fep_mbsfn.c
	modified:   openair1/PHY/MODULATION/slot_fep_ul.c
	modified:   openair1/PHY/MODULATION/ul_7_5_kHz.c
	modified:   openair1/PHY/MODULATION/vars.h
	modified:   openair1/PHY/TOOLS/8bit_rxdemux.c
	modified:   openair1/PHY/TOOLS/8bit_txmux.c
	modified:   openair1/PHY/TOOLS/angle.c
	modified:   openair1/PHY/TOOLS/cadd_sv.c
	modified:   openair1/PHY/TOOLS/cadd_vv.c
	modified:   openair1/PHY/TOOLS/cdot_prod.c
	modified:   openair1/PHY/TOOLS/cmult_sv.c
	modified:   openair1/PHY/TOOLS/cmult_vv.c
	modified:   openair1/PHY/TOOLS/costable.h
	modified:   openair1/PHY/TOOLS/dB_routines.c
	modified:   openair1/PHY/TOOLS/dB_routines.h
	modified:   openair1/PHY/TOOLS/defs.h
	modified:   openair1/PHY/TOOLS/extern.h
	modified:   openair1/PHY/TOOLS/file_output.c
	modified:   openair1/PHY/TOOLS/invSqrt.c
	modified:   openair1/PHY/TOOLS/log2_approx.c
	modified:   openair1/PHY/TOOLS/lte_dfts.c
	modified:   openair1/PHY/TOOLS/lte_phy_scope.c
	modified:   openair1/PHY/TOOLS/lte_phy_scope.h
	modified:   openair1/PHY/TOOLS/lut.c
	modified:   openair1/PHY/TOOLS/memory_routines.c
	modified:   openair1/PHY/TOOLS/signal_energy.c
	modified:   openair1/PHY/TOOLS/smbv.c
	modified:   openair1/PHY/TOOLS/smbv.h
	modified:   openair1/PHY/TOOLS/sqrt.c
	modified:   openair1/PHY/TOOLS/time_meas.c
	modified:   openair1/PHY/TOOLS/time_meas.h
	modified:   openair1/PHY/TOOLS/twiddle12288.h
	modified:   openair1/PHY/TOOLS/twiddle1536.h
	modified:   openair1/PHY/TOOLS/twiddle24576.h
	modified:   openair1/PHY/TOOLS/twiddle6144.h
	modified:   openair1/PHY/TOOLS/vars.h
	modified:   openair1/PHY/defs.h
	modified:   openair1/PHY/extern.h
	modified:   openair1/PHY/impl_defs_lte.h
	modified:   openair1/PHY/impl_defs_top.h
	modified:   openair1/PHY/sse_intrin.h
	modified:   openair1/PHY/types.h
	modified:   openair1/PHY/vars.h
	modified:   openair1/SCHED/defs.h
	modified:   openair1/SCHED/extern.h
	modified:   openair1/SCHED/phy_mac_stub.c
	modified:   openair1/SCHED/phy_procedures_emos.h
	modified:   openair1/SCHED/phy_procedures_lte_common.c
	modified:   openair1/SCHED/phy_procedures_lte_eNb.c
	modified:   openair1/SCHED/phy_procedures_lte_ue.c
	modified:   openair1/SCHED/pucch_pc.c
	modified:   openair1/SCHED/pusch_pc.c
	modified:   openair1/SCHED/rt_compat.h
	modified:   openair1/SCHED/vars.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/defs.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/extern.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/proto.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/socket.c
	modified:   openair1/SIMULATION/ETH_TRANSPORT/socket.h
	modified:   openair1/SIMULATION/ETH_TRANSPORT/vars.h
	modified:   openair1/SIMULATION/LTE_PHY/LTE_Configuration.c
	modified:   openair1/SIMULATION/LTE_PHY/LTE_Configuration.h
	modified:   openair1/SIMULATION/LTE_PHY/dlsim.c
	modified:   openair1/SIMULATION/LTE_PHY/framegen.c
	modified:   openair1/SIMULATION/LTE_PHY/gpib_send.c
	modified:   openair1/SIMULATION/LTE_PHY/gpib_send.h
	modified:   openair1/SIMULATION/LTE_PHY/mbmssim.c
	modified:   openair1/SIMULATION/LTE_PHY/pbchsim.c
	modified:   openair1/SIMULATION/LTE_PHY/pdcchsim.c
	modified:   openair1/SIMULATION/LTE_PHY/prachsim.c
	modified:   openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h
	modified:   openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c
	modified:   openair1/SIMULATION/LTE_PHY/pucchsim.c
	modified:   openair1/SIMULATION/LTE_PHY/scansim.c
	modified:   openair1/SIMULATION/LTE_PHY/signalanalyzer.c
	modified:   openair1/SIMULATION/LTE_PHY/signalanalyzer.h
	modified:   openair1/SIMULATION/LTE_PHY/syncsim.c
	modified:   openair1/SIMULATION/LTE_PHY/test.c
	modified:   openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c
	modified:   openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h
	modified:   openair1/SIMULATION/LTE_PHY/ulsim.c
	modified:   openair1/SIMULATION/LTE_PHY/ulsim2.c
	modified:   openair1/SIMULATION/RF/adc.c
	modified:   openair1/SIMULATION/RF/dac.c
	modified:   openair1/SIMULATION/RF/defs.h
	modified:   openair1/SIMULATION/RF/rf.c
	modified:   openair1/SIMULATION/TOOLS/abstraction.c
	modified:   openair1/SIMULATION/TOOLS/ch_desc_proto.c
	modified:   openair1/SIMULATION/TOOLS/defs.h
	modified:   openair1/SIMULATION/TOOLS/gauss.c
	modified:   openair1/SIMULATION/TOOLS/llr_quantization.c
	modified:   openair1/SIMULATION/TOOLS/multipath_channel.c
	modified:   openair1/SIMULATION/TOOLS/multipath_tv_channel.c
	modified:   openair1/SIMULATION/TOOLS/random_channel.c
	modified:   openair1/SIMULATION/TOOLS/rangen_double.c
	modified:   openair1/SIMULATION/TOOLS/scm_corrmat.h
	modified:   openair1/SIMULATION/TOOLS/taus.c
	modified:   openair2/COMMON/as_message.h
	modified:   openair2/COMMON/commonDef.h
	modified:   openair2/COMMON/gtpv1_u_messages_def.h
	modified:   openair2/COMMON/gtpv1_u_messages_types.h
	modified:   openair2/COMMON/intertask_interface_conf.h
	modified:   openair2/COMMON/mac_messages_def.h
	modified:   openair2/COMMON/mac_messages_types.h
	modified:   openair2/COMMON/mac_primitives.h
	modified:   openair2/COMMON/mac_rlc_primitives.h
	modified:   openair2/COMMON/mac_rrc_primitives.h
	modified:   openair2/COMMON/messages_def.h
	modified:   openair2/COMMON/messages_types.h
	modified:   openair2/COMMON/nas_messages_def.h
	modified:   openair2/COMMON/nas_messages_types.h
	modified:   openair2/COMMON/networkDef.h
	modified:   openair2/COMMON/openair_defs.h
	modified:   openair2/COMMON/openair_types.h
	modified:   openair2/COMMON/pdcp_messages_def.h
	modified:   openair2/COMMON/pdcp_messages_types.h
	modified:   openair2/COMMON/phy_messages_def.h
	modified:   openair2/COMMON/phy_messages_types.h
	modified:   openair2/COMMON/platform_constants.h
	modified:   openair2/COMMON/platform_types.h
	modified:   openair2/COMMON/ral_messages_def.h
	modified:   openair2/COMMON/ral_messages_types.h
	modified:   openair2/COMMON/rlc_messages_def.h
	modified:   openair2/COMMON/rlc_messages_types.h
	modified:   openair2/COMMON/rrc_messages_def.h
	modified:   openair2/COMMON/rrc_messages_types.h
	modified:   openair2/COMMON/rrm_config_structs.h
	modified:   openair2/COMMON/rrm_constants.h
	modified:   openair2/COMMON/rtos_header.h
	modified:   openair2/COMMON/s1ap_messages_def.h
	modified:   openair2/COMMON/s1ap_messages_types.h
	modified:   openair2/COMMON/sctp_messages_def.h
	modified:   openair2/COMMON/sctp_messages_types.h
	modified:   openair2/COMMON/tasks_def.h
	modified:   openair2/COMMON/udp_messages_def.h
	modified:   openair2/COMMON/udp_messages_types.h
	modified:   openair2/COMMON/x2ap_messages_def.h
	modified:   openair2/COMMON/x2ap_messages_types.h
	modified:   openair2/DOCS/TEMPLATES/CODE/example_doxy.h
	modified:   openair2/ENB_APP/enb_app.c
	modified:   openair2/ENB_APP/enb_app.h
	modified:   openair2/ENB_APP/enb_config.c
	modified:   openair2/ENB_APP/enb_config.h
	modified:   openair2/LAYER2/MAC/config.c
	modified:   openair2/LAYER2/MAC/defs.h
	modified:   openair2/LAYER2/MAC/eNB_scheduler.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_RA.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_bch.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_mch.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_primitives.c
	modified:   openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
	modified:   openair2/LAYER2/MAC/extern.h
	modified:   openair2/LAYER2/MAC/l1_helpers.c
	modified:   openair2/LAYER2/MAC/lte_transport_init.c
	modified:   openair2/LAYER2/MAC/main.c
	modified:   openair2/LAYER2/MAC/openair2_proc.c
	modified:   openair2/LAYER2/MAC/pre_processor.c
	modified:   openair2/LAYER2/MAC/proto.h
	modified:   openair2/LAYER2/MAC/ra_procedures.c
	modified:   openair2/LAYER2/MAC/rar_tools.c
	modified:   openair2/LAYER2/MAC/ue_procedures.c
	modified:   openair2/LAYER2/MAC/vars.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c
	modified:   openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c
	modified:   openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h
	modified:   openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c
	modified:   openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h
	modified:   openair2/LAYER2/RLC/rlc.c
	modified:   openair2/LAYER2/RLC/rlc.h
	modified:   openair2/LAYER2/RLC/rlc_def.h
	modified:   openair2/LAYER2/RLC/rlc_def_lte.h
	modified:   openair2/LAYER2/RLC/rlc_mac.c
	modified:   openair2/LAYER2/RLC/rlc_mpls.c
	modified:   openair2/LAYER2/RLC/rlc_primitives.h
	modified:   openair2/LAYER2/RLC/rlc_rrc.c
	modified:   openair2/LAYER2/layer2_top.c
	modified:   openair2/LAYER2/openair2_proc.c
	modified:   openair2/LAYER2/register.c
	modified:   openair2/LAYER2/register.h
	modified:   openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c
	modified:   openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c
	modified:   openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h
	modified:   openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c
	modified:   openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h
	modified:   openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c
	modified:   openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c
	modified:   openair2/NAS/nas_ue_task.h
	modified:   openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c
	modified:   openair2/NETWORK_DRIVER/LITE/classifier.c
	modified:   openair2/NETWORK_DRIVER/LITE/common.c
	modified:   openair2/NETWORK_DRIVER/LITE/constant.h
	modified:   openair2/NETWORK_DRIVER/LITE/device.c
	modified:   openair2/NETWORK_DRIVER/LITE/ioctl.c
	modified:   openair2/NETWORK_DRIVER/LITE/ioctl.h
	modified:   openair2/NETWORK_DRIVER/LITE/local.h
	modified:   openair2/NETWORK_DRIVER/LITE/netlink.c
	modified:   openair2/NETWORK_DRIVER/LITE/proto_extern.h
	modified:   openair2/NETWORK_DRIVER/LITE/sap.h
	modified:   openair2/NETWORK_DRIVER/LITE/tool.c
	modified:   openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c
	modified:   openair2/NETWORK_DRIVER/MESH/classifier.c
	modified:   openair2/NETWORK_DRIVER/MESH/common.c
	modified:   openair2/NETWORK_DRIVER/MESH/constant.h
	modified:   openair2/NETWORK_DRIVER/MESH/device.c
	modified:   openair2/NETWORK_DRIVER/MESH/ioctl.c
	modified:   openair2/NETWORK_DRIVER/MESH/ioctl.h
	modified:   openair2/NETWORK_DRIVER/MESH/local.h
	modified:   openair2/NETWORK_DRIVER/MESH/mesh.c
	modified:   openair2/NETWORK_DRIVER/MESH/netlink.c
	modified:   openair2/NETWORK_DRIVER/MESH/proto_extern.h
	modified:   openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h
	modified:   openair2/NETWORK_DRIVER/MESH/sap.h
	modified:   openair2/NETWORK_DRIVER/MESH/tool.c
	modified:   openair2/NETWORK_DRIVER/UE_IP/common.c
	modified:   openair2/NETWORK_DRIVER/UE_IP/constant.h
	modified:   openair2/NETWORK_DRIVER/UE_IP/device.c
	modified:   openair2/NETWORK_DRIVER/UE_IP/local.h
	modified:   openair2/NETWORK_DRIVER/UE_IP/netlink.c
	modified:   openair2/NETWORK_DRIVER/UE_IP/proto_extern.h
	modified:   openair2/NETWORK_DRIVER/UE_IP/sap.h
	modified:   openair2/PHY_INTERFACE/defs.h
	modified:   openair2/PHY_INTERFACE/extern.h
	modified:   openair2/PHY_INTERFACE/mac_phy_primitives.c
	modified:   openair2/PHY_INTERFACE/mac_phy_primitives.h
	modified:   openair2/PHY_INTERFACE/vars.h
	modified:   openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c
	modified:   openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h
	modified:   openair2/RRC/LITE/L2_interface.c
	modified:   openair2/RRC/LITE/MESSAGES/asn1_msg.c
	modified:   openair2/RRC/LITE/MESSAGES/asn1_msg.h
	modified:   openair2/RRC/LITE/defs.h
	modified:   openair2/RRC/LITE/extern.h
	modified:   openair2/RRC/LITE/proto.h
	modified:   openair2/RRC/LITE/rrc_2_rrm_msg.c
	modified:   openair2/RRC/LITE/rrc_UE.c
	modified:   openair2/RRC/LITE/rrc_UE_ral.c
	modified:   openair2/RRC/LITE/rrc_UE_ral.h
	modified:   openair2/RRC/LITE/rrc_common.c
	modified:   openair2/RRC/LITE/rrc_config.c
	modified:   openair2/RRC/LITE/rrc_eNB.c
	modified:   openair2/RRC/LITE/rrc_eNB_GTPV1U.c
	modified:   openair2/RRC/LITE/rrc_eNB_GTPV1U.h
	modified:   openair2/RRC/LITE/rrc_eNB_S1AP.c
	modified:   openair2/RRC/LITE/rrc_eNB_S1AP.h
	modified:   openair2/RRC/LITE/rrc_eNB_UE_context.c
	modified:   openair2/RRC/LITE/rrc_eNB_UE_context.h
	modified:   openair2/RRC/LITE/rrc_eNB_ral.c
	modified:   openair2/RRC/LITE/rrc_eNB_ral.h
	modified:   openair2/RRC/LITE/rrc_rrm_interface.c
	modified:   openair2/RRC/LITE/rrc_rrm_interface.h
	modified:   openair2/RRC/LITE/rrc_types.h
	modified:   openair2/RRC/LITE/rrm_2_rrc_msg.c
	modified:   openair2/RRC/LITE/utils.c
	modified:   openair2/RRC/LITE/vars.h
	modified:   openair2/RRC/NAS/nas_config.c
	modified:   openair2/RRC/NAS/nas_config.h
	modified:   openair2/RRC/NAS/rb_config.c
	modified:   openair2/RRC/NAS/rb_config.h
	modified:   openair2/RRM_4_RRC_LITE/src/platform.h
	modified:   openair2/RRM_4_RRC_LITE/src/platform_constants.h
	modified:   openair2/RRM_4_RRC_LITE/src/platform_defines.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Asn1Utils.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Asn1Utils.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Command.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Command.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/DataRadioBearer.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/DataRadioBearer.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/ENodeB.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/ENodeB.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Exceptions.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/LogicalChannel.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/LogicalChannel.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Mobile.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Mobile.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/RadioBearer.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/RadioBearer.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/RadioResources.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/RadioResources.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/SignallingRadioBearer.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/SignallingRadioBearer.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Transaction.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Transaction.h
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Transactions.cpp
	modified:   openair2/RRM_4_RRC_LITE/src/radio_resources/Transactions.h
	modified:   openair2/RRM_4_RRC_LITE/src/rrm.cpp
	modified:   openair2/UTIL/AT_COMMANDS/parser.c
	modified:   openair2/UTIL/AT_COMMANDS/parser.h
	modified:   openair2/UTIL/BIGPHYS/bigphys.c
	modified:   openair2/UTIL/BIGPHYS/defs.h
	modified:   openair2/UTIL/CLI/cli.c
	modified:   openair2/UTIL/CLI/cli.h
	modified:   openair2/UTIL/CLI/cli_cmd.c
	modified:   openair2/UTIL/CLI/cli_if.h
	modified:   openair2/UTIL/CLI/cli_server.c
	modified:   openair2/UTIL/FIFO/pad_list.c
	modified:   openair2/UTIL/FIFO/pad_list.h
	modified:   openair2/UTIL/FIFO/types.h
	modified:   openair2/UTIL/LISTS/list.c
	modified:   openair2/UTIL/LOG/log.c
	modified:   openair2/UTIL/LOG/log.h
	modified:   openair2/UTIL/LOG/log_extern.h
	modified:   openair2/UTIL/LOG/log_if.h
	modified:   openair2/UTIL/LOG/vcd_signal_dumper.c
	modified:   openair2/UTIL/LOG/vcd_signal_dumper.h
	modified:   openair2/UTIL/MATH/crc_byte.c
	modified:   openair2/UTIL/MATH/oml.c
	modified:   openair2/UTIL/MATH/oml.h
	modified:   openair2/UTIL/MATH/random.c
	modified:   openair2/UTIL/MATH/random_proto_extern.h
	modified:   openair2/UTIL/MATH/taus.c
	modified:   openair2/UTIL/MEM/mem_block.c
	modified:   openair2/UTIL/MEM/mem_block.h
	modified:   openair2/UTIL/MEM/mem_mngt.c
	modified:   openair2/UTIL/MEM/mem_mngt_proto_extern.h
	modified:   openair2/UTIL/MEM/mem_pool.h
	modified:   openair2/UTIL/OCG/OCG.c
	modified:   openair2/UTIL/OCG/OCG.h
	modified:   openair2/UTIL/OCG/OCG_call_emu.h
	modified:   openair2/UTIL/OCG/OCG_config_mobi.c
	modified:   openair2/UTIL/OCG/OCG_config_mobi.h
	modified:   openair2/UTIL/OCG/OCG_create_dir.c
	modified:   openair2/UTIL/OCG/OCG_create_dir.h
	modified:   openair2/UTIL/OCG/OCG_detect_file.c
	modified:   openair2/UTIL/OCG/OCG_detect_file.h
	modified:   openair2/UTIL/OCG/OCG_extern.h
	modified:   openair2/UTIL/OCG/OCG_generate_report.c
	modified:   openair2/UTIL/OCG/OCG_generate_report.h
	modified:   openair2/UTIL/OCG/OCG_get_opt.c
	modified:   openair2/UTIL/OCG/OCG_get_opt.h
	modified:   openair2/UTIL/OCG/OCG_if.h
	modified:   openair2/UTIL/OCG/OCG_parse_XML.c
	modified:   openair2/UTIL/OCG/OCG_parse_XML.h
	modified:   openair2/UTIL/OCG/OCG_parse_filename.c
	modified:   openair2/UTIL/OCG/OCG_parse_filename.h
	modified:   openair2/UTIL/OCG/OCG_save_XML.c
	modified:   openair2/UTIL/OCG/OCG_save_XML.h
	modified:   openair2/UTIL/OCG/OCG_vars.h
	modified:   openair2/UTIL/OMG/TraCIConstants.h
	modified:   openair2/UTIL/OMG/client_traci_OMG.c
	modified:   openair2/UTIL/OMG/client_traci_OMG.h
	modified:   openair2/UTIL/OMG/common.c
	modified:   openair2/UTIL/OMG/defs.h
	modified:   openair2/UTIL/OMG/grid.c
	modified:   openair2/UTIL/OMG/grid.h
	modified:   openair2/UTIL/OMG/id_manager.c
	modified:   openair2/UTIL/OMG/id_manager.h
	modified:   openair2/UTIL/OMG/job.c
	modified:   openair2/UTIL/OMG/mobility_parser.c
	modified:   openair2/UTIL/OMG/mobility_parser.h
	modified:   openair2/UTIL/OMG/omg.c
	modified:   openair2/UTIL/OMG/omg.h
	modified:   openair2/UTIL/OMG/omg_constants.h
	modified:   openair2/UTIL/OMG/omg_hashtable.c
	modified:   openair2/UTIL/OMG/omg_hashtable.h
	modified:   openair2/UTIL/OMG/omg_vars.h
	modified:   openair2/UTIL/OMG/rwalk.c
	modified:   openair2/UTIL/OMG/rwalk.h
	modified:   openair2/UTIL/OMG/rwp.c
	modified:   openair2/UTIL/OMG/rwp.h
	modified:   openair2/UTIL/OMG/socket_traci_OMG.c
	modified:   openair2/UTIL/OMG/socket_traci_OMG.h
	modified:   openair2/UTIL/OMG/static.c
	modified:   openair2/UTIL/OMG/static.h
	modified:   openair2/UTIL/OMG/steadystaterwp.c
	modified:   openair2/UTIL/OMG/steadystaterwp.h
	modified:   openair2/UTIL/OMG/storage_traci_OMG.c
	modified:   openair2/UTIL/OMG/storage_traci_OMG.h
	modified:   openair2/UTIL/OMG/sumo.c
	modified:   openair2/UTIL/OMG/sumo.h
	modified:   openair2/UTIL/OMG/trace.c
	modified:   openair2/UTIL/OMG/trace.h
	modified:   openair2/UTIL/OMG/trace_hashtable.c
	modified:   openair2/UTIL/OMG/trace_hashtable.h
	modified:   openair2/UTIL/OMV/communicationthread.cpp
	modified:   openair2/UTIL/OMV/communicationthread.h
	modified:   openair2/UTIL/OMV/mywindow.cpp
	modified:   openair2/UTIL/OMV/mywindow.h
	modified:   openair2/UTIL/OMV/omv.cpp
	modified:   openair2/UTIL/OMV/openglwidget.cpp
	modified:   openair2/UTIL/OMV/openglwidget.h
	modified:   openair2/UTIL/OMV/structures.h
	modified:   openair2/UTIL/OPT/mac_pcap.h
	modified:   openair2/UTIL/OPT/opt.h
	modified:   openair2/UTIL/OPT/socket_sender.c
	modified:   openair2/UTIL/OPT/vars.h
	modified:   openair2/UTIL/OSA/osa_defs.h
	modified:   openair2/UTIL/OSA/osa_internal.h
	modified:   openair2/UTIL/OSA/osa_key_deriver.c
	modified:   openair2/UTIL/OSA/osa_snow3g.h
	modified:   openair2/UTIL/OSA/osa_stream_eea.c
	modified:   openair2/UTIL/OSA/osa_stream_eia.c
	modified:   openair2/UTIL/OTG/main.c
	modified:   openair2/UTIL/OTG/otg.c
	modified:   openair2/UTIL/OTG/otg.h
	modified:   openair2/UTIL/OTG/otg_config.h
	modified:   openair2/UTIL/OTG/otg_defs.h
	modified:   openair2/UTIL/OTG/otg_externs.h
	modified:   openair2/UTIL/OTG/otg_form.c
	modified:   openair2/UTIL/OTG/otg_form.h
	modified:   openair2/UTIL/OTG/otg_kpi.c
	modified:   openair2/UTIL/OTG/otg_kpi.h
	modified:   openair2/UTIL/OTG/otg_models.c
	modified:   openair2/UTIL/OTG/otg_models.h
	modified:   openair2/UTIL/OTG/otg_rx.c
	modified:   openair2/UTIL/OTG/otg_rx.h
	modified:   openair2/UTIL/OTG/otg_rx_socket.c
	modified:   openair2/UTIL/OTG/otg_rx_socket.h
	modified:   openair2/UTIL/OTG/otg_tx.c
	modified:   openair2/UTIL/OTG/otg_tx.h
	modified:   openair2/UTIL/OTG/otg_tx_socket.c
	modified:   openair2/UTIL/OTG/otg_tx_socket.h
	modified:   openair2/UTIL/OTG/otg_vars.h
	modified:   openair2/UTIL/OTG/traffic_config.h
	modified:   openair2/UTIL/TIMER/umts_timer.c
	modified:   openair2/UTIL/TIMER/umts_timer.h
	modified:   openair2/UTIL/TIMER/umts_timer_proto_extern.h
	modified:   openair2/UTIL/TIMER/umts_timer_struct.h
	modified:   openair2/UTIL/TRACE/fifo_printf.c
	modified:   openair2/UTIL/TRACE/fifo_printf.h
	modified:   openair2/UTIL/TRACE/fifo_printf_proto_extern.h
	modified:   openair2/UTIL/TRACE/print.h
	modified:   openair2/X2AP/x2ap.c
	modified:   openair2/X2AP/x2ap.h
	modified:   openair2/X2AP/x2ap_common.c
	modified:   openair2/X2AP/x2ap_common.h
	modified:   openair3/COMMON/common_types.h
	modified:   openair3/COMMON/gtpv1_u_messages_def.h
	modified:   openair3/COMMON/gtpv1_u_messages_types.h
	modified:   openair3/COMMON/intertask_interface_conf.h
	modified:   openair3/COMMON/messages_def.h
	modified:   openair3/COMMON/messages_types.h
	modified:   openair3/COMMON/nas_messages_def.h
	modified:   openair3/COMMON/nas_messages_types.h
	modified:   openair3/COMMON/s1ap_messages_def.h
	modified:   openair3/COMMON/s1ap_messages_types.h
	modified:   openair3/COMMON/sctp_messages_def.h
	modified:   openair3/COMMON/sctp_messages_types.h
	modified:   openair3/COMMON/security_types.h
	modified:   openair3/COMMON/tasks_def.h
	modified:   openair3/COMMON/udp_messages_def.h
	modified:   openair3/COMMON/udp_messages_types.h
	modified:   openair3/GTPV1-U/gtpv1u.h
	modified:   openair3/GTPV1-U/gtpv1u_eNB.c
	modified:   openair3/GTPV1-U/gtpv1u_eNB_defs.h
	modified:   openair3/GTPV1-U/gtpv1u_eNB_task.h
	modified:   openair3/GTPV1-U/gtpv1u_sgw_defs.h
	modified:   openair3/GTPV1-U/gtpv1u_task.c
	modified:   openair3/GTPV1-U/gtpv1u_teid_pool.c
	modified:   openair3/NAS/COMMON/API/NETWORK/as_message.c
	modified:   openair3/NAS/COMMON/API/NETWORK/l2_message.h
	modified:   openair3/NAS/COMMON/API/NETWORK/nas_message.c
	modified:   openair3/NAS/COMMON/API/NETWORK/nas_message.h
	modified:   openair3/NAS/COMMON/API/NETWORK/network_api.c
	modified:   openair3/NAS/COMMON/API/NETWORK/network_api.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachAccept.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachAccept.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachComplete.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachComplete.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachReject.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachReject.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AttachRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c
	modified:   openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h
	modified:   openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c
	modified:   openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h
	modified:   openair3/NAS/COMMON/EMM/MSG/DetachAccept.c
	modified:   openair3/NAS/COMMON/EMM/MSG/DetachAccept.h
	modified:   openair3/NAS/COMMON/EMM/MSG/DetachRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/DetachRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c
	modified:   openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h
	modified:   openair3/NAS/COMMON/EMM/MSG/EmmInformation.c
	modified:   openair3/NAS/COMMON/EMM/MSG/EmmInformation.h
	modified:   openair3/NAS/COMMON/EMM/MSG/EmmStatus.c
	modified:   openair3/NAS/COMMON/EMM/MSG/EmmStatus.h
	modified:   openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c
	modified:   openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h
	modified:   openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c
	modified:   openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h
	modified:   openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c
	modified:   openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h
	modified:   openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h
	modified:   openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h
	modified:   openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c
	modified:   openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c
	modified:   openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c
	modified:   openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h
	modified:   openair3/NAS/COMMON/EMM/MSG/ServiceReject.c
	modified:   openair3/NAS/COMMON/EMM/MSG/ServiceReject.h
	modified:   openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c
	modified:   openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h
	modified:   openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c
	modified:   openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h
	modified:   openair3/NAS/COMMON/EMM/MSG/emm_cause.h
	modified:   openair3/NAS/COMMON/EMM/MSG/emm_msg.c
	modified:   openair3/NAS/COMMON/EMM/MSG/emm_msg.h
	modified:   openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c
	modified:   openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h
	modified:   openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmStatus.c
	modified:   openair3/NAS/COMMON/ESM/MSG/EsmStatus.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c
	modified:   openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h
	modified:   openair3/NAS/COMMON/ESM/MSG/esm_cause.h
	modified:   openair3/NAS/COMMON/ESM/MSG/esm_msg.c
	modified:   openair3/NAS/COMMON/ESM/MSG/esm_msg.h
	modified:   openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h
	modified:   openair3/NAS/COMMON/IES/AccessPointName.c
	modified:   openair3/NAS/COMMON/IES/AccessPointName.h
	modified:   openair3/NAS/COMMON/IES/AdditionalUpdateResult.c
	modified:   openair3/NAS/COMMON/IES/AdditionalUpdateResult.h
	modified:   openair3/NAS/COMMON/IES/AdditionalUpdateType.c
	modified:   openair3/NAS/COMMON/IES/AdditionalUpdateType.h
	modified:   openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c
	modified:   openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h
	modified:   openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c
	modified:   openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h
	modified:   openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c
	modified:   openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h
	modified:   openair3/NAS/COMMON/IES/AuthenticationParameterRand.c
	modified:   openair3/NAS/COMMON/IES/AuthenticationParameterRand.h
	modified:   openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c
	modified:   openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h
	modified:   openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c
	modified:   openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h
	modified:   openair3/NAS/COMMON/IES/Cli.c
	modified:   openair3/NAS/COMMON/IES/Cli.h
	modified:   openair3/NAS/COMMON/IES/CsfbResponse.c
	modified:   openair3/NAS/COMMON/IES/CsfbResponse.h
	modified:   openair3/NAS/COMMON/IES/DaylightSavingTime.c
	modified:   openair3/NAS/COMMON/IES/DaylightSavingTime.h
	modified:   openair3/NAS/COMMON/IES/DetachType.c
	modified:   openair3/NAS/COMMON/IES/DetachType.h
	modified:   openair3/NAS/COMMON/IES/DrxParameter.c
	modified:   openair3/NAS/COMMON/IES/DrxParameter.h
	modified:   openair3/NAS/COMMON/IES/EmergencyNumberList.c
	modified:   openair3/NAS/COMMON/IES/EmergencyNumberList.h
	modified:   openair3/NAS/COMMON/IES/EmmCause.c
	modified:   openair3/NAS/COMMON/IES/EmmCause.h
	modified:   openair3/NAS/COMMON/IES/EpsAttachResult.c
	modified:   openair3/NAS/COMMON/IES/EpsAttachResult.h
	modified:   openair3/NAS/COMMON/IES/EpsAttachType.c
	modified:   openair3/NAS/COMMON/IES/EpsAttachType.h
	modified:   openair3/NAS/COMMON/IES/EpsBearerContextStatus.c
	modified:   openair3/NAS/COMMON/IES/EpsBearerContextStatus.h
	modified:   openair3/NAS/COMMON/IES/EpsBearerIdentity.c
	modified:   openair3/NAS/COMMON/IES/EpsBearerIdentity.h
	modified:   openair3/NAS/COMMON/IES/EpsMobileIdentity.c
	modified:   openair3/NAS/COMMON/IES/EpsMobileIdentity.h
	modified:   openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c
	modified:   openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h
	modified:   openair3/NAS/COMMON/IES/EpsQualityOfService.c
	modified:   openair3/NAS/COMMON/IES/EpsQualityOfService.h
	modified:   openair3/NAS/COMMON/IES/EpsUpdateResult.c
	modified:   openair3/NAS/COMMON/IES/EpsUpdateResult.h
	modified:   openair3/NAS/COMMON/IES/EpsUpdateType.c
	modified:   openair3/NAS/COMMON/IES/EpsUpdateType.h
	modified:   openair3/NAS/COMMON/IES/EsmCause.c
	modified:   openair3/NAS/COMMON/IES/EsmCause.h
	modified:   openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c
	modified:   openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h
	modified:   openair3/NAS/COMMON/IES/EsmMessageContainer.c
	modified:   openair3/NAS/COMMON/IES/EsmMessageContainer.h
	modified:   openair3/NAS/COMMON/IES/GprsTimer.c
	modified:   openair3/NAS/COMMON/IES/GprsTimer.h
	modified:   openair3/NAS/COMMON/IES/GutiType.c
	modified:   openair3/NAS/COMMON/IES/GutiType.h
	modified:   openair3/NAS/COMMON/IES/IdentityType2.c
	modified:   openair3/NAS/COMMON/IES/IdentityType2.h
	modified:   openair3/NAS/COMMON/IES/ImeisvRequest.c
	modified:   openair3/NAS/COMMON/IES/ImeisvRequest.h
	modified:   openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c
	modified:   openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h
	modified:   openair3/NAS/COMMON/IES/LcsClientIdentity.c
	modified:   openair3/NAS/COMMON/IES/LcsClientIdentity.h
	modified:   openair3/NAS/COMMON/IES/LcsIndicator.c
	modified:   openair3/NAS/COMMON/IES/LcsIndicator.h
	modified:   openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c
	modified:   openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h
	modified:   openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c
	modified:   openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h
	modified:   openair3/NAS/COMMON/IES/LocationAreaIdentification.c
	modified:   openair3/NAS/COMMON/IES/LocationAreaIdentification.h
	modified:   openair3/NAS/COMMON/IES/MessageType.c
	modified:   openair3/NAS/COMMON/IES/MessageType.h
	modified:   openair3/NAS/COMMON/IES/MobileIdentity.c
	modified:   openair3/NAS/COMMON/IES/MobileIdentity.h
	modified:   openair3/NAS/COMMON/IES/MobileStationClassmark2.c
	modified:   openair3/NAS/COMMON/IES/MobileStationClassmark2.h
	modified:   openair3/NAS/COMMON/IES/MobileStationClassmark3.c
	modified:   openair3/NAS/COMMON/IES/MobileStationClassmark3.h
	modified:   openair3/NAS/COMMON/IES/MsNetworkCapability.c
	modified:   openair3/NAS/COMMON/IES/MsNetworkCapability.h
	modified:   openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c
	modified:   openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h
	modified:   openair3/NAS/COMMON/IES/NasKeySetIdentifier.c
	modified:   openair3/NAS/COMMON/IES/NasKeySetIdentifier.h
	modified:   openair3/NAS/COMMON/IES/NasMessageContainer.c
	modified:   openair3/NAS/COMMON/IES/NasMessageContainer.h
	modified:   openair3/NAS/COMMON/IES/NasRequestType.c
	modified:   openair3/NAS/COMMON/IES/NasRequestType.h
	modified:   openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c
	modified:   openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h
	modified:   openair3/NAS/COMMON/IES/NetworkName.c
	modified:   openair3/NAS/COMMON/IES/NetworkName.h
	modified:   openair3/NAS/COMMON/IES/Nonce.c
	modified:   openair3/NAS/COMMON/IES/Nonce.h
	modified:   openair3/NAS/COMMON/IES/PTmsiSignature.c
	modified:   openair3/NAS/COMMON/IES/PTmsiSignature.h
	modified:   openair3/NAS/COMMON/IES/PacketFlowIdentifier.c
	modified:   openair3/NAS/COMMON/IES/PacketFlowIdentifier.h
	modified:   openair3/NAS/COMMON/IES/PagingIdentity.c
	modified:   openair3/NAS/COMMON/IES/PagingIdentity.h
	modified:   openair3/NAS/COMMON/IES/PdnAddress.c
	modified:   openair3/NAS/COMMON/IES/PdnAddress.h
	modified:   openair3/NAS/COMMON/IES/PdnType.c
	modified:   openair3/NAS/COMMON/IES/PdnType.h
	modified:   openair3/NAS/COMMON/IES/PlmnList.c
	modified:   openair3/NAS/COMMON/IES/PlmnList.h
	modified:   openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c
	modified:   openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h
	modified:   openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c
	modified:   openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h
	modified:   openair3/NAS/COMMON/IES/ProtocolDiscriminator.c
	modified:   openair3/NAS/COMMON/IES/ProtocolDiscriminator.h
	modified:   openair3/NAS/COMMON/IES/QualityOfService.c
	modified:   openair3/NAS/COMMON/IES/QualityOfService.h
	modified:   openair3/NAS/COMMON/IES/RadioPriority.c
	modified:   openair3/NAS/COMMON/IES/RadioPriority.h
	modified:   openair3/NAS/COMMON/IES/SecurityHeaderType.c
	modified:   openair3/NAS/COMMON/IES/SecurityHeaderType.h
	modified:   openair3/NAS/COMMON/IES/ServiceType.c
	modified:   openair3/NAS/COMMON/IES/ServiceType.h
	modified:   openair3/NAS/COMMON/IES/ShortMac.c
	modified:   openair3/NAS/COMMON/IES/ShortMac.h
	modified:   openair3/NAS/COMMON/IES/SsCode.c
	modified:   openair3/NAS/COMMON/IES/SsCode.h
	modified:   openair3/NAS/COMMON/IES/SupportedCodecList.c
	modified:   openair3/NAS/COMMON/IES/SupportedCodecList.h
	modified:   openair3/NAS/COMMON/IES/TimeZone.c
	modified:   openair3/NAS/COMMON/IES/TimeZone.h
	modified:   openair3/NAS/COMMON/IES/TimeZoneAndTime.c
	modified:   openair3/NAS/COMMON/IES/TimeZoneAndTime.h
	modified:   openair3/NAS/COMMON/IES/TmsiStatus.c
	modified:   openair3/NAS/COMMON/IES/TmsiStatus.h
	modified:   openair3/NAS/COMMON/IES/TrackingAreaIdentity.c
	modified:   openair3/NAS/COMMON/IES/TrackingAreaIdentity.h
	modified:   openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c
	modified:   openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h
	modified:   openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c
	modified:   openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h
	modified:   openair3/NAS/COMMON/IES/TrafficFlowTemplate.c
	modified:   openair3/NAS/COMMON/IES/TrafficFlowTemplate.h
	modified:   openair3/NAS/COMMON/IES/TransactionIdentifier.c
	modified:   openair3/NAS/COMMON/IES/TransactionIdentifier.h
	modified:   openair3/NAS/COMMON/IES/UeNetworkCapability.c
	modified:   openair3/NAS/COMMON/IES/UeNetworkCapability.h
	modified:   openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c
	modified:   openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h
	modified:   openair3/NAS/COMMON/IES/UeSecurityCapability.c
	modified:   openair3/NAS/COMMON/IES/UeSecurityCapability.h
	modified:   openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c
	modified:   openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h
	modified:   openair3/NAS/COMMON/UTIL/OctetString.c
	modified:   openair3/NAS/COMMON/UTIL/OctetString.h
	modified:   openair3/NAS/COMMON/UTIL/TLVDecoder.c
	modified:   openair3/NAS/COMMON/UTIL/TLVDecoder.h
	modified:   openair3/NAS/COMMON/UTIL/TLVEncoder.c
	modified:   openair3/NAS/COMMON/UTIL/TLVEncoder.h
	modified:   openair3/NAS/COMMON/UTIL/device.c
	modified:   openair3/NAS/COMMON/UTIL/device.h
	modified:   openair3/NAS/COMMON/UTIL/memory.c
	modified:   openair3/NAS/COMMON/UTIL/memory.h
	modified:   openair3/NAS/COMMON/UTIL/nas_log.c
	modified:   openair3/NAS/COMMON/UTIL/nas_log.h
	modified:   openair3/NAS/COMMON/UTIL/nas_timer.c
	modified:   openair3/NAS/COMMON/UTIL/nas_timer.h
	modified:   openair3/NAS/COMMON/UTIL/parser.c
	modified:   openair3/NAS/COMMON/UTIL/parser.h
	modified:   openair3/NAS/COMMON/UTIL/socket.c
	modified:   openair3/NAS/COMMON/UTIL/socket.h
	modified:   openair3/NAS/COMMON/UTIL/stty.c
	modified:   openair3/NAS/COMMON/UTIL/tst/timer.c
	modified:   openair3/NAS/COMMON/securityDef.h
	modified:   openair3/NAS/COMMON/userDef.h
	modified:   openair3/NAS/TOOLS/network.h
	modified:   openair3/NAS/TOOLS/ue_data.c
	modified:   openair3/NAS/TOOLS/usim_data.c
	modified:   openair3/NAS/UE/API/USER/at_command.c
	modified:   openair3/NAS/UE/API/USER/at_command.h
	modified:   openair3/NAS/UE/API/USER/at_error.c
	modified:   openair3/NAS/UE/API/USER/at_error.h
	modified:   openair3/NAS/UE/API/USER/at_response.c
	modified:   openair3/NAS/UE/API/USER/at_response.h
	modified:   openair3/NAS/UE/API/USER/tst/at_parser.c
	modified:   openair3/NAS/UE/API/USER/user_api.c
	modified:   openair3/NAS/UE/API/USER/user_api.h
	modified:   openair3/NAS/UE/API/USER/user_indication.c
	modified:   openair3/NAS/UE/API/USER/user_indication.h
	modified:   openair3/NAS/UE/API/USIM/aka_functions.h
	modified:   openair3/NAS/UE/API/USIM/usim_api.c
	modified:   openair3/NAS/UE/API/USIM/usim_api.h
	modified:   openair3/NAS/UE/EMM/Attach.c
	modified:   openair3/NAS/UE/EMM/Authentication.c
	modified:   openair3/NAS/UE/EMM/Detach.c
	modified:   openair3/NAS/UE/EMM/EmmStatusHdl.c
	modified:   openair3/NAS/UE/EMM/Identification.c
	modified:   openair3/NAS/UE/EMM/IdleMode.c
	modified:   openair3/NAS/UE/EMM/IdleMode.h
	modified:   openair3/NAS/UE/EMM/LowerLayer.c
	modified:   openair3/NAS/UE/EMM/LowerLayer.h
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregistered.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmNull.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegistered.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c
	modified:   openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_as.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_as.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_asDef.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_esm.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_esm.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_esmDef.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_fsm.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_fsm.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_recv.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_recv.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_reg.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_reg.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_regDef.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_sap.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_sap.h
	modified:   openair3/NAS/UE/EMM/SAP/emm_send.c
	modified:   openair3/NAS/UE/EMM/SAP/emm_send.h
	modified:   openair3/NAS/UE/EMM/SecurityModeControl.c
	modified:   openair3/NAS/UE/EMM/ServiceRequestHdl.c
	modified:   openair3/NAS/UE/EMM/TrackingAreaUpdate.c
	modified:   openair3/NAS/UE/EMM/emmData.h
	modified:   openair3/NAS/UE/EMM/emm_main.c
	modified:   openair3/NAS/UE/EMM/emm_main.h
	modified:   openair3/NAS/UE/EMM/emm_proc.h
	modified:   openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
	modified:   openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
	modified:   openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c
	modified:   openair3/NAS/UE/ESM/EsmStatusHdl.c
	modified:   openair3/NAS/UE/ESM/PdnConnectivity.c
	modified:   openair3/NAS/UE/ESM/PdnDisconnect.c
	modified:   openair3/NAS/UE/ESM/SAP/esm_recv.c
	modified:   openair3/NAS/UE/ESM/SAP/esm_recv.h
	modified:   openair3/NAS/UE/ESM/SAP/esm_sap.c
	modified:   openair3/NAS/UE/ESM/SAP/esm_sap.h
	modified:   openair3/NAS/UE/ESM/SAP/esm_sapDef.h
	modified:   openair3/NAS/UE/ESM/SAP/esm_send.c
	modified:   openair3/NAS/UE/ESM/SAP/esm_send.h
	modified:   openair3/NAS/UE/ESM/esmData.h
	modified:   openair3/NAS/UE/ESM/esm_ebr.c
	modified:   openair3/NAS/UE/ESM/esm_ebr.h
	modified:   openair3/NAS/UE/ESM/esm_ebr_context.c
	modified:   openair3/NAS/UE/ESM/esm_ebr_context.h
	modified:   openair3/NAS/UE/ESM/esm_ip.c
	modified:   openair3/NAS/UE/ESM/esm_main.c
	modified:   openair3/NAS/UE/ESM/esm_main.h
	modified:   openair3/NAS/UE/ESM/esm_proc.h
	modified:   openair3/NAS/UE/ESM/esm_pt.c
	modified:   openair3/NAS/UE/ESM/esm_pt.h
	modified:   openair3/NAS/UE/UEprocess.c
	modified:   openair3/NAS/UE/nas_itti_messaging.c
	modified:   openair3/NAS/UE/nas_itti_messaging.h
	modified:   openair3/NAS/UE/nas_network.c
	modified:   openair3/NAS/UE/nas_network.h
	modified:   openair3/NAS/UE/nas_parser.c
	modified:   openair3/NAS/UE/nas_parser.h
	modified:   openair3/NAS/UE/nas_proc.c
	modified:   openair3/NAS/UE/nas_proc.h
	modified:   openair3/NAS/UE/nas_ue_task.c
	modified:   openair3/NAS/UE/nas_user.c
	modified:   openair3/NAS/UE/nas_user.h
	modified:   openair3/S1AP/s1ap_common.c
	modified:   openair3/S1AP/s1ap_common.h
	modified:   openair3/S1AP/s1ap_eNB.c
	modified:   openair3/S1AP/s1ap_eNB.h
	modified:   openair3/S1AP/s1ap_eNB_context_management_procedures.c
	modified:   openair3/S1AP/s1ap_eNB_context_management_procedures.h
	modified:   openair3/S1AP/s1ap_eNB_decoder.c
	modified:   openair3/S1AP/s1ap_eNB_decoder.h
	modified:   openair3/S1AP/s1ap_eNB_default_values.h
	modified:   openair3/S1AP/s1ap_eNB_defs.h
	modified:   openair3/S1AP/s1ap_eNB_encoder.c
	modified:   openair3/S1AP/s1ap_eNB_encoder.h
	modified:   openair3/S1AP/s1ap_eNB_handlers.c
	modified:   openair3/S1AP/s1ap_eNB_handlers.h
	modified:   openair3/S1AP/s1ap_eNB_itti_messaging.c
	modified:   openair3/S1AP/s1ap_eNB_itti_messaging.h
	modified:   openair3/S1AP/s1ap_eNB_management_procedures.c
	modified:   openair3/S1AP/s1ap_eNB_management_procedures.h
	modified:   openair3/S1AP/s1ap_eNB_nas_procedures.c
	modified:   openair3/S1AP/s1ap_eNB_nas_procedures.h
	modified:   openair3/S1AP/s1ap_eNB_nnsf.c
	modified:   openair3/S1AP/s1ap_eNB_nnsf.h
	modified:   openair3/S1AP/s1ap_eNB_overload.c
	modified:   openair3/S1AP/s1ap_eNB_overload.h
	modified:   openair3/S1AP/s1ap_eNB_trace.c
	modified:   openair3/S1AP/s1ap_eNB_trace.h
	modified:   openair3/S1AP/s1ap_eNB_ue_context.c
	modified:   openair3/S1AP/s1ap_eNB_ue_context.h
	modified:   openair3/SCTP/sctp_common.c
	modified:   openair3/SCTP/sctp_common.h
	modified:   openair3/SCTP/sctp_default_values.h
	modified:   openair3/SCTP/sctp_eNB_defs.h
	modified:   openair3/SCTP/sctp_eNB_itti_messaging.c
	modified:   openair3/SCTP/sctp_eNB_itti_messaging.h
	modified:   openair3/SCTP/sctp_eNB_task.c
	modified:   openair3/SCTP/sctp_eNB_task.h
	modified:   openair3/SCTP/sctp_primitives_client.c
	modified:   openair3/SCTP/sctp_primitives_client.h
	modified:   openair3/SECU/kdf.c
	modified:   openair3/SECU/key_nas_deriver.c
	modified:   openair3/SECU/key_nas_encryption.c
	modified:   openair3/SECU/nas_stream_eea1.c
	modified:   openair3/SECU/nas_stream_eea2.c
	modified:   openair3/SECU/nas_stream_eia1.c
	modified:   openair3/SECU/nas_stream_eia2.c
	modified:   openair3/SECU/rijndael.h
	modified:   openair3/SECU/secu_defs.h
	modified:   openair3/SECU/snow3g.c
	modified:   openair3/SECU/snow3g.h
	modified:   openair3/TEST/EPC_TEST/generate_scenario.c
	modified:   openair3/TEST/EPC_TEST/generate_scenario.h
	modified:   openair3/TEST/EPC_TEST/play_scenario.c
	modified:   openair3/TEST/EPC_TEST/play_scenario.h
	modified:   openair3/TEST/EPC_TEST/play_scenario_decode.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_display.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_fsm.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_parse.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_s1ap.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c
	modified:   openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h
	modified:   openair3/TEST/EPC_TEST/play_scenario_sctp.c
	modified:   openair3/TEST/oaisim_mme_client_test.c
	modified:   openair3/TEST/oaisim_mme_itti_test.c
	modified:   openair3/TEST/oaisim_mme_list_benchmark.c
	modified:   openair3/TEST/oaisim_mme_s1ap_test.c
	modified:   openair3/TEST/oaisim_mme_sctp_test.c
	modified:   openair3/TEST/oaisim_mme_test_s1c.c
	modified:   openair3/TEST/oaisim_mme_test_s1c.h
	modified:   openair3/TEST/oaisim_mme_test_s1c_s1ap.c
	modified:   openair3/TEST/oaisim_mme_test_s1c_s1ap.h
	modified:   openair3/TEST/oaisim_mme_test_s1c_scenario.c
	modified:   openair3/TEST/oaisim_mme_test_s1c_scenario.h
	modified:   openair3/TEST/oaisim_mme_test_s1c_scenario1.c
	modified:   openair3/TEST/test_aes128_cmac_encrypt.c
	modified:   openair3/TEST/test_aes128_ctr_decrypt.c
	modified:   openair3/TEST/test_aes128_ctr_encrypt.c
	modified:   openair3/TEST/test_kdf.c
	modified:   openair3/TEST/test_s1ap.c
	modified:   openair3/TEST/test_secu.c
	modified:   openair3/TEST/test_secu_kenb.c
	modified:   openair3/TEST/test_secu_knas.c
	modified:   openair3/TEST/test_secu_knas_encrypt_eea1.c
	modified:   openair3/TEST/test_secu_knas_encrypt_eea2.c
	modified:   openair3/TEST/test_secu_knas_encrypt_eia1.c
	modified:   openair3/TEST/test_secu_knas_encrypt_eia2.c
	modified:   openair3/TEST/test_secu_knas_stream_int.c
	modified:   openair3/UDP/udp_eNB_task.c
	modified:   openair3/UDP/udp_eNB_task.h
	modified:   openair3/UTILS/HASHTABLE/hashtable.c
	modified:   openair3/UTILS/HASHTABLE/hashtable.h
	modified:   openair3/UTILS/HASHTABLE/obj_hashtable.c
	modified:   openair3/UTILS/HASHTABLE/obj_hashtable.h
	modified:   openair3/UTILS/conversions.c
	modified:   openair3/UTILS/conversions.h
	modified:   openair3/UTILS/enum_string.c
	modified:   openair3/UTILS/enum_string.h
	modified:   openair3/UTILS/log.c
	modified:   openair3/UTILS/log.h
	modified:   openair3/UTILS/mcc_mnc_itu.c
	modified:   openair3/UTILS/mcc_mnc_itu.h
	modified:   openair3/UTILS/mme_config.c
	modified:   openair3/UTILS/mme_config.h
	modified:   openair3/UTILS/mme_default_values.h
	modified:   targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c
	modified:   targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h
	modified:   targets/ARCH/COMMON/common_lib.c
	modified:   targets/ARCH/COMMON/common_lib.h
	modified:   targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c
	modified:   targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
	modified:   targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
	modified:   targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h
	modified:   targets/ARCH/EXMIMO/DEFS/openair_device.h
	modified:   targets/ARCH/EXMIMO/DEFS/pcie_interface.h
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c
	modified:   targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c
	modified:   targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c
	modified:   targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c
	modified:   targets/ARCH/EXMIMO/USERSPACE/LIB/example.c
	modified:   targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c
	modified:   targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h
	modified:   targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
	modified:   targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h
	modified:   targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h
	modified:   targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h
	modified:   targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c
	modified:   targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h
	modified:   targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
	modified:   targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp
	modified:   targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
	modified:   targets/COMMON/create_tasks.c
	modified:   targets/COMMON/create_tasks.h
	modified:   targets/RT/USER/TOOLS/thread_ipc.c
	modified:   targets/RT/USER/TOOLS/thread_ipc.h
	modified:   targets/RT/USER/UE_transport_IQ.c
	modified:   targets/RT/USER/condtest.c
	modified:   targets/RT/USER/eNB_transport_IQ.c
	modified:   targets/RT/USER/emos-raw.c
	modified:   targets/RT/USER/lte-softmodem.c
	modified:   targets/RT/USER/lte-ue.c
	modified:   targets/RT/USER/msg_many.h
	modified:   targets/RT/USER/rrh.c
	modified:   targets/RT/USER/rrh_gw.c
	modified:   targets/RT/USER/rrh_gw.h
	modified:   targets/RT/USER/rrh_gw_externs.h
	modified:   targets/RT/USER/rt_wrapper.c
	modified:   targets/RT/USER/rt_wrapper.h
	modified:   targets/RT/USER/sched_dlsch.c
	modified:   targets/RT/USER/sched_rx_pdsch.c
	modified:   targets/RT/USER/sched_ulsch.c
	modified:   targets/RT/USER/sleeptest.c
	modified:   targets/RT/USER/synctest.c
	modified:   targets/SIMU/PROC/Process.c
	modified:   targets/SIMU/PROC/Process.h
	modified:   targets/SIMU/PROC/Tsync.h
	modified:   targets/SIMU/PROC/channel_sim_proc.c
	modified:   targets/SIMU/PROC/channel_sim_proc.h
	modified:   targets/SIMU/PROC/interface.h
	modified:   targets/SIMU/USER/channel_sim.c
	modified:   targets/SIMU/USER/cor_SF_sim.c
	modified:   targets/SIMU/USER/cor_SF_sim.h
	modified:   targets/SIMU/USER/event_handler.c
	modified:   targets/SIMU/USER/event_handler.h
	modified:   targets/SIMU/USER/init_lte.c
	modified:   targets/SIMU/USER/init_lte.h
	modified:   targets/SIMU/USER/oaisim.c
	modified:   targets/SIMU/USER/oaisim.h
	modified:   targets/SIMU/USER/oaisim_config.c
	modified:   targets/SIMU/USER/oaisim_config.h
	modified:   targets/SIMU/USER/oaisim_functions.c
	modified:   targets/SIMU/USER/oaisim_functions.h
	modified:   targets/SIMU/USER/oaisim_pad.c
	modified:   targets/SIMU/USER/sinr_sim.c
2016-09-14 15:04:55 +02:00
Raymond Knopp
1e9687fa0b some cleanup in dlsch_modulation prior to parallelization 2016-09-14 03:47:51 -07:00
laurent
51c20a59f7 merge with harmony 2016-09-11 18:21:59 +02:00
Raymond Knopp
75a2c3cf66 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
2016-09-11 13:31:38 +02:00
Raymond Knopp
862e480e75 nothing important 2016-09-10 11:19:56 +02:00
Raymond Knopp
4b0227998e Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-10 01:45:27 -07:00
Raymond Knopp
f329139f18 minor cleanup in ulsch_decoding.c. Some modifications to comments in impl_defs_lte.h. 2016-09-10 01:44:19 -07:00
luhan wang
8fffd732cc added const declarations to coefficients for FFT 2016-09-08 16:28:44 +02:00
Raymond Knopp
0da2c77ad0 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-08 16:24:20 +02:00
Xenofon Foukas
e29524a5fe Fixed bug when using DCCH2 2016-09-05 11:15:26 +03:00
Raymond Knopp
b8b2edb3a9 updates in ulsim for new multipath_channel declaration. Small optimization in dlsch_modulation.c 2016-09-03 12:52:28 -07:00
Raymond Knopp
e729036b9f Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-03 21:45:17 +02:00
Raymond Knopp
0da0ce36aa added pch.c 2016-09-03 08:57:59 -07:00
Raymond Knopp
6d46b31b6d Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-03 08:50:35 -07:00
Raymond Knopp
de5ff85fd3 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-03 17:49:32 +02:00
Raymond Knopp
a205844d77 addition of paging in UE, modifications for dlsim 2016-09-03 08:49:14 -07:00
Raymond Knopp
4fe4ba28b3 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-09-03 17:45:29 +02:00
Raymond Knopp
e8e9402294 small changes for 20 MHz real-time operation 2016-09-03 17:45:08 +02:00
Xenofon Foukas
343f338d3f Merge remote-tracking branch 'oai/develop' into oai-integration
Conflicts:
	cmake_targets/CMakeLists.txt
	maketags
	openair2/RRC/LITE/rrc_eNB.c
2016-09-03 00:17:59 +03:00
S. Sandeep Kumar
a8fb38f40d fix prach packet in if4p5 UDP 2016-09-02 13:18:47 +05:30
Raymond Knopp
e10b7e8162 RCC configuration files for IF4p5 2016-09-01 03:47:51 -07:00
Raymond Knopp
12e9b05abc change in a comment 2016-08-31 11:08:37 -07:00
Xiwen JIANG
cf672ca016 temporary fix for exmimo2 build (no longer requires libboost) to be tested with USRP 2016-08-30 17:11:39 +02:00
Xiwen JIANG
6072a8b0ef Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7
Conflicts:
	targets/SIMU/USER/init_lte.c
	targets/SIMU/USER/oaisim_functions.c
2016-08-30 16:22:18 +02:00
Florian Kaltenberger
eac26b014f enabling deadline scheduler by default for EXMIMO2 2016-08-30 15:59:24 +02:00
Florian Kaltenberger
7707bacc37 Merge branch 'enhancement-16-tm_rrc_reconfig' into feature-21-TM7
Conflicts:
	openair1/PHY/INIT/lte_param_init.c
2016-08-29 11:26:55 +02:00
Rohit Gupta
4f5d818065 minor syntax fix of uespec_procedures 2016-08-25 18:11:30 +02:00
Xiwen JIANG
1f8c702fbb support more >1 EXMIMO2 cards 2016-08-25 17:44:16 +02:00
Rohit Gupta
9116065678 minor fix to usrp timing logging 2016-08-25 14:14:35 +02:00
Raymond Knopp
7525238f92 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-08-24 23:16:21 -07:00
Raymond Knopp
1309358bb5 changes for oaisim to function with new threading architecture and trx_read/trx_write emulation. Tested for 5/10 MHz TM1. Multiple-antenna mode fails. 2016-08-24 23:14:44 -07:00
Rohit Gupta
a4b600989c Merge branch 'develop' into enhancement-10-harmony 2016-08-24 21:54:07 +02:00
Rohit Gupta
6266c55d0a Merge branch 'develop' into enhancement-10-harmony 2016-08-23 21:53:02 +02:00
Xiwen JIANG
fc1e26d074 add VCD by function name for beam precoding and do_ofdm_l 2016-08-23 18:21:45 +02:00
Florian Kaltenberger
b8494221bd Merge branch 'enhancement-16-tm_rrc_reconfig' into feature-21-TM7
Conflicts:
	openair1/PHY/INIT/lte_init.c
	openair1/PHY/INIT/lte_param_init.c
	openair1/PHY/INIT/lte_parms.c
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair2/RRC/LITE/MESSAGES/asn1_msg.c
	openair2/RRC/LITE/defs.h
	openair2/RRC/LITE/rrc_eNB.c
	targets/RT/USER/lte-softmodem.c
	targets/SIMU/USER/init_lte.c
2016-08-23 15:13:55 +02:00
Rohit Gupta
ba9f88f7dc Merge branch 'develop' into enhancement-10-harmony 2016-08-22 23:02:58 +02:00
Rohit Gupta
6d39287393 minor type for syntax error 2016-08-22 20:16:55 +02:00
Xiwen JIANG
394c4cab6a antenna number bug fixed 2016-08-22 20:06:13 +02:00
Rohit Gupta
c73535b439 minor type for test_case_list.xml 2016-08-22 19:21:41 +02:00
Rohit Gupta
ea57f56466 merge selected commits from enhancement-10-harmony-rgu test branch 2016-08-22 19:18:58 +02:00
Xiwen JIANG
fd068005df cosmetic changes 2016-08-22 10:36:16 +02:00
Xiwen JIANG
f277acfef5 remove num_pdcch_symb from paramters of dp_OFDM_mod_l 2016-08-22 10:35:11 +02:00
Xiwen JIANG
bc9c4cfebc do_OFDM_mod_rt to perform on each symbol 2016-08-22 10:33:43 +02:00
Rohit Gupta
4f2e5d359a minor fix for type for RRU/RCC compile tests 2016-08-20 01:33:48 +02:00
Rohit Gupta
48bab02f94 add compilation test cases for RRU/RCC NGFI 2016-08-20 01:02:43 +02:00
Xiwen JIANG
1cbb2c5caa memory allocation for calibration coefficients and dlsch ue spec bf weight 2016-08-18 19:08:51 +02:00
Xiwen JIANG
c590335798 Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2016-08-18 17:40:11 +02:00
Xiwen JIANG
0985080287 add tm7 tdd config file 2016-08-18 17:34:25 +02:00
Xiwen JIANG
e10ed0bec8 EXMIMO duplex mode always set to FDD 2016-08-18 17:30:12 +02:00
Xiwen JIANG
cc6ca6fc12 bug fixed for PSS and SSS generation 2016-08-18 17:29:03 +02:00
Florian Kaltenberger
7b114b08db adding functions to compute bf weights to dlsim 2016-08-18 14:22:14 +02:00
Florian Kaltenberger
341dde6729 Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2016-08-18 12:48:04 +02:00
Florian Kaltenberger
9f4a849115 added prototypes to compute beamforming weights 2016-08-18 12:46:02 +02:00
Florian Kaltenberger
876cee3a2c Merge branch 'develop' into enhancement-64-phy_test
Conflicts:
	openair1/SCHED/phy_mac_stub.c
2016-08-16 16:21:11 +02:00
laurent
e1d57b5312 Merge branch 'enhancement-10-harmony' into enhancement-10-harmony-lts 2016-08-16 08:59:03 +02:00
Laurent Thomas
e1aed5af9a fix nettle, gnutls to use latest API version, fix eth_raw interface with errno==EAGAIN 2016-08-16 08:42:35 +02:00
Rohit Gupta
c99a48d946 merge from develop 2016-08-14 23:12:58 +02:00
Rohit Gupta
8788b311e9 added some helper message to lte-softmodem 2016-08-12 17:26:04 +02:00
Rohit Gupta
8d057b80e2 add helper for three quarter sampling for 20 MHz 2016-08-12 10:54:58 +02:00
Xiwen JIANG
fdde582e92 bug fixed in pbch for nb_antennas_tx>1 2016-08-11 16:29:43 +02:00
Raymond Knopp
857af54015 usrp 20 MHz on 30.72 master clock. fixed memory leak in prach.c for 20 MHz with 3/4 sampling. added default attributes to threads in lte-enb.c 2016-08-08 00:08:43 +02:00
Raymond Knopp
018fb07187 fixed affinity code (FH on CPU0, others on CPU 1-3) 2016-08-07 19:40:53 +02:00
Raymond Knopp
12801c5991 switch for parallel FEP on ulsim. Deactivated for real-time operation. 2016-08-07 19:25:50 +02:00
Raymond Knopp
5b9f4714a9 added unitary_defs.h 2016-08-07 09:51:01 -07:00
Raymond Knopp
e64af6597a testing of low-level parallelization of FEP in eNodeB RX. 2016-08-07 09:47:42 -07:00
Laurent THOMAS
d14ed1d58c merge with harmony main branch 2016-08-07 15:13:31 +02:00
Raymond Knopp
f52cbeeb95 update of ulsim to use phy_procedures 2016-08-07 06:00:54 -07:00
Raymond Knopp
bf220352da Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	targets/RT/USER/lte-enb.c
2016-08-06 20:49:08 +02:00
Raymond Knopp
f000cec33f configuration file changes. 2016-08-06 20:47:50 +02:00
Raymond Knopp
a483534f9a rru configuration files for if4p5 (50/100 PRBs). rru gtkwave configuration files. 2016-08-06 20:01:29 +02:00
Raymond Knopp
b9e550812a addition of handling of UE list MAC when RRC cannot add a UE context. 2016-08-06 19:28:45 +02:00
Raymond Knopp
5055e3e688 bugfixing for single-thread and cleanup 2016-08-06 01:50:08 +02:00
Raymond Knopp
f3e084e005 single-thread. 2016-08-05 15:41:34 -07:00
Raymond Knopp
a0170b8e0f more cleanup for lte-enb.c 2016-08-05 09:34:45 -07:00
Laurent THOMAS
6da3f494f4 update nettle to new interface, update deadline scheduler option (doesnt compile without this), update build/install script to use regular nettle and gnutls in ubuntu 16.04 (should also be fine with 14.04 up-to-date), update init_exmimo2 for ubuntu 16.04) 2016-08-05 15:26:36 +02:00
Raymond Knopp
66cd4fdb14 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-08-05 03:22:02 -07:00
Raymond Knopp
121e33e608 minor changes in dlsim. 2016-08-05 03:21:34 -07:00
Raymond Knopp
8014a94020 IF4p5 with UDP. 2016-08-05 09:58:57 +02:00
Rohit Gupta
3608e5bc9e Gitlab CI: fix for 20MHz tests 2016-08-04 19:13:48 +02:00
Raymond Knopp
87768942d3 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-08-04 18:25:07 +02:00
Raymond Knopp
6e1d81bef3 band 38 tx gain exmimo2 2016-08-04 18:19:54 +02:00
Raymond Knopp
1ec0c5bf63 modifications for EXMIMO2 targets 2016-08-04 16:41:14 +02:00
Rohit Gupta
2efe981eb0 Merge from develop 2016-08-04 16:36:36 +02:00
Raymond Knopp
f63ee88c89 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	openair1/PHY/LTE_TRANSPORT/prach.c
	openair1/SCHED/phy_procedures_lte_eNb.c
	targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
	targets/RT/USER/lte-enb.c
2016-08-04 01:54:18 +02:00
Raymond Knopp
af3bbe425e modifications for RRC IF4p5 2016-08-04 01:14:33 +02:00
Raymond Knopp
240d8b9512 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-08-04 01:01:47 +02:00
Raymond Knopp
5056134772 debugging of IF4p5 RRU 2016-08-04 00:58:19 +02:00
Rohit Gupta
dc124abbad remove nano from test setup 2016-08-03 21:27:38 +02:00
Rohit Gupta
714bae4ffd minor fix for installation 2016-08-03 21:17:41 +02:00
Rohit Gupta
350465fdef fix 20 MHz config file 2016-08-03 21:14:38 +02:00
Raymond Knopp
1ef7ec8012 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-08-01 20:34:45 +02:00
Raymond Knopp
926324d951 debugging for IF4p5 2016-08-01 20:39:01 +02:00
Raymond Knopp
9ec462e880 debugging for IF4p5 2016-08-01 20:30:42 +02:00
Raymond Knopp
56e85db773 configuration files for RCC IF5 5,10 MHz 2016-07-31 21:30:13 +02:00
Raymond Knopp
f92a33b30e Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-07-31 21:24:45 +02:00
Raymond Knopp
b2c21c6246 configuration files for IF5 rru (5,10 MHz) 2016-07-31 21:19:26 +02:00
Raymond Knopp
4b6da53f6d added timeout on ETHERNET recv 2016-07-31 19:41:31 +02:00
Raymond Knopp
2b3b0a1388 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-07-31 19:38:55 +02:00
Raymond Knopp
ec209bd43e if5 modifications. Use of asynchronous RX thread for RCC->RRU IF5 link 2016-07-31 19:33:39 +02:00
Raymond Knopp
5817a62c37 vcd dumping for send/recv IF5 2016-07-31 17:02:43 +02:00
Raymond Knopp
80f9b33a34 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-07-31 15:50:17 +02:00
Raymond Knopp
2a621d319c rcc if5 configuration file 2016-07-31 15:50:05 +02:00
Raymond Knopp
dbae061e72 modifications for if5 2016-07-31 15:31:45 +02:00
Raymond Knopp
5309b71e94 more separation for RRU/RCC 2016-07-31 12:26:41 +02:00
Raymond Knopp
d6377f1acd correction for RCC/RAU initialization 2016-07-31 10:41:09 +02:00
Raymond Knopp
025f56d28b node function interfaces via function pointers. Suggestions from L. Thomas, B. Mongazon, C. Roux. 2016-07-31 10:28:56 +02:00
Cedric Roux
f33e9a7027 do not exit immediately in case of busy thread
5ms by default, easy to change (change the 10 in the loops)

if the behavior is worse than before, do git revert [commit ID]
2016-07-29 21:56:40 +02:00
Rohit Gupta
f9d43daa3a bugfix 2016-07-29 11:39:24 +02:00
Cedric Roux
313acc6e96 fixes for the T 2016-07-28 15:58:54 +02:00
Cedric Roux
60f0d9ad46 bugfix 2016-07-28 12:27:54 +02:00
Rohit Gupta
a2ea484cd8 remove gitlab CI detection of error logging 2016-07-27 22:59:27 +02:00
Sandeep Kumar
bf6428cf38 add rcc/rru conf files 2016-07-27 17:16:05 +02:00
Raymond Knopp
32ca86476e removed debugging trace for Detection of hypothesized PRACH preamble 2016-07-27 11:36:25 +02:00
Raymond Knopp
b75407a1ba Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-07-27 11:31:52 +02:00
Raymond Knopp
032806725e moving of trx_write in eNB_thread_FH to avoit conflicts with trx_read 2016-07-27 08:43:35 +02:00
Sandeep Kumar
986dfecc83 testing if5-rrh_gw tx working 2016-07-26 18:56:43 +02:00
Raymond Knopp
b046b07188 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf
2016-07-26 12:43:33 +02:00
Raymond Knopp
64121aaf15 configuration files, minor changes in RF interface 2016-07-26 12:40:52 +02:00
Xiwen JIANG
e3dbfa3dde some cleanup 2016-07-26 11:43:10 +02:00
Raymond Knopp
95453cf385 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-07-26 02:38:34 -07:00
Raymond Knopp
491c23c3eb removed a debugging print in dft60 2016-07-26 02:37:44 -07:00
Rohit Gupta
fb2a4529d5 updated config files for NGFI RRH interface 2016-07-25 21:17:05 +02:00
Sandeep Kumar
81506be64c if4 working 2016-07-25 17:40:46 +02:00
Xiwen JIANG
987ffdd8a0 add ue spec channel estimation in UE RX procedure (TM7 works for DLSCH) 2016-07-25 14:25:22 +02:00
Sandeep Kumar
4dc5032bb7 if4 tx works again with FH thread changes 2016-07-25 12:04:25 +02:00
Xenofon Foukas
849639f3a2 Merge remote-tracking branch 'oai/develop' into oai-integration
Conflicts:
	cmake_targets/tools/build_helper
	openair1/SCHED/phy_procedures_lte_eNb.c
2016-07-25 12:46:12 +03:00
Raymond Knopp
e035bc3e1c Result of testing as eNodeB. modifications for .vcd logging, bugfix in eNB_thread_FH (subframe counter), update of .conf file for new threading parameters. Updates to gtkwave configuration file for new threading. 2016-07-24 17:37:22 +02:00
Raymond Knopp
02051f1cd5 Merge branch 'develop' into enhancement-10-harmony
Conflicts:
	openair1/SCHED/phy_mac_stub.c
	openair1/SCHED/phy_procedures_lte_eNb.c
	targets/RT/USER/lte-softmodem.c
2016-07-24 03:14:29 -07:00
Raymond Knopp
da4e5fa7fd Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop 2016-07-24 02:40:07 -07:00
Raymond Knopp
56a8f49c9a Merge branch 'develop' into enhancement-10-harmony 2016-07-24 02:38:35 -07:00
Raymond Knopp
161663c28d bug fixes from Laurent on IF5 interface. 8-bit conversion for Mobipass. 2016-07-24 02:31:29 -07:00
Raymond Knopp
e0f0072023 oaisim with interfaces for lte-ue/lte-enb threading compiles and runs. 2016-07-24 01:21:35 -07:00
Raymond Knopp
b1e633bb94 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	openair1/PHY/defs.h
	targets/RT/USER/lte-enb.c
	targets/RT/USER/lte-softmodem.c
2016-07-23 01:23:06 -07:00
Raymond Knopp
6e4d361eb3 commit before merge 2016-07-23 01:17:59 -07:00
Xiwen JIANG
1b4adae54f change the MAX_CARDS to 16 2016-07-22 19:51:24 +02:00
Sandeep Kumar
2e29052ff4 correct logging for common/uespec 2016-07-22 19:35:52 +02:00
Sandeep Kumar
c581eda5ac eNB tx working 2016-07-22 18:51:04 +02:00
Sandeep Kumar
631b4cacf4 read node fn, timing from config data 2016-07-22 16:51:37 +02:00
Sandeep Kumar
6a120cf286 fixes for reading cc_synch 2016-07-22 15:40:47 +02:00
Raymond Knopp
41f0423312 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	openair1/SCHED/phy_procedures_lte_eNb.c
2016-07-21 07:54:52 -07:00
Raymond Knopp
af489a783b addition of asynchronous RX threads and inter CC synchronization 2016-07-20 16:32:38 -07:00
Sandeep Kumar
07b3a0a9d1 prach data seems ok but no rx yet 2016-07-20 19:56:17 +02:00
Sandeep Kumar
bbe47d6fb5 some additions to config files, needs merge 2016-07-20 12:55:12 +02:00
Sandeep Kumar
fa4cfad5cb add mmapped-dma option for lte-softmodem 2016-07-19 15:53:19 +02:00
Raymond Knopp
10ba1c0042 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-07-18 04:11:46 -07:00
Raymond Knopp
29fdf1a35a modifications for UE on ExpressMIMO2, validation on USRP. Only RX path is activated. 2016-07-17 22:50:24 +02:00
Xiwen JIANG
79e8653f03 add read_F.c to openairinterface1/PHY/TOOLS 2016-07-15 16:52:08 +02:00
Xiwen JIANG
4763438131 bug fixed for ue_spec_bf_weights initialisation 2016-07-15 16:48:41 +02:00
Raymond Knopp
7e2a39733e modifications for oaisim. oaisim_noS1 compiles at this point. 2016-07-15 00:04:04 -07:00
Raymond Knopp
d950124885 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	targets/RT/USER/lte-softmodem.c
2016-07-14 12:59:29 +02:00
Raymond Knopp
89a9be9b9f Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	openair1/SCHED/phy_procedures_lte_ue.c
	targets/RT/USER/lte-softmodem.c
	targets/RT/USER/lte-ue.c
2016-07-14 12:52:21 +02:00
Sandeep Kumar
b804f1e47e send correct timing 2016-07-13 19:33:40 +02:00
Sandeep Kumar
0789ee9560 ifdevice tx/rx buffer per cc 2016-07-12 17:58:02 +02:00
Florian Kaltenberger
142c02a5b8 small fix in CMakeLists.txt to avoid inclusion of unwanted files 2016-07-12 11:18:05 +02:00
Sandeep Kumar
a3c41ed7ff remove writeop, rru tx works 2016-07-08 19:43:09 +02:00
Sandeep Kumar
8934fed89e fixed issue with offset and sign extension 2016-07-08 17:01:06 +02:00
Sandeep Kumar
5f0e15a4b8 save for switching pc 2016-07-07 19:05:14 +02:00
Xiwen JIANG
208e4d7e84 Merge branch 'feature-21-TM7' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2016-07-07 17:54:23 +02:00
Sandeep Kumar
9cbf5819c1 fixes from bbu/rrh trial run 2016-07-07 11:27:50 +02:00
Sandeep Kumar
f57a8b8c8f changes to send/recv if5 2016-07-06 18:28:57 +02:00
Sandeep Kumar
25952d4450 added node fn RRU_IF5, split points and vcd logging 2016-07-06 17:08:26 +02:00
Xiwen JIANG
a5b57ddce4 dci decoding procedure 2016-07-06 15:01:58 +02:00
Sandeep Kumar
b5fbdbe252 test if5 send from BBU with new spp 2016-07-06 12:23:00 +02:00
Florian Kaltenberger
35bdc94092 fixing a few bugs after merge 2016-07-06 10:28:27 +02:00
Sandeep Kumar
8dcc3ddb4d if_defs and eth_lib .h cleanup 2016-07-06 09:56:13 +02:00
S. Sandeep Kumar
622f917351 adjust spp for whole number per subframe 2016-07-06 03:02:53 +05:30
S. Sandeep Kumar
c32304afbf allow rf and if for eNB build 2016-07-06 01:34:12 +05:30
Sandeep Kumar
ba11fc848d keep alaw lut and remove other code 2016-07-05 18:01:41 +02:00
Sandeep Kumar
9c1a6fc16e rru recv frame no fix 2016-07-05 17:54:35 +02:00
Xiwen JIANG
08f73c72d8 resolve conflict when merge develop 2016-07-05 15:11:12 +02:00
Xiwen JIANG
802922dcf1 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-21-TM7 2016-07-05 11:22:46 +02:00
Sandeep Kumar
cfd45a1d9e small fixes and mid save 2016-07-04 17:42:31 +02:00
Raymond Knopp
64e3d4f651 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	openair1/SCHED/phy_procedures_lte_eNb.c
2016-07-03 12:53:26 +02:00
Sandeep Kumar
5ae509b2de if5_mobipass tools 2016-07-01 19:30:18 +02:00
Sandeep Kumar
55c194b07d added mobipass interface and tested sending dummy and starting stream, no reply yet 2016-07-01 19:29:02 +02:00
Florian Kaltenberger
7463f71b48 mostly bugfixes 2016-07-01 13:20:15 +02:00
Florian Kaltenberger
cd8cc1a35c added ue_transmission_mode and nb_antenna_ports to eNB config file
transmisison mode gets set with RRCReconfiguration
2016-07-01 13:19:18 +02:00
Raymond Knopp
b628856635 updates in UE for new process scheduling 2016-07-01 03:10:39 -07:00
Sandeep Kumar
3fd226f7b0 added sync between rru and rcc frame, subframe 2016-06-29 17:16:29 +02:00
Xenofon Foukas
71c047d1ae Revert to single eNodeB for simulation 2016-06-29 12:32:19 +03:00
Xenofon Foukas
615da86332 Merge remote-tracking branch 'oai/develop' into oai-integration
Conflicts:
	cmake_targets/CMakeLists.txt
	cmake_targets/tools/build_helper
	targets/SIMU/USER/oaisim.c
2016-06-29 12:31:56 +03:00
Sandeep Kumar
36a3d85727 init if before rf, cleaning usrp blocks 2016-06-28 18:05:23 +02:00
Sandeep Kumar
36df9556c2 minor typo 2016-06-27 17:26:43 +02:00
Sandeep Kumar
0d4d8cef0e added node func BBU and marked split for rf/if read and write 2016-06-27 17:21:53 +02:00
Sandeep Kumar
6ae4123733 some fixes for host type/dev type 2016-06-27 12:43:43 +02:00
Sandeep Kumar
81ce21343b Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-27 12:35:44 +02:00
Raymond Knopp
456572c9ad ExMIMO2 RX gain calibration 2016-06-27 00:58:54 -07:00
Xiwen JIANG
224498cf3b add ue_TransmissionMode in RrcConfigurationReq 2016-06-24 18:13:02 +02:00
Xiwen JIANG
95808aec10 add ue_TransmissionMode in RrcConfigurationReq 2016-06-24 18:11:21 +02:00
Xiwen JIANG
7d7cbc57f8 set transmission mode in phy_config_dedicated_[UE|eNB] after RRCConnectionReconfiguration(eNB) and RRCConnectionReconfigurationComplete(UE) 2016-06-24 18:09:06 +02:00
Sandeep Kumar
56fcc17ebc small compilation rru 2016-06-24 17:36:40 +02:00
Sandeep Kumar
1992271589 rcc recv and send work (not sync with rru yet) 2016-06-24 16:35:42 +02:00
Xiwen JIANG
6a8a551ef3 add beamforming_mode into generate eNB and UE dlsch parameters from DCI 2016-06-24 12:32:57 +02:00
Xiwen JIANG
4fa0810cdd add tm7 case into asn1 message 2016-06-24 12:20:38 +02:00
Sandeep Kumar
808494dd44 unified if4 header 2016-06-24 10:52:52 +02:00
Raymond Knopp
9f0a76e84b Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-23 19:08:28 +02:00
Raymond Knopp
08d89933e1 expressmimo TX ok. 2016-06-23 19:08:01 +02:00
Sandeep Kumar
8390977e7e getting rid of bit-fields 2016-06-23 18:36:34 +02:00
Florian Kaltenberger
b3fc3850d8 changing the way data is generated at eNB in --phy-test option 2016-06-23 15:14:01 +02:00
Florian Kaltenberger
cfc5ff209e Merge branch 'develop' into enhancement-64-phy_test 2016-06-23 15:13:14 +02:00
Sandeep Kumar
89052325e1 handling if send for rxsigF 2016-06-23 11:33:30 +02:00
Raymond Knopp
a3e1aed459 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop 2016-06-22 15:04:57 -07:00
Sandeep Kumar
f5eaa7d7ed minimal fixes from base rru run 2016-06-22 18:21:28 +02:00
Xiwen JIANG
61a6b06129 distinguish beamforming mode in rx_pdsch for SI, RA and data 2016-06-22 11:09:24 +02:00
Raymond Knopp
6d51052eff Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-22 08:39:25 +02:00
Raymond Knopp
4302afee51 small changes 2016-06-22 08:38:54 +02:00
Raymond Knopp
1f274a7b04 Merge remote-tracking branch 'origin' into enhancement-10-harmony
Merge in develop too.
Conflicts:
	cmake_targets/CMakeLists.txt
	openair1/PHY/CODING/3gpplte_sse.c
	openair1/PHY/LTE_TRANSPORT/phich.c
	openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
	openair1/SCHED/phy_mac_stub.c
	openair1/SCHED/phy_procedures_lte_eNb.c
	targets/RT/USER/lte-softmodem.c
2016-06-21 23:36:23 -07:00
Sandeep Kumar
21b492f95c minimal fixes from rcc test 2016-06-21 18:08:10 +02:00
Sandeep Kumar
d43b8a3041 handling low level eth function for read 2016-06-21 17:08:27 +02:00
Sandeep Kumar
12385fbd64 changes to handle different proc in callers 2016-06-21 17:05:32 +02:00
Florian Kaltenberger
2e2f6f9c20 transmission mode is now taken into account in RRC signalling
small bugfix in dlsch_demodulation
shunted out TM3-7 specific DCI generation in scheduler to enable basic operation. more work needed.
2016-06-21 15:33:57 +02:00
Sandeep Kumar
ba77625411 device specific eth headers - needs testing 2016-06-21 11:50:17 +02:00
Sandeep Kumar
ad9411fcaa changes to allow if4 specific eth transport modes 2016-06-21 11:05:11 +02:00
Raymond Knopp
e5132ebf5f eNB_proc_t -> eNB_rxtx_proc_t in if4_tools.c, addition on parameter of functions 2016-06-20 13:59:00 -07:00
Sandeep Kumar
f6f7597ec1 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-20 18:53:29 +02:00
Sandeep Kumar
a8def02fbf starting to add if4 specific eth read, write 2016-06-20 18:36:17 +02:00
Sandeep Kumar
f2e183fb2b handling changes in eth lower level functions 2016-06-20 18:33:37 +02:00
Raymond Knopp
94fd52a484 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-20 03:00:21 -07:00
Sandeep Kumar
9246b16ca9 added logic for recv_if4 function 2016-06-20 10:51:40 +02:00
Sandeep Kumar
fc13e2005f if header and data blocks seperated 2016-06-20 10:21:02 +02:00
Raymond Knopp
21aff80bc9 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	targets/RT/USER/lte-enb.c
2016-06-18 03:52:06 -07:00
Raymond Knopp
f91457d8d2 added common acquisition interfaces for ExpressMIMO2 2016-06-18 03:48:23 -07:00
Xiwen JIANG
a04682d47a oaisim takes tx and rx antenna number from config file and transmission mode from the command line 2016-06-17 16:44:30 +02:00
Xiwen JIANG
5a40c9a8c7 bug fixed for dlsch_modulation input 2016-06-17 16:42:40 +02:00
Xiwen JIANG
81047e94af cosmetic changes 2016-06-17 16:41:21 +02:00
Sandeep Kumar
5541cafd95 add vcd logging for send, recv if4 and delay for testing without recv 2016-06-17 15:39:24 +02:00
Sandeep Kumar
e38dc81c16 just testing node function 2016-06-17 12:19:36 +02:00
S. Sandeep Kumar
03f66cb85e handle prach rx for enb node functions 2016-06-17 04:14:41 +05:30
S. Sandeep Kumar
d7781f7a31 asthetic fixes for lte-enb.c 2016-06-17 01:47:42 +05:30
Sandeep Kumar
c5745c1622 highlight send/recv if4 - midsave to swich pc 2016-06-16 17:44:05 +02:00
Sandeep Kumar
c76951a319 handle per cc device for some tx/rx cases 2016-06-16 12:49:15 +02:00
Sandeep Kumar
dd6e1f9d87 fixes for if4_tools for compilation 2016-06-16 12:45:08 +02:00
Sandeep Kumar
b70b2ac4c4 add openair0 device to eNB struct and per CC_id changes 2016-06-16 11:32:48 +02:00
Xiwen JIANG
d7db5cdd57 merge ue_spec beamforming and cell_spec beamforming to beam_precoding 2016-06-15 17:54:13 +02:00
Sandeep Kumar
981655ccb1 integrate send_IF4 with alaw lut 2016-06-14 17:05:07 +02:00
Raymond Knopp
626d107978 Merge branch 'develop' into enhancement-10-harmony
Conflicts:
	cmake_targets/CMakeLists.txt
	openair1/SCHED/phy_mac_stub.c
	targets/RT/USER/lte-softmodem.c
	targets/RT/USER/lte-ue.c
2016-06-14 05:41:18 -07:00
Sandeep Kumar
a33bb69421 added multiple eth_params read 2016-06-14 11:18:47 +02:00
S. Sandeep Kumar
e48a34f68f added alaw lut for +-16/+8/+-16 2016-06-14 05:07:16 +05:30
Sandeep Kumar
2cd8489086 starting to add run options for node_function 2016-06-13 18:50:05 +02:00
Sandeep Kumar
2cc779b930 added macros for packet_type 2016-06-13 18:27:42 +02:00
Raymond Knopp
29905893b0 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-13 01:47:16 -07:00
Raymond Knopp
45cbc8ab7d fixed unitary simulators 2016-06-12 21:44:40 -07:00
S. Sandeep Kumar
9c159229d5 added rcc rx recv_IF4 logic 2016-06-13 02:48:05 +05:30
Raymond Knopp
a2e7ddee86 fixed AVX2 issue in 3gpplte_sse.c 2016-06-12 04:56:16 -07:00
Florian Kaltenberger
0d11b26337 Merge remote-tracking branch 'origin/develop' into enhancement-64-phy_test 2016-06-09 13:31:35 +02:00
Rohit Gupta
f5b368461b fixed a bug in initialization of DCI 2016-06-09 12:16:57 +02:00
Raymond Knopp
889262e109 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop 2016-06-08 23:15:06 -07:00
Raymond Knopp
f7b6d16c4e initializations for LMSSDR 2016-06-08 19:27:11 +02:00
Sandeep Kumar
89eba068aa added comments on IF# split point phy_TX 2016-06-08 11:41:14 +02:00
Raymond Knopp
b7c37c1078 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-08 00:32:47 +02:00
S. Sandeep Kumar
d51d5deeac fix some structures and add more details to if4 functions 2016-06-08 04:00:13 +05:30
Raymond Knopp
1654af9a63 removed some traces that flooded the screen. Added UE information in PHY/MAC/RRC to indicate status of active/failing UEs every 10.24 seconds. 2016-06-08 00:28:16 +02:00
Raymond Knopp
7520ae6e47 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-07 20:41:13 +02:00
Sandeep Kumar
d5d1dd0e8a fixed packet struct types 2016-06-07 18:19:26 +02:00
Sandeep Kumar
f101c6634b added original ALAW compression 2016-06-07 17:17:36 +02:00
Raymond Knopp
b96a6e4e97 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-04 10:18:25 +02:00
Raymond Knopp
05ce533e7b Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-03 22:58:12 -07:00
Raymond Knopp
eea7764ace updated oai_L1_L2_procedures.pdf 2016-06-03 22:57:16 -07:00
Sandeep Kumar
ad1114c7f7 added more structural changes 2016-06-03 17:54:32 +02:00
Sandeep Kumar
7b3fe85358 fixed file name, updated the IF4 frame structure, added dummy functions for frame generation 2016-06-03 16:23:22 +02:00
Sandeep Kumar
448b26f625 added draft of IF4 packet frame structure 2016-06-03 15:39:36 +02:00
Raymond Knopp
a396fdc5b0 moving if4tools.c 2016-06-03 14:04:01 +02:00
Raymond Knopp
769de126d9 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-03 14:02:26 +02:00
Raymond Knopp
d420f75f3d nothing special 2016-06-03 14:01:34 +02:00
Raymond Knopp
3fb221d316 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-03 09:55:19 +02:00
Raymond Knopp
bba649ac91 removal of slot_fep_ul in phy_procedures_rx_uespec 2016-06-03 09:54:49 +02:00
Raymond Knopp
fd70527bf2 updates for 2 RXn-TXnp4 threads 2016-06-02 16:00:02 -07:00
Raymond Knopp
4996f9855d first draft of the send_if function 2016-06-02 19:13:20 +02:00
Raymond Knopp
3bb81c073e tx_scheduling_advance removed and tx_sample_advance added to trx_write in lte-enb.c 2016-06-02 06:16:50 -07:00
Raymond Knopp
71ed2c7d48 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-02 05:19:59 -07:00
Raymond Knopp
a2234d18a6 new procedures document 2016-06-02 00:41:28 -07:00
Raymond Knopp
f895f42c9d frame/subframe numbering 2016-06-02 09:34:56 +02:00
Raymond Knopp
ba93bbe99e corrected frame_tx calculation in lte-enb.c 2016-06-01 21:40:59 -07:00
Raymond Knopp
ac615a4c1f Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony 2016-06-01 20:47:02 +02:00
Raymond Knopp
deab4aa208 debugging with USRP 2016-06-01 20:44:57 +02:00
Xiwen JIANG
b1f64b22a6 bug fixed for oarf_get_frame 2016-05-31 19:13:45 +02:00
Xiwen JIANG
719a94d2c4 add exmimo octave api env to TDD rec proj 2016-05-31 17:38:01 +02:00
Xiwen JIANG
7ca6a84e20 bug fixed for oarf_get_frame 2016-05-31 17:37:19 +02:00
Xiwen JIANG
d621de7fb3 enable TM7 in oaisim 2016-05-30 18:38:52 +02:00
Xiwen JIANG
b6e7f7ec51 tx_eNB -> ant_ports in oaisim 2016-05-30 17:58:31 +02:00
Xiwen JIANG
5370685740 Merge branch 'master' into feature-21-TM7 2016-05-30 17:13:09 +02:00
Raymond Knopp
7d6746b4b0 added lte-enb to lte-softmodem-noS1 target 2016-05-30 09:58:48 +02:00
Raymond Knopp
a60e701366 bug fixing for new L1 scheduling, updates to vcd tracing 2016-05-30 00:36:07 +02:00
Raymond Knopp
cbc4160ba4 added targets/DOCS/oai_L1_L2_procedures.pdf 2016-05-29 15:42:51 -07:00
Raymond Knopp
e198a7423f updated unitary simulations and corrected bugs in threading and scheduling of L1 procedures. 2016-05-27 10:21:23 -07:00
Raymond Knopp
2b6c7a52a0 intermediate save to switch machines 2016-05-27 13:33:19 +02:00
Raymond Knopp
b188a5cfeb changed threading (acqusition is slot based). removal of eNB_thread. timing all based on received timestamp. 2016-05-26 15:14:57 -07:00
Dominique Nussbaum
7e03fe232e fixes for 20MHz 2016-05-26 15:47:57 +02:00
Raymond Knopp
3cfbb76840 Merge branch 'enhancement-10-harmony' of https://gitlab.eurecom.fr/oai/openairinterface5g into enhancement-10-harmony
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair1/SCHED/phy_procedures_lte_eNb.c
2016-05-20 03:49:36 -07:00
Xenofon Foukas
0f5b01457b Merge remote-tracking branch 'oai/develop' into oai-integration
Conflicts:
	openair1/SCHED/phy_procedures_lte_eNb.c
	openair2/LAYER2/MAC/eNB_scheduler.c
2016-05-17 13:18:09 +01:00
Raymond Knopp
d9761e7adc added missing structure element in eNB_RRC_UE_t : ue_release_timer_thres 2016-05-16 05:47:02 -07:00
Raymond Knopp
e6f201a257 Merge branch 'develop', remote-tracking branch 'origin' into enhancement-10-harmony 2016-05-16 05:29:47 -07:00
Raymond Knopp
80b3850fa1 removal of mod_sym_t 2016-05-16 05:29:04 -07:00
Raymond Knopp
d3d423f51e split phy_procedures_eNB_TX into sub-modules for better understanding. No functional differences. 2016-05-15 14:10:04 -07:00
Raymond Knopp
475f1f8937 removed -mavx2 from CMakelists.txt for non AVX2 targets 2016-05-15 02:07:06 -07:00
Raymond Knopp
195345b6a5 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop 2016-05-13 04:59:41 -07:00
Raymond Knopp
7f9421e4ce RRCConnectionSetupComplete-Timer 2016-05-13 02:15:09 -07:00
Raymond Knopp
f92906d901 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop 2016-05-10 12:32:45 -07:00
Raymond Knopp
e2c3222802 removal of EXPRESSMIMO #ifdef's in lte-ue. move UE-specific code from lte-softmodem.c to lte-ue.c 2016-05-09 23:40:36 -07:00
Raymond Knopp
58ba008937 added lte-enb.c which extracts all enb-specific code from lte-softmodem. corrects merge from develop branch in dlsch_modulations.c. removal of HW-specific code in lte-softmodem.c 2016-05-08 10:23:34 -07:00
Raymond Knopp
7e31cb2afa Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop
Conflicts:
	openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
	openair1/PHY/TOOLS/lte_dfts.c
	openair1/SIMULATION/LTE_PHY/dlsim.c
2016-05-06 02:57:05 -07:00
Xenofon Foukas
b9c9293144 Added support for multiple eNBs 2016-04-25 17:12:11 +01:00
Xenofon Foukas
07d30b2288 Fixed bug in the number of eNBs for the simulations 2016-04-25 17:11:27 +01:00
Xenofon Foukas
104ed9ade1 Added fixes for multiple eNBs and simulation mode 2016-04-25 17:09:53 +01:00
Raymond Knopp
d54fe24f9e acceleration of dlsch_modulation 2016-04-21 00:53:28 -07:00
Xenofon Foukas
59ba6f9e7b Made config changes for remote scheduler and eNB 2016-04-20 13:41:49 +01:00
Xenofon Foukas
bcea7d5917 Fixed local scheduler bug when scheduling multiple UEs 2016-04-18 13:05:36 +01:00
Xenofon Foukas
bad4b7940a Fixed bug when delegating control when delegated lib was previously NULL 2016-04-15 12:17:36 +01:00
Xenofon Foukas
673ef5fa7a Modified active harq reporting mechanism to support long schedule ahead of time values 2016-04-14 15:13:15 +01:00
Xenofon Foukas
d4fd08785d Modified eNB conf file for USRP to use 50 rbs 2016-04-14 14:51:00 +01:00
Xenofon Foukas
345a9382f2 Fixed bug of local agent scheduler that did not allow the retransmission in HARQ processes 2016-04-14 14:50:22 +01:00
Raymond Knopp
2176299a2d pdcchsim change for debugging CCE allocations 2016-04-14 00:40:50 -07:00
Xenofon Foukas
a47f3654f8 Added basic support for policy reconfiguration using yaml parser 2016-04-12 13:00:20 +01:00
Xenofon Foukas
dd2e208361 Added protocol support for agent policy reconfiguration 2016-04-12 12:56:55 +01:00
Xenofon Foukas
9c9d3f4580 Added build support for packages required for the agent-enabled eNB 2016-04-12 12:56:13 +01:00
Xenofon Foukas
5dbae26032 Merge branch 'feature-68-enb-agent' into agent-performance 2016-04-11 11:39:44 +01:00
Xenofon Foukas
6b15195ac5 Added statistics for total and missed scheduling deadlines of remote scheduler 2016-04-07 09:28:35 +01:00
Xenofon Foukas
60b7e425df Merge remote-tracking branch 'origin/feature-68-enb-agent' into agent-performance 2016-04-06 13:35:06 +01:00
Xenofon Foukas
7236e3ca17 Bugfixes to improve stability 2016-04-06 13:34:37 +01:00
Xenofon Foukas
46b1280a5e Merge remote-tracking branch 'oai/develop' into feature-68-enb-agent 2016-04-06 08:50:09 +01:00
Raymond Knopp
68fb9ef07f modifications to eMBMS-related L1 processing. mbmssim now works again (performance to be checked for 10/20 MHz), but error rates decay as they should with SNR. 2016-04-04 16:29:06 -07:00
Xenofon Foukas
224ec7c4a1 Merge remote-tracking branch 'origin/develop' into agent-performance 2016-04-04 10:49:35 +01:00
Xenofon Foukas
abcdd194ff Merge remote-tracking branch 'origin/develop' into feature-68-enb-agent 2016-04-04 10:49:02 +01:00
Xenofon Foukas
f545a225a4 Merge remote-tracking branch 'oai/develop' into develop 2016-04-04 10:48:14 +01:00
Xenofon Foukas
985a2ec261 Merge remote-tracking branch 'oai/develop' into feature-68-enb-agent 2016-03-31 11:08:02 +01:00
Xiwen JIANG
3c7f2ff3ce fill dci for TM7 2016-03-25 09:19:34 +01:00
Xenofon Foukas
a226423258 Merge remote-tracking branch 'oai/develop' into agent-performance 2016-03-22 17:18:33 +02:00
Xenofon Foukas
891cd96638 Merge remote-tracking branch 'oai/develop' into feature-68-enb-agent 2016-03-22 17:15:54 +02:00
Xenofon Foukas
f97edfd04d Merge remote-tracking branch 'oai/develop' into develop 2016-03-22 17:04:26 +02:00
Xiwen JIANG
42ffffd902 Merge branch 'develop' into feature-21-TM7 2016-03-21 17:26:07 +01:00
Xiwen JIANG
9fcca73f53 lte softmodem adaption for massive antennas (not complete) 2016-03-21 16:55:26 +01:00
Xiwen JIANG
9fca33136d move symbol level ifft including beamforming into ofdm_mod.c 2016-03-21 16:53:35 +01:00
Xiwen JIANG
e196f5fcfb bug fixed in beamforming.c 2016-03-21 16:52:03 +01:00
Xenofon Foukas
aa50fcf02a Fixed HARQ reporting to agent and changed sf trigger to report the upcoming subframe 2016-03-18 19:42:38 +00:00
Xenofon Foukas
7481959647 Added agent config file for band7 usrbb210 2016-03-18 19:38:55 +00:00
Xiwen JIANG
06c4b91b61 move beamforming function to PHY/MODULATION folder 2016-03-17 10:28:06 +01:00
Xenofon Foukas
7ab320d923 Prevent timing advance update to be sent without payload 2016-03-16 13:40:46 +00:00
Xenofon Foukas
c77fb6479e Changed timing of continuous MAC statistics to be reported at the end of the subframe 2016-03-16 11:49:07 +00:00
Xenofon Foukas
ef22a539aa Added more checks when applying dci decisions in the dataplane, to reduce RLC request misses 2016-03-16 11:48:18 +00:00
Xenofon Foukas
c2971d5176 Added tcp_nodelay option in agent async interface 2016-03-15 17:25:44 +00:00
Xenofon Foukas
43b63be53a Added nb_rb and oldNDI in template to be used for retransmissions 2016-03-14 11:42:04 +00:00
Xenofon Foukas
1b972a5537 Merge remote-tracking branch 'remotes/oai/develop' into feature-68-enb-agent 2016-03-10 14:41:50 +00:00
Xenofon Foukas
c844f0aa25 Merge remote-tracking branch 'remotes/oai/develop' into develop 2016-03-10 14:39:32 +00:00
Xenofon Foukas
3251cf792c Added shared libs for control delegation 2016-03-10 14:12:47 +00:00
Xenofon Foukas
e88c4d97cf Code cleanups for control delegation and API 2016-03-10 10:57:44 +00:00
Xenofon Foukas
3a1f3df882 Added OAI priority to send and receive thread of agent 2016-03-09 13:13:03 +00:00
Xenofon Foukas
34db5f2003 Moved agent async interface to lock-free implementation using lock-free ringbuffer 2016-03-09 12:19:16 +00:00
Mohamed Kassem
8b28344448 Temporary fix for bug in reporting number of initial pdcch symbols of cell and band5 configuration file for agent 2016-03-08 18:15:52 +00:00
Xenofon Foukas
ff5b585446 Added check for ignoring empty mac dl config messages 2016-03-08 12:58:44 +00:00
Xenofon Foukas
2a5a389f7d Improved stability and eNB goodput of remote scheduling 2016-03-07 16:27:32 +00:00
Xenofon Foukas
0dc76931c6 Fixed bug in HARQ status reporting 2016-03-07 12:37:46 +00:00
Xenofon Foukas
fc569650ce Fixed problem with sfn_sf recoding in remote scheduler 2016-03-07 10:02:40 +00:00
Xenofon Foukas
26bdf50109 Added bugfixes for remote scheduling 2016-03-04 15:46:31 +00:00
Xenofon Foukas
93b7cf05e8 Fixed linking error with creation of empty dl_mac_config 2016-03-04 10:54:11 +00:00
Xenofon Foukas
06b55e3fba Fixed bug in creation of ul_cqi_report 2016-03-04 10:19:34 +00:00
Xenofon Foukas
47d3d77322 Added updates in the dataplane based on dl_mac_config message 2016-03-04 10:04:29 +00:00
Xenofon Foukas
d24f532396 Fixed bug in de-allocation of p0_pucch report 2016-03-03 19:49:51 +00:00
Xenofon Foukas
d153208fc0 Added p0_PUCCH support in the agent 2016-03-03 17:39:10 +00:00
Xenofon Foukas
a576127c49 Added temporary values in protocol for PUCCH power control 2016-03-03 15:17:19 +00:00
Xenofon Foukas
ad74bb0247 Fixed enums issue and update time advance API function 2016-03-03 15:05:54 +00:00
Xiwen JIANG
71b7693429 change back 'p' and 'q' options for dlsim 2016-03-01 15:41:07 +01:00
Xiwen JIANG
bbd125a778 bug fixed for ULSIM 2016-03-01 15:40:43 +01:00
Xenofon Foukas
4a04aeb2aa Fixed bug in decoding frame and subframe number from sfn_sf field 2016-03-01 13:08:29 +00:00
Xiwen JIANG
e3e30fbf07 add tm7 eNB config file 2016-02-29 18:16:12 +01:00
Xiwen JIANG
ea13be85b9 enable n_tx=8 in dlsim.c 2016-02-29 17:49:33 +01:00
Xiwen JIANG
f02e6ca526 add beamforming function 2016-02-29 17:15:26 +01:00
Xiwen JIANG
c7c9da4296 cosmetic changes to enable multiple antenna transmission 2016-02-29 14:53:15 +01:00
Xenofon Foukas
08783ca6d2 Merge remote-tracking branch 'origin/develop' into feature-68-enb-agent 2016-02-27 16:53:09 +00:00
Xenofon Foukas
ac8b74ef4a Merge branch 'agent' into feature-68-enb-agent 2016-02-27 16:31:22 +00:00
Xenofon Foukas
a022eaf6b2 Merge remote-tracking branch 'oai/develop' into develop 2016-02-27 16:28:41 +00:00
Xenofon Foukas
a8d646b108 Added agent support for remote scheduler 2016-02-26 17:30:54 +00:00
Xenofon Foukas
f47f596a1f Added support for liblfds7 2016-02-26 13:31:13 +00:00
Xenofon Foukas
197726ce61 Fixed memory leaks in sf and mac config messages 2016-02-25 13:55:19 +00:00
Xenofon Foukas
24785b3a61 Fixed bugs in API function calls for UE config 2016-02-25 01:06:04 +00:00
Xenofon Foukas
9bbc22f496 Added UE state change message support 2016-02-24 18:28:32 +00:00
Xenofon Foukas
a5fd618770 Fixed bug of wrong rnti value when finding it using the UE id 2016-02-24 17:33:49 +00:00
Xenofon Foukas
4c7d1e0381 Added support for indication of a UE state in both RRC_CONNECTED and RRC_RECONFIGURED STATES 2016-02-24 17:31:13 +00:00
Xenofon Foukas
f84568e171 Bug fix when checking for the LCG of an LC 2016-02-24 14:40:03 +00:00
Xenofon Foukas
fffb682f7a Added continuous update support 2016-02-24 14:38:44 +00:00
Xenofon Foukas
906e90727e Fixed LC config reporting based on existing LCs 2016-02-24 12:47:24 +00:00
Xenofon Foukas
a637957c7c Moved UE activation notification to RRC 2016-02-24 12:46:22 +00:00
Xenofon Foukas
00b158829f Fixed bug in UE configuration message 2016-02-23 17:57:22 +00:00
Xenofon Foukas
e1d1b0baff Added event notification for connection of a new UE 2016-02-23 17:53:43 +00:00
Xenofon Foukas
0ec3cfdf04 Added UE and LC config API function calls 2016-02-23 14:18:49 +00:00
Xenofon Foukas
4672497206 Added support for DL UE scheduler control delegation 2016-02-23 12:56:09 +00:00
Xenofon Foukas
25e5e3b837 Added script to automatically create cache for agent 2016-02-23 11:08:14 +00:00
Xenofon Foukas
d8cc6d95e6 Added support for control delegation and dynamic loading of libraries 2016-02-23 10:47:08 +00:00
Xenofon Foukas
7dd05df4ea Added configuration support for local cache 2016-02-23 10:29:53 +00:00
Xiwen JIANG
71f6467581 adaption for lte-softmodem compilation 2016-02-22 17:28:50 +01:00
Xenofon Foukas
02686ce804 Added temporary notification for the deactivation of a UE in the MAC 2016-02-22 15:29:10 +00:00
Xenofon Foukas
95d51446f8 Added ue_state_change stub implementation 2016-02-22 15:25:27 +00:00
Xenofon Foukas
465168d2af Integrated sf triggering to MAC layer and fixed bugs in creation of sf trigger message 2016-02-22 14:45:39 +00:00
Xenofon Foukas
991e995027 Changed get_harq function to provide both id and status at once 2016-02-22 14:08:11 +00:00
Xenofon Foukas
e6e117a567 Implemented LC config reply message 2016-02-22 13:08:26 +00:00
MKassem
591cb51a2d Added sf trigger API functions
Signed-off-by: Xenofon Foukas <x.foukas@sms.ed.ac.uk>
2016-02-22 12:12:23 +00:00
Xenofon Foukas
1caa45ad4b Integrated UE state messages to agent 2016-02-22 12:05:17 +00:00
Xenofon Foukas
b523682af0 Added support for UE state change message 2016-02-22 11:55:46 +00:00
Xenofon Foukas
7b1ee53a4e Implemented UE config message (dummy) 2016-02-22 11:26:52 +00:00
Xenofon Foukas
b6c9a4a713 Merge branch 'develop' into feature-68-enb-agent
Conflicts:
	cmake_targets/CMakeLists.txt
	openair2/ENB_APP/enb_config.c
	openair2/ENB_APP/enb_config.h
2016-02-21 22:02:06 +00:00
Xenofon Foukas
93cf1b1df7 Fixed bug in assignment of enb_config_request_message 2016-02-21 21:39:22 +00:00
MKassem
08e25bf397 Added eNB configuration message
Signed-off-by: Xenofon Foukas <x.foukas@sms.ed.ac.uk>
2016-02-21 21:35:44 +00:00
Xiwen JIANG
6fc604d182 conflict resolve for pdcchsim.c 2016-02-19 18:17:43 +01:00
Xiwen JIANG
3d2a1abb35 Merge branch 'develop' into feature-21-TM7 and conflict resolve 2016-02-19 17:43:03 +01:00
Xenofon Foukas
258a71ffbd Fixed direction of hello message, as a reaction to controller stimulation 2016-02-19 13:55:29 +00:00
Xenofon Foukas
cb8b6db577 Fixed bug in periodic reporting, where ue flags were reset 2016-02-19 13:37:52 +00:00
Xenofon Foukas
b64cb5b250 Added rank indication and timing advance indication support 2016-02-10 18:07:35 +00:00
Xenofon Foukas
a663654418 Patch to get tx_queue size from RLC for the LCs of a UE 2016-02-10 13:41:56 +00:00
Xenofon Foukas
8aff18aed5 Fixed bug with toggling the NDI for DL HARQ retransmissions 2016-02-09 17:53:49 +00:00
Xenofon Foukas
2de0b9b5e1 Merge branch 'develop' into feature-68-enb-agent 2016-02-09 13:48:02 +00:00
Xenofon Foukas
ff72fbc6bc Integrated progRAN config messages to OAI agent and created stubs for handler and destructor functions 2016-02-09 13:33:48 +00:00
Xenofon Foukas
a0289d74fa Added support for eNB, cell, UE and logical channel configuration messages to the progRAN protocol 2016-02-09 13:03:31 +00:00
Navid Nikaein
bb87425898 add eNB agent libs to lte-softmodem 2016-02-06 09:31:33 +01:00
Xenofon Foukas
a404bfd96c Refactored eNB agent scheduler code to improve readability 2016-02-04 17:32:37 +00:00
Xenofon Foukas
b784e6bd64 Refactored code to improve readability in fill_oai_dci function 2016-02-04 13:29:05 +00:00
Xenofon Foukas
e3aa8400d4 Added support for progran dl_mac_config message destruction 2016-02-04 11:28:54 +00:00
Xenofon Foukas
db255c130d Added definitions for the mac agent scheduler 2016-02-04 11:28:22 +00:00
Xenofon Foukas
e8f4e4e01f Separated control from data plane in MAC agent scheduler 2016-02-03 17:44:20 +00:00
Xenofon Foukas
3d3c0c7c03 Bug fixes for UE retransmission 2016-02-03 15:39:51 +00:00
Xenofon Foukas
fd09bd61bf Fixed bug with NDI toggling 2016-02-03 14:27:17 +00:00
Xenofon Foukas
a8cd23944f Progran scheduler fixes 2016-02-02 19:18:42 +00:00
Xenofon Foukas
07edce1712 Changes to the progran default scheduler 2016-02-02 16:39:39 +00:00
Xenofon Foukas
afdc20a91b Merge branch 'develop' into feature-68-enb-agent 2016-02-02 09:51:39 +00:00
Xenofon Foukas
ab0e4aadae Reintroduced support for agent scheduler after merge with develop 2016-02-01 17:20:35 +00:00
Xenofon Foukas
a91a25c972 Changed signature of DL scheduling function of agent 2016-02-01 11:38:07 +00:00
Xenofon Foukas
64a02f3b67 Merge remote-tracking branch 'origin/develop' into feature-68-enb-agent 2016-01-31 18:15:36 +00:00
Xenofon Foukas
cdb3e36b99 Fixes to merge with develop 2016-01-31 18:13:05 +00:00
Xenofon Foukas
cb8007bb31 Added support for enb agent MAC scheduler hot-plugging. Deactivated schedule_ue_spec and added agent UE specific DL scheduler 2016-01-28 14:45:47 +00:00
Xenofon Foukas
92f547655c Integrated MAC DL config progran message to agent 2016-01-27 12:54:33 +00:00
Xenofon Foukas
c1c9b0bcbe Added support for DL scheduling command messages 2016-01-27 12:01:37 +00:00
Xenofon Foukas
3df4cbae6b Merge branch 'feature-68-enb-agent' of gitlab.eurecom.fr:oai/openairinterface5g into feature-68-enb-agent 2016-01-22 16:29:57 +00:00
Xenofon Foukas
16bbb96d5b Added continuous update functionality in the MAC layer 2016-01-22 16:29:21 +00:00
Xenofon Foukas
e3e01a64c9 Added continuous update functionality in the MAC layer 2016-01-22 16:28:44 +00:00
Xenofon Foukas
3ad4d26fd1 Changed the structures for storing agent context info 2016-01-22 16:26:06 +00:00
Xenofon Foukas
dec1c93c3d Changed channel struct for async_channel implementation 2016-01-22 16:18:54 +00:00
Xenofon Foukas
a054eb8139 Added helper functions for the continuous update of MAC stats 2016-01-21 15:27:52 +00:00
Xenofon Foukas
78bc736c19 Fixed frame-subframe numbering bug 2016-01-19 14:51:20 +00:00
Xenofon Foukas
1f52063065 Merged UL/DL trigger messages to a single SF trigger message 2016-01-19 11:11:05 +00:00
Xenofon Foukas
876d9eac52 Fixed bug when creating cell report stats reply 2016-01-19 10:12:48 +00:00
Xenofon Foukas
5cec297209 Implemented handlers for the UL/DL trigger messages 2016-01-15 18:07:42 +02:00
Xenofon Foukas
2fbe01e15f Added support for timing messages in DL/UL 2016-01-15 16:38:37 +02:00
Xenofon Foukas
ed7e13c6eb Integrated abstract network communication in main agent 2016-01-15 14:31:21 +02:00
Xenofon Foukas
8fde111b93 Channel implementation for async interface 2016-01-15 14:30:02 +02:00
Xenofon Foukas
e6762ffe1f Added support for multiple eNBs in an emulation environment 2016-01-14 19:10:27 +02:00
Xenofon Foukas
dbcf482f07 Added eNB agent abstract network interface support 2016-01-14 17:46:06 +02:00
Xenofon Foukas
22d0f60e12 Added support for creation of SR protocol messages and defined initial MAC-Agent interface 2016-01-12 18:08:57 +02:00
Xenofon Foukas
694a5bb1b5 Changed the function signature for handling the packing of protocol messages 2016-01-12 18:03:38 +02:00
Xenofon Foukas
a8dabcefea Added support for UL SR info type in the header of progRAN messages 2016-01-12 17:58:09 +02:00
Xenofon Foukas
3ce2ba4e5d Added support for scheduling requests messages 2016-01-12 14:24:31 +02:00
Xenofon Foukas
a9a67824dd Added API functions for eNB agent - technology interaction 2016-01-11 14:58:31 +02:00
Xenofon Foukas
2ef32ad9bc Added support for turning off periodical timer tasks 2016-01-08 15:59:24 +02:00
Xenofon Foukas
3e2adfbcbc Fixed bug to allocate memory in the stack instead of dynamically for the timer search key 2016-01-08 12:53:34 +02:00
Xenofon Foukas
11b2f82936 Integrated timer to work with periodic report messages and agent tasks 2016-01-07 17:41:51 +02:00
Xenofon Foukas
e88779c4ef Added support for lightweight finegrained task timer 2016-01-06 18:06:48 +02:00
Xenofon Foukas
e78075e831 Integrated task manager with system frame and subframe clock and added support for one task queue per eNB 2016-01-06 16:22:59 +02:00
Xenofon Foukas
e0c459be75 Changed handlers not to require the xid in their signature. Containted in the received message, or generated in them 2016-01-06 11:57:03 +02:00
Xenofon Foukas
3bc88cfd11 Fixed agent to support proper frame and subframe reporting in progRAN messages 2016-01-05 21:52:05 +02:00
Xenofon Foukas
99cf3b654a Added functions to get the current frame and subframe 2016-01-05 21:30:55 +02:00
Navid Nikaein
f2f0e68f9d Fix the bug in the RB tree, and sanity test for the timer API 2016-01-05 19:26:45 +01:00
Xenofon Foukas
f7d591f150 Created task manager support for agent messages in the for of a priority queue 2016-01-05 13:57:52 +02:00
Navid Nikaein
1f213b0b8e * add options to enb configuration file for the enb agent
* add timer api for the periodic and oneshot operations
* create enb agent task
2016-01-05 11:33:40 +01:00
Navid Nikaein
48ddbc6805 Merge branch 'feature-68-enb-agent' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-68-enb-agent 2016-01-01 20:06:55 +01:00
Navid Nikaein
e42dd36967 update the itti timer 2016-01-01 20:05:15 +01:00
Xenofon Foukas
e5e58ec2f4 Fixed mac stats handler for periodic and continuous stats updates 2015-12-29 15:43:42 +02:00
Xenofon Foukas
b9cf840a10 Created callback mechanism for destruction of protocol messages sent by the agent 2015-12-28 15:25:27 +02:00
Xenofon Foukas
0bea0aafc4 Restructured statistics handler to consider the request message parameters 2015-12-23 15:29:28 +02:00
Xenofon Foukas
7241aa6a38 Added support for parameters in handlers 2015-12-23 12:17:52 +02:00
Xenofon Foukas
4f618d6170 Fixed some bugs that would lead to segfaults and modified to support changes in protocol 2015-12-22 17:08:16 +02:00
Xenofon Foukas
d5830ced24 Allow only a single instance of the eNB agent 2015-12-22 17:06:37 +02:00
Xenofon Foukas
915af964f4 Fixed top-level message field msg_dir to be optional 2015-12-22 17:04:18 +02:00
Navid Nikaein
17251ddaac Very basic version of the enb agent 2015-12-21 03:36:37 +01:00
Xenofon Foukas
0dee574c57 Changed prp_stats_reply message to support multiple UE and cell reports 2015-12-17 11:37:18 +02:00
Navid Nikaein
988b483ab0 * automatic generation of protobuf messages in CMakeList.txt 2015-12-16 16:53:37 +01:00
Navid Nikaein
bd1de293c6 Merge branch 'feature-68-enb-agent' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-68-enb-agent 2015-12-16 15:43:10 +01:00
Navid Nikaein
183e105f87 update CMakeLists--generate .c files for protobufs 2015-12-16 11:58:48 +01:00
Xenofon Foukas
5f1f1abe3f Added header in messages and removed length field 2015-12-15 22:47:08 +02:00
Navid Nikaein
694718963a * script for automatic generation of protobug messages 2015-12-15 19:46:52 +01:00
Navid Nikaein
7ccf7a917f * add protobuf messages and compliation directives 2015-12-15 19:44:12 +01:00
Navid Nikaein
5c0098e2f0 * add async interface support for eNB agent and create a lib 2015-12-15 11:53:47 +01:00
Xiwen JIANG
1096744662 cell specific beamforming weights adaption nb of tx antennas 2015-11-30 15:31:33 +01:00
Xiwen JIANG
bed11c711e dlsch data extraction bug fixed for special subframes in TM7 2015-11-30 15:29:10 +01:00
Xiwen JIANG
62e38a05c0 comment debug mode in dlsch_demodulation 2015-11-26 18:03:39 +01:00
Xiwen JIANG
b86efd9cbe add printf for debug mode in TM7 data extraction 2015-11-26 17:59:29 +01:00
Xiwen JIANG
8b56ae1755 bug fixed in do_OFDM_l() for the 7th symbol in a subframe 2015-11-26 17:21:14 +01:00
Xiwen JIANG
4a4a878507 dlsim adaption for new_eNB_dlsch() 2015-11-26 11:49:48 +01:00
Xiwen JIANG
ad5e6a9eea ulsim and mbmssim adaption 2015-11-26 11:48:53 +01:00
Xiwen JIANG
1d511eca7f Merge branch 'master' into feature-21-TM7 2015-11-26 10:52:04 +01:00
Xiwen JIANG
ed83cbd1eb TM7 dlsim works 2015-11-26 10:32:43 +01:00
Xiwen JIANG
0d681a0e72 use nb_antennas_tx as physical antenna number and nb_antennas_tx_eNB as antenna port 2015-10-09 10:04:25 +02:00
Xiwen JIANG
67262694de bug fixed in free beamforming weights 2015-10-05 16:19:52 +02:00
Xiwen JIANG
fac6a63f67 adding new file 2015-10-05 15:41:18 +02:00
Xiwen JIANG
24645f26c6 Merge branch 'master' into feature-21-TM7
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
	openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair1/SCHED/phy_procedures_lte_ue.c
	openair1/SIMULATION/LTE_PHY/dlsim.c
	openair1/SIMULATION/LTE_PHY/mbmssim.c
	targets/RT/USER/Makefile
2015-10-05 11:27:50 +02:00
Xiwen JIANG
b40ed6af9b TM7 works for dlsim. 2015-10-02 11:44:30 +02:00
Xiwen JIANG
7882472b73 revert dlsch_llr_computation 2015-10-01 17:43:46 +02:00
Xiwen JIANG
dc636f2b44 calculate channel level for TM7 2015-10-01 17:42:20 +02:00
Xiwen JIANG
b6b7bd1c19 comment writing to file line 2015-10-01 17:38:02 +02:00
Xiwen JIANG
d09d042806 bug fixed for symbols to activate beamforming channel estimation 2015-09-29 17:00:17 +02:00
Xiwen JIANG
a6f2310e4b add beamforming mode as an input parameter of llr computation 2015-09-29 14:02:57 +02:00
Xiwen JIANG
d89807b6eb skip half creterion for PSS RBs 2015-09-29 10:35:47 +02:00
Xiwen JIANG
e5013e5327 move DL beamforming channel estimation to dlsim top level file 2015-09-29 10:34:55 +02:00
Xiwen JIANG
1a1d843f16 compilation for XFORMS 2015-09-25 18:34:23 +02:00
Xiwen JIANG
fdea4022d1 bug fixed for more than 1 physical antenna 2015-09-25 18:14:22 +02:00
Xiwen JIANG
3353735f3c beamforming weights modification 2015-09-25 11:32:07 +02:00
Xiwen JIANG
aca66630ff pass physical antenna number as an dlsim option 2015-09-23 16:33:18 +02:00
Xiwen JIANG
70e1e0cecf more cleanness 2015-09-09 11:57:44 +02:00
Xiwen JIANG
3a5eda8cae cleanness and comments 2015-09-09 11:37:24 +02:00
Xiwen JIANG
f905243047 update beamforming channel estimation frequency interpolation filter head file 2015-09-09 09:58:23 +02:00
Xiwen JIANG
cf4a005e32 Beamforming channel estimation based on UE specific reference signal 2015-09-09 09:53:59 +02:00
Xiwen JIANG
5adc20ca06 patch difference of TM7 dev with svn r7530 to git branch 2015-08-18 17:17:46 +02:00
2261 changed files with 257860 additions and 480863 deletions

View File

@@ -1,37 +1,19 @@
job1:
script:
- echo $PWD
- echo $USER
- echo $OAI_USER
- echo $OAI_EXTRA_ARGS
- echo $NFS_SHARE_DIR
- echo $EXTERNAL_SHARE_DIR
- echo $SHELL
- echo $OAI_TEST_CASE_GROUP
- echo $MACHINELIST
- echo $MACHINELISTGENERIC
- git rev-parse --abbrev-ref HEAD
- git_repo=`git config --get remote.origin.url`
- git_head=`git rev-parse HEAD`
- echo $git_head
- tmp=`git show-ref --head | grep $git_head`
- tmp=(${tmp///// })
- git_branch=${tmp[@]:(-1)}
- echo $git_branch
- source oaienv
- echo $OPENAIR_DIR
- NFS_TEST_RESULTS_DIR=$NFS_SHARE_DIR/$git_branch/$git_head
- EXTERNAL_SHARE_RESULTS_DIR=$EXTERNAL_SHARE_DIR/$git_branch/$git_head
- echo $NFS_TEST_RESULTS_DIR
- echo $EXTERNAL_SHARE_RESULTS_DIR
- echo $NRUNS_LTE_SOFTMODEM
- echo $TIMEOUT_CMD
- mkdir -p $OPENAIR_DIR/cmake_targets/autotests/log
- python $OPENAIR_DIR/cmake_targets/autotests/run_exec_lte-softmodem_tests.py -c -5GRepo $git_repo -MachineList "$MACHINELIST" -MachineListGeneric "$MACHINELISTGENERIC" -5GRepoHeadVersion $git_head -n $NFS_SHARE_DIR -u $OAI_USER -p $OAI_PASS $OAI_EXTRA_ARGS -g "$OAI_TEST_CASE_GROUP">& $OPENAIR_DIR/cmake_targets/autotests/python_autotest_cleanup.log
- python $OPENAIR_DIR/cmake_targets/autotests/run_exec_lte-softmodem_tests.py -r -5GRepo $git_repo -MachineList "$MACHINELIST" -MachineListGeneric "$MACHINELISTGENERIC" -5GRepoHeadVersion $git_head -n $NFS_SHARE_DIR -u $OAI_USER -p $OAI_PASS `echo $OAI_EXTRA_ARGS` -g "$OAI_TEST_CASE_GROUP" --nrun_lte_softmodem $NRUNS_LTE_SOFTMODEM --timeout_cmd $TIMEOUT_CMD >& $OPENAIR_DIR/cmake_targets/autotests/python_autotest.log
- mv $OPENAIR_DIR/cmake_targets/autotests/python_autotest.log $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest.log
- mv $OPENAIR_DIR/cmake_targets/autotests/python_autotest_cleanup.log $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest_cleanup.log
- sshpass -p "$OAI_PASS" rsync -az -e "ssh -o StrictHostKeyChecking=no " --rsync-path="mkdir -p $NFS_TEST_RESULTS_DIR && rsync" $OPENAIR_DIR/cmake_targets/autotests/log $OAI_USER@localhost:$NFS_TEST_RESULTS_DIR
- sshpass -p "$OAI_PASS" rsync -az -e "ssh -o StrictHostKeyChecking=no " --rsync-path="mkdir -p $EXTERNAL_SHARE_DIR && rsync" $OPENAIR_DIR/cmake_targets/autotests/log $OAI_USER@localhost:$EXTERNAL_SHARE_DIR
- cat $OPENAIR_DIR/cmake_targets/autotests/log/results_autotests.xml
when: manual
- date
- pwd
- echo $OAI_USER
- echo $OAI_PASS
- echo $OAI_TEST_CASE_GROUP
- echo $MACHINELIST
- echo $MACHINELISTGENERIC
- echo $RESULT_DIR
- echo $NRUNS_LTE_SOFTMODEM
- source oaienv
- rm -rf cmake_targets/autotests/log
- mkdir cmake_targets/autotests/log
- cd cmake_targets/autotests/v2
- python main.py
- date
only:
- triggers

674
COPYING
View File

@@ -1,674 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

94
LICENSE Normal file
View File

@@ -0,0 +1,94 @@
OAI PUBLIC LICENSE V1.0
Copyright (C) 2016 OpenAirInterface Software Alliance, Inc. <http://www.openairinterface.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Definitions.
“License” shall mean the terms and conditions for use, reproduction, and distribution set forth in this document.
“Licensor” shall mean the OpenAirInterface Software Alliance.
“Legal Entity” shall mean the union, at the time an acting entity joins the Alliance, of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, “control” means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
“You” (or “Your”) shall mean an individual or Legal Entity exercising permissions granted by this License.
“Source” form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
“Object” form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
“OpenAirInterface Software Alliance” shall mean the endowment fund established at the initiative of Eurecom, an educational and research establishment located at Campus Sophia Tech, 450 Route des Chappes, 06410 Biot, France, which statutes were signed on 18 November 2014.
“ “Work” shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
“Derivative Works” shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
“Contribution” shall mean any work of authorship that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, “submitted” means any form of electronic, , or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work “Contributor License Agreement” shall mean the agreement signed by any Contributor setting forth the terms and conditions applicable to its Contribution. “Contributor” shall mean any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
Grant of Copyright License.
Subject to the terms and conditions of this License, Licensor and each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form
3. Grant of Patent License.
3.1 Grant of Patent License for non-commercial purposes:
Subject to the terms and conditions of this License, Licensor and each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, import, and otherwise transfer the Work, for non-commercial purposes, where such license applies only to those patent claims licensable by such Contributor or Licensor that are necessarily infringed by the Work and/or their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted.
3.2 Grant of Patent License for commercial purposes:
For commercial purposes, and subject to the terms and conditions of this License, You commits to be prepared to negotiate a patent license with each Contributor and/or the Licensor on Fair, Reasonable and Non-Discriminatory (“FRAND”) terms and conditions for the Work or Contribution(s) incorporated within the Work.
Licensor and/or each Contributor, by submitting a Contribution, will identify any patent it owns related to the Work and/or its Contribution.
3.3 Patent Litigation
If You institute patent litigation against any entity making non-commercial use of the Work (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistibution
Subject to terms and conditions set forth in articles 2 and 3, You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
2. You must cause any modified files by You to carry prominent notices stating that You changed the files; and
3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
4. If the Work includes a “NOTICE” text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement such as the Contributor License Agreement You may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall Licensor and any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor and/or the Licensor,and only if You agree to indemnify, defend, and hold each Contributor and/or the Licensor harmless for any liability incurred by, or claims asserted against, such Contributor and/or Licensor by reason of Your accepting any such warranty or additional liability.
10. Applicable law. The present license shall be governed by the laws of France.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the PRESENT OPENAIR 5G License to your work
To apply the present License to your work, attach the following boilerplate notice, with the fields enclosed by brackets “[]” replaced with your own identifying information. (Dont include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same “printed page” as the copyright notice for easier identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the License terms and conditions for use, reproduction, and distribution of OPENAIR 5G software (the “License”);
you may not use this file except in compliance with the License.You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

21
NOTICE.txt Normal file
View File

@@ -0,0 +1,21 @@
The source code of openairinterface5g is distributed under OAI Public License V1.0.
For more details of the license, refer to LICENSE file in the same directory.
However, the source code also contains third party software that is acknowledged here for reference.
Credits for LFDS user space source code located in folder openair2/UTILS/LFDS/liblfds6.1.1/
http://liblfds.org/.
Extract from http://liblfds.org/pages/downloads_and_license.html:
"There is no license. You are free to use this software in any way, for any purpose. Go forth and create wealth!
If however for legal reasons a licence is required, the license of your choice will be granted."
Credits for source code common/utils/collection/queue.h:
The Regents of the University of California: BSD 3-Clause Licence.
Credits for source code common/utils/collection/tree.h:
Niels Provos <provos@citi.umich.edu>: BSD 2-Clause Licence.

View File

@@ -1,27 +1,41 @@
OpenAirInterface is under OpenAirInterface Software Alliance license.
├── http://www.openairinterface.org/?page_id=101
├── http://www.openairinterface.org/?page_id=698
The OpenAirInterface (OAI) software is composed of the following parts:
openairinterface5g
├── cmake_targets: build utilities to compile (simulation, emulation and real-time platforms), and generated build files
├── common : some common OAI utilities, other tools can be found at openair2/UTILS
├── COPYING
├── maketags : script to generate emacs tags
├── openair1 : 3GPP LTE Rel-10 PHY layer + PHY RF simulation and a subset of Rel 12 Features.
├── openair2 :3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP implementation.
├── LAYER2/RLC/ with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.
├── LAYER2/PDCP/PDCP_v10.1.0.
├── RRC/LITE
├── PHY_INTERFACE
├── X2AP
├── ENB_APP
├── openair3: 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
├── GTPV1-U
├── NAS
├── S1AP
├── SCTP
├── SECU
├── UDP
└── targets: top level wrapper for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW.
OpenAirInterface is under OpenAirInterface Software Alliance license.
├── http://www.openairinterface.org/?page_id=101
├── http://www.openairinterface.org/?page_id=698
It is distributed under OAI Public License V1.0.
The license information is distributed under LICENSE file in the same directory.
Please see NOTICE.txt for third party software that is included in the sources.
The OpenAirInterface (OAI) software is composed of the following parts:
openairinterface5g
├── cmake_targets: build utilities to compile (simulation, emulation and real-time platforms), and generated build files
├── common : some common OAI utilities, other tools can be found at openair2/UTILS
├── LICENSE
├── maketags : script to generate emacs tags
├── openair1 : 3GPP LTE Rel-10 PHY layer + PHY RF simulation and a subset of Rel 12 Features.
├── openair2 :3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP implementation.
├── LAYER2/RLC/ with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.
├── LAYER2/PDCP/PDCP_v10.1.0.
├── RRC/LITE
├── PHY_INTERFACE
├── X2AP
├── ENB_APP
├── openair3: 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
├── GTPV1-U
├── NAS
├── S1AP
├── SCTP
├── SECU
├── UDP
└── targets: top level wrapper for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW.
RELEASE NOTES:
v0.1 -> Last stable commit on develop branch before enhancement-10-harmony
v0.2 -> Merge of enhancement-10-harmony to include NGFI RRH + New Interface for RF/BBU
v0.3 -> Last stable commit on develop branch before the merge of feature-131-new-license. This is the last commit with GPL License
v0.4 -> Merge of feature-131-new-license. It closes issue#131 and changes the license to OAI Public License V1.0
v0.5 -> Merge of enhancement-10-harmony-lts. It includes fixes for Ubuntu 16.04 support
v0.5.1 -> Merge of bugfix-137-uplink-fixes. It includes stablity fixes for eNB

View File

@@ -1,30 +1,25 @@
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# Author: laurent THOMAS, Lionel GAUTHIER
###############################################################################
cmake_minimum_required (VERSION 2.8)
@@ -124,6 +119,7 @@ endmacro(add_list_string_option)
####################################################
# compilation flags
#############################################
#set(CMAKE_BUILD_TYPE "Debug")
if (CMAKE_BUILD_TYPE STREQUAL "")
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
endif()
@@ -179,14 +175,13 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,${CMAKE_CU
# these changes are related to hardcoded path to include .h files
add_definitions(-DCMAKER)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -g -DMALLOC_CHECK_=3")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS} -g -DMALLOC_CHECK_=3 -O3")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS} -g -DMALLOC_CHECK_=3 -O2")
set(GIT_BRANCH "UNKNOWN")
set(GIT_COMMIT_HASH "UNKNOWN")
set(GIT_COMMIT_DATE "UNKNOWN")
find_package(Git)
if(GIT_FOUND)
message("git found: ${GIT_EXECUTABLE}")
@@ -241,6 +236,7 @@ add_boolean_option(DEBUG_OMG False "???")
add_boolean_option(XFORMS False "This adds the possibility to see the signal oscilloscope")
add_boolean_option(PRINT_STATS False "This adds the possibility to see the status")
add_boolean_option(T_TRACER False "Activate the T tracer, a debugging/monitoring framework" )
add_boolean_option(UE_AUTOTEST_TRACE False "Activate UE autotest specific logs")
add_boolean_option(DEBUG_CONSOLE False "makes debugging easier, disables stdout/stderr buffering")
@@ -262,15 +258,7 @@ if (${ENABLE_ITTI})
endif (${ENABLE_ITTI})
add_boolean_option(RTAI False "Use RTAI")
if (${RTAI})
set(DEADLINE_SCHEDULER False)
set(CPU_AFFINITY False)
add_definitions("-DENABLE_RTAI_CLOCK")
add_definitions("-DCONFIG_RTAI_LXRT_INLINE")
include_directories ("/usr/realtime/include")
include_directories ("/usr/realtime/include/asm")
set(RTAI_SOURCE sched_dlsch.c sched_rx_pdsch.c rt_wrapper.c vcd_signal_dumper.c log.c)
endif (${RTAI})
#############################
# ASN.1 grammar C code generation & dependancies
@@ -488,11 +476,11 @@ include_directories ("${X2AP_DIR}")
# Hardware dependant options
###################################
add_list1_option(NB_ANTENNAS_RX "2" "Number of antennas in reception" "1" "2" "4")
add_list1_option(NB_ANTENNAS_TX "2" "Number of antennas in transmission" "1" "2" "4")
add_list1_option(NB_ANTENNAS_RX "4" "Number of antennas in reception" "1" "2" "4")
add_list1_option(NB_ANTENNAS_TX "4" "Number of antennas in transmission" "1" "2" "4")
add_list1_option(NB_ANTENNAS_TXRX "2" "Number of antennas in ????" "1" "2" "4")
add_list2_option(RF_BOARD "EXMIMO" "RF head type" "None" "EXMIMO" "OAI_USRP" "OAI_BLADERF" "CPRIGW" "OAI_LMSSDR")
add_list2_option(RF_BOARD "EXMIMO" "RF head type" "None" "EXMIMO" "OAI_USRP" "OAI_BLADERF" "CPRIGW" "OAI_LMSSDR" "OAI_IRIS")
add_list2_option(TRANSP_PRO "None" "Transport protocol type" "None" "ETHERNET")
@@ -505,7 +493,7 @@ include_directories ("${OPENAIR_TARGETS}/ARCH/EXMIMO/DEFS/")
#set (option_HWEXMIMOLIB_lib "-l ")
set(HWLIB_EXMIMO_SOURCE
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c
# ${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c
)
add_library(oai_exmimodevif MODULE ${HWLIB_EXMIMO_SOURCE} )
@@ -538,6 +526,12 @@ set(TPLIB_ETHERNET_SOURCE
)
add_library(oai_eth_transpro MODULE ${TPLIB_ETHERNET_SOURCE} )
include_directories("${OPENAIR_TARGETS}/ARCH/IRIS/USERSPACE/LIB/")
set (option_HWIRISLIB_lib "-l SoapySDR")
set(HWLIB_IRIS_SOURCE
${OPENAIR_TARGETS}/ARCH/IRIS/USERSPACE/LIB/iris_lib.cpp
)
add_library(oai_irisdevif MODULE ${HWLIB_IRIS_SOURCE} )
# RF devices / transport protocols settings
######################################################################
@@ -546,8 +540,8 @@ if (${RF_BOARD} STREQUAL "EXMIMO")
include_directories ("${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/")
include_directories ("${OPENAIR_TARGETS}/ARCH/EXMIMO/DEFS/")
set(HW_SOURCE ${HW_SOURCE}
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c)
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c)
# ${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c)
set(option_HW_lib "-rdynamic -ldl")
elseif (${RF_BOARD} STREQUAL "OAI_USRP")
@@ -582,6 +576,15 @@ elseif (${RF_BOARD} STREQUAL "OAI_LMSSDR")
set(HW_SOURCE ${HW_SOURCE} ${OPENAIR_TARGETS}/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp)
set(option_HW_lib "-lLMS_SDR -lLMS7002M -lSi5351C -rdynamic -ldl")
elseif (${RF_BOARD} STREQUAL "OAI_IRIS")
include_directories("${OPENAIR_TARGETS}/ARCH/IRIS/USERSPACE/LIB/")
include_directories("/usr/local/include/")
set(HW_SOURCE ${HW_SOURCE}
${OPENAIR_TARGETS}/ARCH/IRIS/USERSPACE/LIB/iris_lib.cpp)
LINK_DIRECTORIES("/usr/local/lib")
set(option_HW_lib "-lSoapySDR -rdynamic -ldl")
elseif (${RF_BOARD} STREQUAL "CPRIGW")
set(HW_SOURCE ${HW_SOURCE}
${OPENAIR_TARGETS}/ARCH/CPRIGW/USERSPACE/LIB/cprigw_lib.c
@@ -628,13 +631,14 @@ add_boolean_option(NAS_ADDRESS_FIX False "specific to oaisim: for nasmesh driver
add_boolean_option(NAS_NETLINK False "???? Must be True to compile nasmesh driver without rtai")
add_boolean_option(OAISIM False "specific to oaisim")
add_boolean_option(OAI_NW_DRIVER_USE_NETLINK True "????")
add_boolean_option(USE_MME False "this flag is used only one time in lte-softmodem.c")
add_list_string_option(PACKAGE_NAME "NotDefined" "As per attribute name")
add_boolean_option(MESSAGE_CHART_GENERATOR False "For generating sequence diagrams")
add_boolean_option(MESSAGE_CHART_GENERATOR_RLC_MAC False "trace RLC-MAC exchanges in sequence diagrams")
add_boolean_option(MESSAGE_CHART_GENERATOR_PHY False "trace some PHY exchanges in sequence diagrams")
add_boolean_option(ENB_AGENT True "enable eNB agent to inteface with a SDN contrller")
add_boolean_option(FLEXRAN_AGENT_SB_IF False "enable FlexRAN agent to inteface with a SDN controller")
########################
# Include order
@@ -830,8 +834,10 @@ include_directories("${OPENAIR_DIR}/targets/ARCH/COMMON")
include_directories("${OPENAIR_DIR}/targets/ARCH/EXMIMO/USERSPACE/LIB/")
include_directories("${OPENAIR_DIR}/targets/ARCH/EXMIMO/DEFS")
include_directories("${OPENAIR2_DIR}/ENB_APP")
include_directories("${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/MAC")
include_directories("${OPENAIR2_DIR}/UTIL/OSA")
include_directories("${OPENAIR2_DIR}/UTIL/LFDS/liblfds6.1.1/liblfds611/inc")
include_directories("${OPENAIR2_DIR}/UTIL/LFDS/liblfds7.0.0/liblfds700/inc")
include_directories("${OPENAIR2_DIR}/UTIL/MEM")
include_directories("${OPENAIR2_DIR}/UTIL/LISTS")
include_directories("${OPENAIR2_DIR}/UTIL/FIFO")
@@ -850,11 +856,99 @@ include_directories("${OPENAIR_DIR}")
# Utilities Library
################
if (FLEXRAN_AGENT_SB_IF)
# set the version of protobuf messages, V3 not supported yet
add_list1_option(FLPT_VERSION V2 "FLPT MSG protobuf grammar version" V2 V3)
if (${FLPT_VERSION} STREQUAL "V2")
set (FLPTDIR V2)
elseif (${FLPT_VERSION} STREQUAL "V3")
set (FLPTDIR V3)
endif(${FLPT_VERSION} STREQUAL "V2")
set(FLPT_MSG_DIR ${OPENAIR2_DIR}/ENB_APP/MESSAGES/${FLPTDIR} )
set(FLPT_MSG_FILES
${FLPT_MSG_DIR}/header.proto
${FLPT_MSG_DIR}/flexran.proto
${FLPT_MSG_DIR}/stats_common.proto
${FLPT_MSG_DIR}/stats_messages.proto
${FLPT_MSG_DIR}/time_common.proto
${FLPT_MSG_DIR}/controller_commands.proto
${FLPT_MSG_DIR}/mac_primitives.proto
${FLPT_MSG_DIR}/config_messages.proto
${FLPT_MSG_DIR}/config_common.proto
${FLPT_MSG_DIR}/control_delegation.proto
)
set(FLPT_C_DIR ${protobuf_generated_dir}/${FLPTDIR})
#message("calling protoc_call=${protoc_call} FLPT_C_DIR=${FLPT_C_DIR} FLPT_MSG_FILES=${FLPT_MSG_FILES}")
execute_process(COMMAND ${protoc_call} ${FLPT_C_DIR} ${FLPT_MSG_DIR} ${FLPT_MSG_FILES})
file(GLOB FLPT_source ${FLPT_C_DIR}/*.c)
set(FLPT_OAI_generated
${FLPT_C_DIR}/header.pb-c.c
${FLPT_C_DIR}/flexran.pb-c.c
${FLPT_C_DIR}/stats_common.pb-c.c
${FLPT_C_DIR}/stats_messages.pb-c.c
${FLPT_C_DIR}/time_common.pb-c.c
${FLPT_C_DIR}/controller_commands.pb-c.c
${FLPT_C_DIR}/mac_primitives.pb-c.c
${FLPT_C_DIR}/config_messages.pb-c.c
${FLPT_C_DIR}/config_common.pb-c.c
${FLPT_C_DIR}/control_delegation.pb-c.c
)
file(GLOB flpt_h ${FLPT_C_DIR}/*.h)
set(flpt_h ${flpt_h} )
add_library(FLPT_MSG
${FLPT_OAI_generated}
${FLPT_source}
)
set(FLPT_MSG_LIB FLPT_MSG)
#message("prpt c dir is : ${FLPT_C_DIR}")
include_directories (${FLPT_C_DIR})
add_library(ASYNC_IF
${OPENAIR2_DIR}/UTIL/ASYNC_IF/socket_link.c
${OPENAIR2_DIR}/UTIL/ASYNC_IF/link_manager.c
${OPENAIR2_DIR}/UTIL/ASYNC_IF/message_queue.c
${OPENAIR2_DIR}/UTIL/ASYNC_IF/ringbuffer_queue.c
)
set(ASYNC_IF_LIB ASYNC_IF)
include_directories(${OPENAIR2_DIR}/UTIL/ASYNC_IF)
add_library(FLEXRAN_AGENT
${OPENAIR2_DIR}/ENB_APP/flexran_agent_handler.c
${OPENAIR2_DIR}/ENB_APP/flexran_agent_common.c
${OPENAIR2_DIR}/ENB_APP/flexran_agent_common_internal.c
${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
${OPENAIR2_DIR}/ENB_APP/flexran_agent.c
${OPENAIR2_DIR}/ENB_APP/flexran_agent_task_manager.c
${OPENAIR2_DIR}/ENB_APP/flexran_agent_net_comm.c
${OPENAIR2_DIR}/ENB_APP/flexran_agent_async.c
${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c
)
set(FLEXRAN_AGENT_LIB FLEXRAN_AGENT)
#include_directories(${OPENAIR2_DIR}/ENB_APP)
set(PROTOBUF_LIB "protobuf-c")
FIND_PATH(LIBYAML_INCLUDE_DIR NAMES yaml.h)
FIND_LIBRARY(LIBYAML_LIBRARIES NAMES yaml libyaml)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Yaml DEFAULT_MSG LIBYAML_LIBRARIES LIBYAML_INCLUDE_DIR)
MARK_AS_ADVANCED(LIBYAML_INCLUDE_DIR LIBYAML_LIBRARIES)
#set(PROTOBUF_LIB "protobuf") #for Cpp
endif()
add_library(HASHTABLE
${OPENAIR_DIR}/common/utils/collection/hashtable/hashtable.c
${OPENAIR_DIR}/common/utils/collection/hashtable/obj_hashtable.c
${OPENAIR_DIR}/common/utils/hashtable/hashtable.c
${OPENAIR_DIR}/common/utils/hashtable/obj_hashtable.c
)
include_directories(${OPENAIR_DIR}/common/utils/collection/hashtable)
include_directories(${OPENAIR_DIR}/common/utils/hashtable)
if (MESSAGE_CHART_GENERATOR)
add_library(MSC
@@ -882,20 +976,16 @@ set(UTIL_SRC
${OPENAIR2_DIR}/UTIL/OCG/OCG_parse_filename.c
${OPENAIR2_DIR}/UTIL/OCG/OCG_parse_XML.c
${OPENAIR2_DIR}/UTIL/OCG/OCG_save_XML.c
${OPENAIR2_DIR}/UTIL/OMG/client_traci_OMG.c
${OPENAIR2_DIR}/UTIL/OMG/common.c
${OPENAIR2_DIR}/UTIL/OMG/grid.c
${OPENAIR2_DIR}/UTIL/OMG/id_manager.c
${OPENAIR2_DIR}/UTIL/OMG/job.c
${OPENAIR2_DIR}/UTIL/OMG/mobility_parser.c
${OPENAIR2_DIR}/UTIL/OMG/omg.c
${OPENAIR2_DIR}/UTIL/OMG/omg_hashtable.c
#${OPENAIR2_DIR}/UTIL/OMG/omg_hashtable.c
${OPENAIR2_DIR}/UTIL/OMG/rwalk.c
${OPENAIR2_DIR}/UTIL/OMG/rwp.c
${OPENAIR2_DIR}/UTIL/OMG/socket_traci_OMG.c
${OPENAIR2_DIR}/UTIL/OMG/static.c
${OPENAIR2_DIR}/UTIL/OMG/steadystaterwp.c
${OPENAIR2_DIR}/UTIL/OMG/storage_traci_OMG.c
${OPENAIR2_DIR}/UTIL/OMG/trace.c
${OPENAIR2_DIR}/UTIL/OMG/trace_hashtable.c
${OPENAIR2_DIR}/UTIL/OPT/probe.c
@@ -908,6 +998,15 @@ set(UTIL_SRC
)
add_library(UTIL ${UTIL_SRC})
#set(OMG_SUMO_SRC
# ${OPENAIR2_DIR}/UTIL/OMG/client_traci_OMG.c
# ${OPENAIR2_DIR}/UTIL/OMG/id_manager.c
# ${OPENAIR2_DIR}/UTIL/OMG/sumo.c
# ${OPENAIR2_DIR}/UTIL/OMG/socket_traci_OMG.c
# ${OPENAIR2_DIR}/UTIL/OMG/storage_traci_OMG.c
# )
#add_library(OMG_SUMO ${OMG_SUMO_SRC})
set(SECU_OSA_SRC
${OPENAIR2_DIR}/UTIL/OSA/osa_key_deriver.c
${OPENAIR2_DIR}/UTIL/OSA/osa_rijndael.c
@@ -938,6 +1037,7 @@ set(SCHED_SRC
${OPENAIR1_DIR}/SCHED/phy_mac_stub.c
${OPENAIR1_DIR}/SCHED/pucch_pc.c
${OPENAIR1_DIR}/SCHED/pusch_pc.c
${OPENAIR1_DIR}/SCHED/srs_pc.c
)
add_library(SCHED_LIB ${SCHED_SRC})
@@ -968,6 +1068,7 @@ set(PHY_SRC
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/prach.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pmch.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pch.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/group_hopping.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/srs_modulation.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/drs_modulation.c
@@ -978,16 +1079,22 @@ set(PHY_SRC
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/rar_tools.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/print_stats.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/initial_sync.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if4_tools.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if5_tools.c
${OPENAIR1_DIR}/PHY/MODULATION/ofdm_mod.c
${OPENAIR1_DIR}/PHY/MODULATION/slot_fep.c
${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_mbsfn.c
${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_ul.c
${OPENAIR1_DIR}/PHY/MODULATION/ul_7_5_kHz.c
${OPENAIR1_DIR}/PHY/MODULATION/ul_1_4_fs.c
${OPENAIR1_DIR}/PHY/MODULATION/beamforming.c
${OPENAIR1_DIR}/PHY/MODULATION/compute_bf_weights.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/freq_equalization.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_time.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_adjust_sync.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_est_freq_offset.c
@@ -1026,6 +1133,7 @@ set(PHY_SRC
${OPENAIR1_DIR}/PHY/TOOLS/sqrt.c
${OPENAIR1_DIR}/PHY/TOOLS/time_meas.c
${OPENAIR1_DIR}/PHY/TOOLS/lut.c
${OPENAIR1_DIR}/PHY/TOOLS/thread_pool.c
)
if (${SMBV})
set(PHY_SRC "${PHY_SRC} ${OPENAIR1_DIR}/PHY/TOOLS/smbv.c")
@@ -1100,7 +1208,17 @@ set (MAC_SRC
${MAC_DIR}/eNB_scheduler_RA.c
${MAC_DIR}/pre_processor.c
${MAC_DIR}/config.c
)
)
if (FLEXRAN_AGENT_SB_IF)
set (MAC_SRC ${MAC_SRC}
${MAC_DIR}/flexran_agent_scheduler_dlsch_ue.c
${MAC_DIR}/flexran_agent_scheduler_dataplane.c
${MAC_DIR}/flexran_agent_scheduler_dlsch_ue_remote.c
)
endif()
set (ENB_APP_SRC
${OPENAIR2_DIR}/ENB_APP/enb_app.c
@@ -1113,6 +1231,14 @@ add_library(L2
${ENB_APP_SRC})
# ${OPENAIR2_DIR}/RRC/L2_INTERFACE/openair_rrc_L2_interface.c)
if (FLEXRAN_AGENT_SB_IF)
#Test for adding a shared library
add_library(default_sched SHARED ${MAC_DIR}/flexran_agent_scheduler_dlsch_ue.c)
add_library(remote_sched SHARED ${MAC_DIR}/flexran_agent_scheduler_dlsch_ue_remote.c)
endif()
# L3 Libs
##########################
@@ -1473,6 +1599,23 @@ add_library(LFDS
${lfds}/lfds611_abstraction/lfds611_abstraction_malloc.c
)
set(lfds7 ${OPENAIR2_DIR}/UTIL/LFDS/liblfds7.0.0/liblfds700/src/)
file(GLOB lfds7_queue ${lfds7}/lfds700_queue/*.c)
file(GLOB lfds7_ring ${lfds7}/lfds700_ringbuffer/*.c)
file(GLOB lfds7_qbss ${lfds7}/lfds700_queue_bounded_singleconsumer_singleproducer/*.c)
file(GLOB lfds7_stack ${lfds7}/lfds700_stack/*.c)
file(GLOB lfds7_freelist ${lfds7}/lfds700_freelist/*.c)
file(GLOB lfds7_btree ${lfds7}/lfds700_btree_addonly_unbalanced/*.c)
file(GLOB lfds7_hash ${lfds7}/lfds700_hash_addonly/*.c)
file(GLOB lfds7_ordered_list ${lfds7}/lfds700_list_addonly_ordered_singlylinked/*.c)
file(GLOB lfds7_unordered_list ${lfds7}/lfds700_list_addonly_singlylinked_unordered/*.c)
file(GLOB lfds7_misc ${lfds7}/lfds700_misc/*.c)
include_directories(${lfds7})
add_library(LFDS7
${lfds7_queue} ${lfds7_ring} ${lfds7_qbss} ${lfds7_stack} ${lfds7_freelist} ${lfds7_btree} ${lfds7_hash} ${lfds7_ordered_list} ${lfds7_unordered_list} ${lfds7_misc}
)
# Simulation library
##########################
add_library(SIMU
@@ -1536,11 +1679,25 @@ endif()
pkg_search_module(NETTLE nettle)
if(NOT ${NETTLE_FOUND})
message("PACKAGE nettle not found: some targets will fail")
message( FATAL_ERROR "PACKAGE nettle not found: some targets will fail. Run build_oai -I again!")
else()
include_directories(${NETTLE_INCLUDE_DIRS})
endif()
message ("NETTLE VERSION_INSTALLED = ${NETTLE_VERSION}")
string(REGEX REPLACE "([0-9]+).*" "\\1" NETTLE_VERSION_MAJOR ${NETTLE_VERSION})
string(REGEX REPLACE "[0-9]+\\.([0-9]+).*" "\\1" NETTLE_VERSION_MINOR ${NETTLE_VERSION})
message ("NETTLE_VERSION_MAJOR = ${NETTLE_VERSION_MAJOR}")
message ("NETTLE_VERSION_MINOR = ${NETTLE_VERSION_MINOR}")
if ("${NETTLE_VERSION_MAJOR}" STREQUAL "" OR "${NETTLE_VERSION_MINOR}" STREQUAL "")
message( FATAL_ERROR "The nettle version not detected properly. Try to run build_oai -I again" )
endif()
add_definitions("-DNETTLE_VERSION_MAJOR=${NETTLE_VERSION_MAJOR}")
add_definitions("-DNETTLE_VERSION_MINOR=${NETTLE_VERSION_MINOR}")
pkg_search_module(XPM xpm)
if(NOT ${XPM_FOUND})
message("PACKAGE xpm not found: some targets will fail")
@@ -1551,7 +1708,7 @@ endif()
# Atlas is required by some packages, but not found in pkg-config
if(EXISTS "/usr/include/atlas/cblas.h")
include_directories("/usr/include/atlas")
list(APPEND ATLAS_LIBRARIES lapack cblas atlas)
list(APPEND ATLAS_LIBRARIES cblas atlas lapack)
else()
message("No Blas/Atlas libs found, some targets will fail")
endif()
@@ -1614,10 +1771,9 @@ add_executable(lte-softmodem
${rrc_h}
${s1ap_h}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/RT/USER/sched_dlsch.c
${OPENAIR_TARGETS}/RT/USER/sched_rx_pdsch.c
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
${OPENAIR_TARGETS}/RT/USER/lte-ue.c
${OPENAIR_TARGETS}/RT/USER/lte-enb.c
${OPENAIR_TARGETS}/RT/USER/lte-softmodem.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
@@ -1636,11 +1792,11 @@ add_executable(lte-softmodem
target_link_libraries (lte-softmodem -ldl
-Wl,--start-group
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${MIH_LIB}
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7
-Wl,--end-group )
target_link_libraries (lte-softmodem ${LIBXML2_LIBRARIES})
target_link_libraries (lte-softmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${option_HW_lib} ${option_TP_lib} ${XFORMS_LIBRARIES} )
target_link_libraries (lte-softmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${option_HW_lib} ${option_TP_lib} ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
target_link_libraries (lte-softmodem ${LIB_LMS_LIBRARIES})
target_link_libraries (lte-softmodem ${T_LIB})
@@ -1650,10 +1806,9 @@ add_executable(lte-softmodem-nos1
${rrc_h}
${s1ap_h}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/RT/USER/sched_dlsch.c
${OPENAIR_TARGETS}/RT/USER/sched_rx_pdsch.c
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
${OPENAIR_TARGETS}/RT/USER/lte-ue.c
${OPENAIR_TARGETS}/RT/USER/lte-enb.c
${OPENAIR_TARGETS}/RT/USER/lte-softmodem.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
@@ -1671,11 +1826,11 @@ add_executable(lte-softmodem-nos1
)
target_link_libraries (lte-softmodem-nos1
-Wl,--start-group
RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB} ${MIH_LIB}
RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB} ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7
-Wl,--end-group )
target_link_libraries (lte-softmodem-nos1 ${LIBXML2_LIBRARIES})
target_link_libraries (lte-softmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${option_HW_lib} ${option_TP_lib} ${XFORMS_LIBRARIES} )
target_link_libraries (lte-softmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${option_HW_lib} ${option_TP_lib} ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
target_link_libraries (lte-softmodem-nos1 ${LIB_LMS_LIBRARIES})
target_link_libraries (lte-softmodem-nos1 ${T_LIB})
@@ -1749,6 +1904,9 @@ add_executable(oaisim
${s1ap_h}
${x2ap_h}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/RT/USER/lte-ue.c
${OPENAIR_TARGETS}/RT/USER/lte-enb.c
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
${OPENAIR_TARGETS}/SIMU/USER/channel_sim.c
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim_config.c
@@ -1759,7 +1917,6 @@ add_executable(oaisim
${OPENAIR_TARGETS}/SIMU/USER/oaisim.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR2_DIR}/UTIL/OMG/sumo.c
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
${GTPU_need_ITTI}
${OPENAIR_TARGETS}/COMMON/create_tasks.c
@@ -1792,6 +1949,9 @@ add_executable(oaisim_nos1
${s1ap_h}
${x2ap_h}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/RT/USER/lte-ue.c
${OPENAIR_TARGETS}/RT/USER/lte-enb.c
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
${OPENAIR_TARGETS}/SIMU/USER/channel_sim.c
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim_config.c
@@ -1802,7 +1962,6 @@ add_executable(oaisim_nos1
${OPENAIR_TARGETS}/SIMU/USER/oaisim.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR2_DIR}/UTIL/OMG/sumo.c
${OPENAIR_TARGETS}/COMMON/create_tasks.c
${HW_SOURCE}
${TRANSPORT_SOURCE}
@@ -1812,20 +1971,24 @@ add_executable(oaisim_nos1
target_include_directories(oaisim_nos1 PUBLIC ${OPENAIR_TARGETS}/SIMU/USER)
target_link_libraries (oaisim_nos1
-Wl,--start-group
RRC_LIB X2AP_LIB SECU_CN UTIL HASHTABLE SCHED_LIB PHY LFDS ${MSC_LIB} L2 ${RAL_LIB} SIMU SIMU_ETH SECU_OSA ${ITTI_LIB} ${MIH_LIB}
RRC_LIB X2AP_LIB SECU_CN UTIL HASHTABLE SCHED_LIB PHY LFDS ${MSC_LIB} L2 ${RAL_LIB} SIMU SIMU_ETH SECU_OSA ${ITTI_LIB} ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7
-Wl,--end-group )
target_link_libraries (oaisim_nos1 ${LIBXML2_LIBRARIES} ${LAPACK_LIBRARIES})
target_link_libraries (oaisim_nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${option_HW_lib} ${option_TP_lib}
${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${OPENPGM_LIBRARIES})
target_link_libraries (oaisim_nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${option_HW_lib} ${option_TP_lib}
${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${OPENPGM_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
#Force link with forms, regardless XFORMS option
target_link_libraries (oaisim_nos1 forms)
#message("protobuflib is ${PROTOBUF_LIB}")
target_link_libraries (oaisim_nos1 ${T_LIB})
# Unitary tests for each piece of L1: example, mbmssim is MBMS L1 simulator
#####################################
foreach(myExe dlsim ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim)
foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim)
add_executable(${myExe}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR1_DIR}/SIMULATION/LTE_PHY/${myExe}.c
@@ -1833,7 +1996,8 @@ foreach(myExe dlsim ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syn
${T_SOURCE}
)
target_link_libraries (${myExe}
-Wl,--start-group SIMU UTIL SCHED_LIB PHY LFDS ${ITTI_LIB} -Wl,--end-group
-Wl,--start-group SIMU UTIL SCHED_LIB PHY LFDS ${ITTI_LIB} LFDS7 -Wl,--end-group
pthread m rt ${CONFIG_LIBRARIES} ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${T_LIB}
)
endforeach(myExe)
@@ -1887,7 +2051,6 @@ foreach(myExe s1ap
aes128_cmac_encrypt
secu_knas_encrypt_eia2)
add_executable(test_${myExe}
${OPENAIR3_DIR}/TEST/test_util.c
${OPENAIR3_DIR}/TEST/test_${myExe}.c
)
target_link_libraries (test_${myExe}
@@ -1907,6 +2070,7 @@ if (${T_TRACER})
add_dependencies(oaisim generate_T)
add_dependencies(oaisim_nos1 generate_T)
add_dependencies(dlsim generate_T)
add_dependencies(dlsim_tm7 generate_T)
add_dependencies(ulsim generate_T)
add_dependencies(pbchsim generate_T)
add_dependencies(scansim generate_T)

View File

@@ -1,30 +1,26 @@
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http:/www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# Author: Lionel GAUTHIER
###############################################################################
cmake_minimum_required(VERSION 2.8)
set(CMAKE_VERBOSE_MAKEFILE ON)
@@ -92,6 +88,24 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2 -std=gnu99 -Wall -Wstrict-prototype
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb -DMALLOC_CHECK_=3")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -ggdb -DMALLOC_CHECK_=3 -O2")
#This is to detect nettle version changes between Ubuntu 14.04/16.04
set ( nettle_cmd "nettle-hash" )
set ( nettle_arg "-V" )
execute_process(COMMAND ${nettle_cmd} ${nettle_arg} RESULT_VARIABLE rv OUTPUT_VARIABLE ov ERROR_VARIABLE ev)
string(REGEX MATCH "[+-]?[0-9]+([.][0-9]+)?" nv ${ov})
message("NETTLE_VERSION = ${nv}")
# we need to remove decimal as floating point arithematic does not work properly with C preprocessor
STRING(REGEX REPLACE "[.]" "" nv ${nv})
if ("${nv}" STREQUAL "")
message( FATAL_ERROR "The nettle version not detected properly. Try to run build_oai -I again" )
endif()
set (NETTLE_VERSION "${nv}")
add_definitions("-DNETTLE_VERSION=${NETTLE_VERSION}")
include(FindPkgConfig)

View File

@@ -1,5 +1,4 @@
OAI Test PLAN
#UNDER CONSTRUCTION. Not correct at the moment
Obj.# Case# Test# Description
@@ -16,17 +15,22 @@ Obj.# Case# Test# Description
01 01 20 Build lte-softmodem.USRP.Rel10
01 01 21 Build lte-softmodem.EXMIMO.Rel10
01 01 22 Build lte-softmodem.BLADERF.Rel10
01 01 23 Build lte-softmodem.ETHERNET.Rel10
01 01 23 Build lte-softmodem.ETHERNET.Rel10 (RCC)
01 01 24 Build lte-softmodem.LMSSDR.Rel10
01 01 30 Build (dlsim.Rel10 + ulsim.Rel10 + pucchsim.Rel10 + prachsim.Rel10 + pdcchsim.Rel10 + pbchsim.Rel10 + mbmssim.Rel10
secu_knas_encrypt_eia1.Rel10 secu_kenb.Rel10 aes128_ctr_encrypt.Rel10 aes128_ctr_decrypt.Rel10 secu_knas_encrypt_eea2.Rel10
secu_knas.Rel10 secu_knas_encrypt_eea1.Rel10 kdf.Rel10 aes128_cmac_encrypt.Rel10 secu_knas_encrypt_eia2.Rel10)
01 01 40 Build RRH Gateway for USRP (Rel 10)
01 01 41 Build RRH Gateway for EXMIMO (Rel 10)
01 01 42 Build RRH Gateway for BLADERF (Rel 10)
01 01 43 Build RRH Gateway for LMSSDR (Rel 10)
01 01 40 Build RRH Gateway (time domain) for USRP (Rel 10)
01 01 41 Build RRH Gateway (time domain) for EXMIMO (Rel 10)
01 01 42 Build RRH Gateway (time domain) for BLADERF (Rel 10)
01 01 43 Build RRH Gateway (time domain) for LMSSDR (Rel 10)
01 01 50 Build RRU (NGFI) for USRP (Rel 10) w/ ETHERNET transport
01 01 51 Build RRU (NGFI) for EXMIMO (Rel 10) w/ ETHERNET transport
01 01 52 Build RRU (NGFI) for BLADERF (Rel 10) w/ ETHERNET transport
01 01 53 Build RRU (NGFI) for LMSSDR (Rel 10) w/ ETHERNET transport
01 02 Run OAISIM-NOS1 Rel10 (TDD + 5MHz/10MHz/20MHz + TM 1,2), and check the operation
@@ -214,7 +218,7 @@ Obj.# Case# Test# Description
01 70 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 75 00 lte-softmodem + RRH tests with B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 75 00 lte-softmodem + RRU (NGFI IF4P5, RAW) tests with B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 75 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 75 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 75 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
@@ -222,7 +226,7 @@ Obj.# Case# Test# Description
01 75 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 75 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 80 00 lte-softmodem + RRH tests with BladeRF RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 80 00 lte-softmodem + RRU (NGFI) tests with BladeRF RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 80 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 80 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 80 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
@@ -230,7 +234,7 @@ Obj.# Case# Test# Description
01 80 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 80 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 85 00 lte-softmodem + RRH tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 85 00 lte-softmodem + RRU (NGFI) tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 85 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 85 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 85 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
@@ -264,6 +268,15 @@ Obj.# Case# Test# Description
02 55 22 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
02 55 23 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
02 57 lte-softmodem tests with USRP B210 RF as eNB and OAI EPC (eNB and EPC are on different machines) w/ OAI UE
02 57 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
02 57 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
02 57 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
02 57 03 Band 7 FDD 5MHz DL Throughput for 300 sec for 1TX/1RX
02 57 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
02 57 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 64 lte-softmodem-noS1 tests
02 Functional test case

View File

@@ -1,31 +1,23 @@
#******************************************************************************
# Eurecom OpenAirInterface
# Copyright(c) 1999 - 2013 Eurecom
# This program is free software; you can redistribute it and/or modify it
# under the terms and conditions of the GNU General Public License,
# version 2, as published by the Free Software Foundation.
# This program is distributed in the hope it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
# Contact Information
# Openair Admin: openair_admin@eurecom.fr
# Openair Tech : openair_tech@eurecom.fr
# Forums : http://forums.eurecom.fsr/openairinterface
# Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France
#*****************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# \file core.py
# \brief OAI core testing class that provides various primitives to send/recv cmd to openair class searching for patterns and process the responses and tag the test case as passed/failed/skipped

View File

@@ -1,31 +1,23 @@
#******************************************************************************
# Eurecom OpenAirInterface
# Copyright(c) 1999 - 2013 Eurecom
# This program is free software; you can redistribute it and/or modify it
# under the terms and conditions of the GNU General Public License,
# version 2, as published by the Free Software Foundation.
# This program is distributed in the hope it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
# Contact Information
# Openair Admin: openair_admin@eurecom.fr
# Openair Tech : openair_tech@eurecom.fr
# Forums : http://forums.eurecom.fsr/openairinterface
# Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France
#*****************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# \file log.py
# \brief provides primitives and defines how the logs and statistics are generated

View File

@@ -1,31 +1,23 @@
#******************************************************************************
# Eurecom OpenAirInterface
# Copyright(c) 1999 - 2013 Eurecom
# This program is free software; you can redistribute it and/or modify it
# under the terms and conditions of the GNU General Public License,
# version 2, as published by the Free Software Foundation.
# This program is distributed in the hope it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
# Contact Information
# Openair Admin: openair_admin@eurecom.fr
# Openair Tech : openair_tech@eurecom.fr
# Forums : http://forums.eurecom.fsr/openairinterface
# Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France
#*****************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# \file openair.py
# \brief class that define the oaisim class and its attributes
@@ -83,7 +75,7 @@ class openair(core):
return (stdout, stderr)
def connect(self, username, password, prompt='PEXPECT_OAI'):
max_retries=100
max_retries=10
i=0
while i <= max_retries:
self.prompt1 = prompt
@@ -105,9 +97,9 @@ class openair(core):
# need to look for twice the string of the prompt
self.oai.prompt()
self.oai.prompt()
self.oai.sendline('uptime')
self.oai.prompt()
print self.oai.before
# self.oai.sendline('uptime')
# self.oai.prompt()
# print self.oai.before
break
except Exception, e:
error=''
@@ -179,7 +171,7 @@ class openair(core):
sys.exit(1)
def disconnect(self):
print 'disconnecting the ssh connection to ' + self.address + '\n'
# print 'disconnecting the ssh connection to ' + self.address + '\n'
self.oai.send('exit')
# self.cancel()

View File

@@ -1,4 +1,26 @@
#!/bin/bash
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# \author Navid Nikaein, Rohit Gupta
if [ -s $OPENAIR_DIR/cmake_targets/tools/build_helper ] ; then
source $OPENAIR_DIR/cmake_targets/tools/build_helper

View File

@@ -1,33 +1,25 @@
#!/bin/bash
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
if [ -s $OPENAIR_DIR/cmake_targets/tools/build_helper ] ; then

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,87 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>OAI5G UE Autotest Report</title>
<script type="text/javascript">
function showhide(id) {
var e = document.getElementById(id);
e.style.display = (e.style.display == 'block') ? 'none' : 'block';
}
</script>
</head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
padding: 5px;
}
</style>
<body>
<center>
<h2>OAI5G UE Autotest Report</h2>
</center>
<p>
<table border>
<caption>Test session configuration</caption>
<tr><td>Start time</td><td>{{test_session_start_time}}</td></tr>
<tr><td>Stop time</td><td>{{test_session_stop_time}}</td></tr>
<tr><td>Duration</td><td>{{test_session_duration}}</td></tr>
<tr><td>MTC host</td><td>{{mtc_host}}</td></tr>
<tr><td>User</td><td>{{user}}</td></tr>
<tr><td>Password</td><td>{{password}}</td></tr>
</table>
</p>
<h3>Test Setup</h3>
To be complete
<br></br>
<h3>UE phy-test performances tests results</h3>
<h4>Objectives</h4>
<p>Checks that OAI UE can achieve at least 75 percent of the theoretical throughput.</p>
<p>Tests are done for all MCS (0 to 28) for 5MHz and 10MHz bandwidth.</p>
<h4>Results</h4>
<table>
<TR><TH>ID</TH><TH>TAG</TH><TH>VERDICT</TH><TH>NB RUNS</TH><TH>PASS</TH><TH>FAILED</TH><TH>INCON</TH><TH>SKIPPED</TH><TH>SEG FAULT</TH><TH>TC Timeout</TH><TH>Start</TH><TH>Stop</TH><TH>Duration</TH><TH>Details</TH></TR>
{% for result in test_results|sort(attribute='testcase_name') %}
<TR>
<TD >{{result.testcase_name}}</TD>
<TD align="right">{{result.tags}}</TD>
{% if result.testcase_verdict == "PASS" %}
<TD align="center" style="background-color:green">{{result.testcase_verdict}}</TD>
{% elif result.testcase_verdict == "FAIL" %}
<TD align="center" style="background-color:red">{{result.testcase_verdict}}</TD>
{% else %}
<TD align="center" style="background-color:orange">{{result.testcase_verdict}}</TD>
{% endif %}
<TD align='center'>{{result.nruns}}</TD>
<TD align='center'>{{result.nb_run_pass}}</TD>
<TD align='center'>{{result.nb_run_failed}}</TD>
<TD align='center'>{{result.nb_run_inc}}</TD>
<TD align='center'>{{result.nb_run_skip}}</TD>
<TD align='center'>{{result.nb_seg_fault}}</TD>
<TD >{{result.testcase_timeout}}</TD>
<TD >{{result.testcase_time_start.strftime('%Y-%m-%d %H:%M:%S')}}</TD>
<TD >{{result.testcase_time_stop.strftime('%Y-%m-%d %H:%M:%S')}}</TD>
<TD >{{result.testcase_duration}}</TD>
<TD ><a href="{{ result.testcase_name }}/{{ result.testcase_name }}_report.html">{{ result.testcase_name }}_report.html</a></TD>
</TR>
{% endfor %}
</table>
<br></br>
<h3>UE phy-test stability tests results</h3>
<h4>Objectives</h4>
<p>To be complete</p>
<h4>Results</h4>
To be complete
</table>
</body>
</html>

View File

@@ -0,0 +1,142 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>OAI5G UE test case report</title>
<script type="text/javascript">
function showhide(id) {
var e = document.getElementById(id);
e.style.display = (e.style.display == 'block') ? 'none' : 'block';
}
</script>
</head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
padding: 5px;
}
</style>
<body>
<center>
<h2>OAI5G UE test case report details</h2>
</center>
<h3>Test Case description</h3>
<p>
<table border>
<tr><td>ID</td><td>{{testcase_name}}</td></tr>
<tr><td>TAG</td><td>{{tags}}</td></tr>
<tr><td>class</td><td>{{testcaseclass}}</td></tr>
<tr><td>description</td><td></td></tr>
<tr><td>timeout</td><td>{{testcase_timeout}}</td></tr>
<tr><td>number of runs</td><td>{{nruns}}</td></tr>
<tr><td>eNB machine</td><td>{{testcase_eNBMachine}}</td></tr>
<tr><td>UE machine</td><td>{{testcase_UEMachine}}</td></tr>
</table>
</p>
<h3>Test Case execution</h3>
<p>
<table border>
<tr><td>testcase_time_start</td><td>{{testcase_time_start}}</td></tr>
<tr><td>testcase_time_stop</td><td>{{testcase_time_stop}}</td></tr>
<tr><td>testcase_duration</td><td>{{testcase_duration}}</td></tr>
<tr><td>Nb runs</td><td>{{nruns}}</td></tr>
<tr><td>Nb PASS</td><td>{{nb_run_pass}}</td></tr>
<tr><td>Nb FAILED</td><td>{{nb_run_failed}}</td></tr>
<tr><td>Nb INCONCLUSIVE</td><td>{{nb_run_inc}}</td></tr>
<tr>
<td>testcase_verdict</td>
{% if testcase_verdict == "PASS" %}
<TD align="center" style="background-color:green">{{testcase_verdict}}</TD>
{% elif testcase_verdict == "FAIL" %}
<TD align="center" style="background-color:red">{{testcase_verdict}}</TD>
{% else %}
<TD align="center" style="background-color:orange">{{testcase_verdict}}</TD>
{% endif %}
</tr>
<tr><td>Nb Seg Fault</td><td>{{nb_seg_fault}}</td></tr>
</table>
</p>
<h3>Test Case runs results</h3>
{% for run_results in runs_results|sort(attribute='run_id') %}
<h4>RUN {{run_results.run_id}} </h4>
<table border>
<tr><td>run_start_time </td><td>{{run_results.run_start_time}}</td></tr>
<tr><td>run_stop_time</td><td>{{run_results.run_stop_time}}</td></tr>
<tr><td>run_duration</td><td>{{run_results.run_duration}}</td></tr>
<tr>
<td>run_verdict</td>
{% if run_results.run_verdict == "PASS" %}
<TD align="center" style="background-color:green">{{run_results.run_verdict}}</TD>
{% elif run_results.run_verdict == "FAIL" %}
<TD align="center" style="background-color:red">{{run_results.run_verdict}}</TD>
{% else %}
<TD align="center" style="background-color:orange">{{run_results.run_verdict}}</TD>
{% endif %}
</tr>
<tr><td>Seg Fault Satus</td>
{% if run_results.ue_seg_fault_status == "NO_SEG_FAULT" %}
<TD align="center" style="background-color:green">{{run_results.ue_seg_fault_status}}</TD>
{% elif run_results.ue_seg_fault_status == "SEG_FAULT" %}
<TD align="center" style="background-color:red">{{run_results.ue_seg_fault_status}}</TD>
{% else %}
<TD align="center" style="background-color:orange">unknown</TD>
{% endif %}
</tr>
</table>
{% for run_metrics in run_results.runs_metrics %}
<br></br>
<table border>
<tr><td>metric_id</td><td>{{run_metrics.metric_id}}</td></tr>
<tr><td>Description</td><td>{{run_metrics.metric_desc}}</td></tr>
<tr><td>Unit of measure</td><td>{{run_metrics.metric_uom}}</td></tr>
<tr><td>metric_min</td><td>{{run_metrics.metric_min}}</td></tr>
<tr><td>metric_max</td><td>{{run_metrics.metric_max}}</td></tr>
<tr><td>metric_mean</td><td>{{run_metrics.metric_mean}}</td></tr>
<tr><td>metric_median</td><td>{{run_metrics.metric_median}}</td></tr>
<tr><td colspan="2"></td></tr>
{% if run_metrics.pass_fail_stat is defined %}
<tr><td>Pass/fail stat</td><td>{{run_metrics.pass_fail_stat}}</td></tr>
{% endif %}
{% if run_metrics.pass_fail_min_limit is defined %}
<tr><td>Pass/fail min limit</td><td>{{run_metrics.pass_fail_min_limit}}</td></tr>
{% endif %}
{% if run_metrics.pass_fail_max_limit is defined %}
<tr><td>Pass/fail max limit</td><td>{{run_metrics.pass_fail_max_limit}}</td></tr>
{% endif %}
<tr><td colspan="2"></td></tr>
<tr><td>metric_fig</td><td><IMG src={{run_metrics.metric_fig}}></td></tr>
</table>
{% endfor %}
{% if run_results.run_traffic.traffic_count != 0 %}
<br></br>
<table border>
<TR><TH>Iperf metric</TH><TH>min</TH><TH>max</TH><TH>mean</TH><TH>median</TH><TR>
<TR><td>Bandwidth </td><td>{{run_results.run_traffic.bw_min}}</td><td>{{run_results.run_traffic.bw_max}}</td><td>{{run_results.run_traffic.bw_mean}}</td><td>{{run_results.run_traffic.bw_median}}</td><TR>
<TR><td>Jitter</td><td>{{run_results.run_traffic.jitter_min}}</td><td>{{run_results.run_traffic.jitter_max}}</td><td>{{run_results.run_traffic.jitter_mean}}</td><td>{{run_results.run_traffic.jitter_median}}</td><TR>
<TR><td>Loss rate</td><td>{{run_results.run_traffic.rl_min}}</td><td>{{run_results.run_traffic.rl_max}}</td><td>{{run_results.run_traffic.rl_mean}}</td><td>{{run_results.run_traffic.rl_median}}</td><TR>
<TR><td colspan="5"></td></TR>
<TR><td>Iperf duration</td><td>{{run_results.run_traffic.iperf_duration}}</td><td></td><td>Pass/Fail criteria (min duration)</td><td>{{run_results.run_traffic.dur_pass_fail_crit}}</td><TR>
<TR><td colspan="5"></td></TR>
<tr><td>traffic_fig</td><td colspan="4"><IMG src={{run_results.run_traffic.traffic_fig}}></td></tr>
</table>
{% endif %}
{% endfor %}
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,174 @@
#! /usr/bin/python
#******************************************************************************
#
# \file autotest_analyser.py
#
# \par Informations
# - \b Project : UED Autotest Framework
# - \b Software :
#
# \date 16 september 2016
#
# \version 0.1
#
# \brief helper to test lib_autotest_analyser.py
#
# \author Benoit ROBERT (benoit.robert@syrtem.com)
#
# \par Statement of Ownership
# COPYRIGHT (c) 2016 BY SYRTEM S.A.R.L
# This software is furnished under license and may be used and copied
# only in accordance with the terms of such license and with the inclusion
# of the above COPYRIGHT notice. This SOFTWARE or any other copies thereof
# may not be provided or otherwise made available to any other person.
# No title to and ownership of the SOFTWARE is hereby transferred.
#
# The information in this SOFTWARE is subject to change without notice
# and should not be constructed as a commitment by SYRTEM.
# SYRTEM assumes no responsibility for the use or reliability of its
# SOFTWARE on equipment or platform not explicitly validated by SYRTEM.
#
# *******************************************************************************
import os
import getopt
import sys
from subprocess import call
import encoder
sys.path.append(os.path.expandvars('$OPENAIR_DIR/cmake_targets/autotests/tools/'))
#test_cases = ('030001', '030901', '031001', '031601', '031701', '031801', '031901', '032001', '032101', '032201', '032301', '032501', '032601', '032801')
test_cases = ('032800' , '032730' )
nb_run = 2
def error_opt(msg):
print("Option error: " + msg)
def main(args):
try:
analyser = __import__("lib_autotest_analyser")
except ImportError as err:
print('Import error: ' + str(err))
exit(0)
log_path = 'log_save_2016-08-14/log/'
# metric = {}
# metric['id'] = 'UE_DLSCH_BITRATE'
# metric['description'] = 'UE downlink physical throughput'
# metric['regex'] = '(UE_DLSCH_BITRATE) =\s+(\d+\.\d+) kbps.+frame = (\d+)\)'
# metric['unit_of_meas'] = 'kbps'
# metric['min_limit'] = 14668.8
#AUTOTEST Metric : RRC Measurments RSRP[0]=-97.60 dBm/RE, RSSI=-72.83 dBm, RSRQ[0] 9.03 dB, N0 -125 dBm/RE, NF 7.2 dB (frame = 4490)
metric = {}
metric['id'] = 'UE_DL_RRC_MEAS'
metric['description'] = 'UE downlink RRC Measurments'
metric['nb_metric'] = 5
# metric['regex'] = 'AUTOTEST Metric : RRC Measurments (RSRP\[0\])=(-?\d+\.?\d*)\s+(.+),\s+(RSRQ\[0\])=(-?\d+\.?\d*)\s+(.+),,\s+(N0)=(-?\d+\.?\d*)\s+(.+),,\s+(NF)=(-?\d+\.?\d*)\s+(.+)\s+\(frame = (\d+)\) '
metric['regex'] = 'AUTOTEST Metric : RRC Measurments (RSRP\[0\])=(-?\d+\.?\d*)\s+(.+)\,\s+(RSSI)=(-?\d+\.?\d*)\s+(.+)\,\s+(RSRQ\[0\])=(-?\d+\.?\d*)\s+(.+)\,\s+(N0)=(-?\d+\.?\d*)\s+(.+)\,\s+(NF)=(-?\d+\.?\d*)\s+(.+)\s+\(frame = (\d+)\)'
metric['unit_of_meas'] = 'kbps'
metric['min_limit'] = 14668.8
#report_path = log_path+'/report/'
#os.system(' mkdir -p ' + report_path)
#analyser.create_report_html(report_path)
#return(0)
test_results = []
for test_case in test_cases:
for i in range(0, nb_run):
fname = '..//log//'+test_case+'/run_'+str(i)+'/UE_exec_'+str(i)+'_.log'
args = {'metric' : metric,
'file' : fname }
# cell_synch_status = analyser.check_cell_synchro(fname)
# if cell_synch_status == 'CELL_SYNCH':
# print '!!!!!!!!!!!!!! Cell synchronized !!!!!!!!!!!'
# metric_checks_flag = 0
# else :
# print '!!!!!!!!!!!!!! Cell NOT NOT synchronized !!!!!!!!!!!'
# metrics_extracted = analyser.do_extract_metrics_new(args)
# de-xmlfy test report
xml_file = '..//log//'+test_case+'/test.'+test_case+'_ng.xml'
print xml_file
# test_result =
# test_results.append(test_result)
# xmlFile = logdir_local_testcase + '/test.' + testcasename + '.xml'
# xml="\n<testcase classname=\'"+ testcaseclass + "\' name=\'" + testcasename + "."+tags + "\' Run_result=\'" + test_result_string + "\' time=\'" + str(duration) + " s \' RESULT=\'" + testcase_verdict + "\'></testcase> \n"
# write_file(xmlFile, xml, mode="w")
# xmlFile_ng = logdir_local_testcase + '/test.' + testcasename + '_ng.xml'
# xml_ng = xmlify(test_result, wrap=testcasename, indent=" ")
# write_file(xmlFile_ng, xml_ng, mode="w")
# print "min = "+ str( metric_extracted['metric_min'] )
# print "min_index = "+ str( metric_extracted['metric_min_index'] )
# print "max = "+ str( metric_extracted['metric_max'] )
# print "max_index = "+ str( metric_extracted['metric_max_index'] )
# print "mean = "+ str( metric_extracted['metric_mean'] )
# print "median = "+ str( metric_extracted['metric_median'] )
# verdict = analyser.do_check_verdict(metric, metric_extracted)
# print verdict
# fname= 'report/2016-9-8_toto/'+test_case+'/UE_metric_UE_DLSCH_BITRATE_'+str(i)+'_.png'
# fname= 'report/UE_metric_UE_DLSCH_BITRATE_'+test_case+'_'+str(i)+'.png'
# print fname
# analyser.do_img_metrics(metric, metric_extracted, fname)
# fname = 'log//'+test_case+'/run_'+str(i)+'/UE_traffic_'+str(i)+'_.log'
# args = {'file' : fname }
# traffic_metrics = analyser.do_extract_traffic_metrics(args)
# fname= 'report/iperf_'+test_case+'_'+str(i)+'.png'
# print fname
# analyser.do_img_traffic(traffic_metrics, fname)
for test_result in test_results:
cmd = 'mkdir -p ' + report_dir + '/'+ test_result['testcase_name']
result = os.system(cmd)
report_file = report_dir + '/'+ test_result['testcase_name'] + '/'+ test_result['testcase_name']+ '_report.html'
analyser.create_test_report_detailed_html(test_result, report_file )
print test_result
if __name__ == "__main__":
main(sys.argv)

View File

@@ -1,33 +1,25 @@
#!/usr/bin/python
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
import time

View File

@@ -1,33 +1,25 @@
#!/usr/bin/python
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
import time

View File

@@ -1,4 +1,26 @@
#!/usr/bin/python
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# \author Navid Nikaein, Rohit Gupta
import time
import serial

View File

@@ -1,33 +1,25 @@
#!/usr/bin/python
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
import time

View File

@@ -1,33 +1,25 @@
#!/bin/bash
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta

View File

@@ -1,36 +1,48 @@
#!/bin/bash
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
# To free unused memory else test setup runs out of memory
sudo -E bash -c 'echo 3 > /proc/sys/vm/drop_caches '
mem_threshold=0.2 #If free memory is less than this threshold, then VM drop cache is called
mem_tot=`vmstat -s -S k |grep "total memory" | awk '{print $1}'`
mem_free=`vmstat -s -S k |grep "free memory" | awk '{print $1}'`
mem_frac=`bc <<< "scale=4;$mem_free/$mem_tot"`
echo $mem_frac
#mem_frac=`bc <<< "scale=4;`echo $mem_free`/`echo $mem_tot`"`
echo "Total Memory = $mem_tot k "
echo "Free Memory = $mem_free k"
echo "Fraction free memory = $mem_frac "
res=`bc <<< "$mem_frac < 0.2" `
echo "Comparison Result = $res"
if [ "$res" == "1" ]
then
echo "Free memory less than threshold = $mem_threshold"
sudo -E bash -c 'echo 3 > /proc/sys/vm/drop_caches '
fi

View File

@@ -1,4 +1,26 @@
#!/bin/bash
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# \author Navid Nikaein, Rohit Gupta
#Simple script to retry git clone in case of failure

View File

@@ -1,33 +1,25 @@
#!/bin/bash
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
#arg1 timeout to wait before running the script

View File

@@ -1,33 +1,25 @@
#!/bin/bash
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
#arg1 timeout to wait before running the script

View File

@@ -1,33 +1,25 @@
#!/bin/bash
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
#arg1 timeout to wait before running the script

View File

@@ -1,33 +1,25 @@
#!/bin/bash
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
#arg1 timeout to wait before running the script

View File

@@ -1,33 +1,25 @@
#!/usr/bin/python
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
import os

View File

@@ -0,0 +1,544 @@
#******************************************************************************
#
# \file lib_autotest_analyser.py
#
# \par Informations
# - \b Project : UED Autotest Framework
# - \b Software :
#
# \date 16 september 2016
#
# \version 0.1
#
# \brief library to extract metrics from autotest logs and assign a verdict
#
# \author Benoit ROBERT (benoit.robert@syrtem.com)
#
# \par Statement of Ownership
# COPYRIGHT (c) 2016 BY SYRTEM S.A.R.L
# This software is furnished under license and may be used and copied
# only in accordance with the terms of such license and with the inclusion
# of the above COPYRIGHT notice. This SOFTWARE or any other copies thereof
# may not be provided or otherwise made available to any other person.
# No title to and ownership of the SOFTWARE is hereby transferred.
#
# The information in this SOFTWARE is subject to change without notice
# and should not be constructed as a commitment by SYRTEM.
# SYRTEM assumes no responsibility for the use or reliability of its
# SOFTWARE on equipment or platform not explicitly validated by SYRTEM.
#
# *******************************************************************************
import re
from pylab import *
from matplotlib.font_manager import FontProperties
import os
from jinja2 import Environment, FileSystemLoader
PATH = os.path.dirname(os.path.abspath(__file__))
TEMPLATE_ENVIRONMENT = Environment(
autoescape=False,
loader=FileSystemLoader(os.path.join(PATH, '../templates')),
trim_blocks=False)
def render_template(template_filename, context):
return TEMPLATE_ENVIRONMENT.get_template(template_filename).render(context)
def init(args = None):
return
#
#
#
def do_extract_metrics(args):
# print ""
# print "do_extract_metrics ... "
fname = args['file']
metric = args['metric']
# print(fname)
# print 'metric id = ' + metric['id']
# print 'metric regex = ' + metric['regex']
count = 0
mmin = 0
mmin_index = 0
mmax = 0
mmax_index = 0
mean = 0
median = 0
output = np.fromregex(fname,metric['regex'], [('id', 'S20'), ('metric', np.float), ('frame', np.int)] )
# print 'T0T0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
# print output
count = output['metric'].size
# print count
if count > 0:
mmin = np.amin(output['metric']);
mmin_index = np.argmin(output['metric']);
mmax = np.amax(output['metric']);
mmax_index = np.argmax(output['metric']);
mean = np.mean(output['metric']);
median = np.median(output['metric']);
# print ( ( (metric['min_limit'] > output['metric']).sum() / float(output['metric'].size) ) * 100 )
ret = { 'metric_count' : count,
'metric_buf' : output,
'metric_min' : mmin,
'metric_min_index' : mmin_index,
'metric_max' : mmax,
'metric_max_index' : mmax_index,
'metric_mean' : mean,
'metric_median' : median,
}
return(ret)
def do_extract_metrics_new(args):
# print ""
# print "do_extract_metrics ... "
fname = args['file']
metric = args['metric']
print(fname)
print 'metric id = ' + metric['id']
print 'metric regex = ' + metric['regex']
count = 0
mmin = 0
mmin_index = 0
mmax = 0
mmax_index = 0
mean = 0
median = 0
toto = [('id', 'S20'), ('metric', np.float), ('frame', np.int)]
print toto
np_format = []
for x in range(0, metric['nb_metric']):
np_format.append( ('id'+str(x), 'S20') )
np_format.append( ('metric'+str(x), np.float) )
np_format.append( ('uom'+str(x), 'S20') )
np_format.append( ('frame', np.int))
print np_format
output = np.fromregex(fname,metric['regex'], np_format)
print output
count = output['frame'].size
print count
if count > 0:
fontP = FontProperties()
fontP.set_size('small')
fig = plt.figure(1)
plt.figure(figsize=(10,10))
plot_xmax = np.amax(output['frame'])+np.amin(output['frame'])
for x in range(0, metric['nb_metric']):
metric_name = output['id'+str(x)][0]
metric_uom = output['uom'+str(x)][0]
mmin = np.amin(output['metric'+str(x)])
mmax = np.amax(output['metric'+str(x)])
mmean = np.mean(output['metric'+str(x)])
mmedian = np.median(output['metric'+str(x)])
plot_loc = 100*metric['nb_metric']+10+x+1
sbplt = plt.subplot(plot_loc)
sbplt.plot(output['frame'], output['metric'+str(x)], color='b' )
sbplt.set_title( metric_name+' ('+metric_uom+')')
if mmin < 0:
sbplot_ymin=mmin+mmin/10
else:
sbplot_ymin=0
sbplt.set_ylim(ymin=sbplot_ymin)
if mmax > 0:
sbplot_ymax=mmax+mmax/10
else:
sbplot_ymax=0
sbplt.set_ylim(ymax=sbplot_ymax)
sbplt.set_xlim(xmax=plot_xmax)
sbplt.set_xlim(xmin=0)
text='min: '+str(mmin)+'\nmax: '+str(mmax)+'\nmean: '+str(mmean)+'\nmedian: '+str(mmedian)
sbplt.text( plot_xmax+10,sbplot_ymin,text)
sbplt.set_xlabel('frame')
sbplt.set_ylabel(metric_name)
plt.tight_layout()
fname = "toto.png"
# lgd = plt.legend(prop=fontP, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
mng = plt.get_current_fig_manager()
plt.savefig(fname, bbox_inches='tight')
plt.close()
mmin = np.amin(output['metric']);
mmin_index = np.argmin(output['metric']);
mmax = np.amax(output['metric']);
mmax_index = np.argmax(output['metric']);
mean = np.mean(output['metric']);
median = np.median(output['metric']);
# print ( ( (metric['min_limit'] > output['metric']).sum() / float(output['metric'].size) ) * 100 )
ret = { 'metric_count' : count,
'metric_buf' : output,
'metric_min' : mmin,
'metric_min_index' : mmin_index,
'metric_max' : mmax,
'metric_max_index' : mmax_index,
'metric_mean' : mean,
'metric_median' : median,
}
return(ret)
#
#
#
def do_check_verdict(metric_def, metric_data):
verdict = 'INCON'
pass_fail_stat = metric_def['pass_fail_stat']
if pass_fail_stat == 'max_value':
metric_stat = metric_data['metric_max']
elif pass_fail_stat == 'min_value':
metric_stat = metric_data['metric_min']
elif pass_fail_stat == 'mean_value':
metric_stat = metric_data['metric_mean']
elif pass_fail_stat == 'median_value':
metric_stat = metric_data['metric_median']
else :
print "do_check_verdict -> undef metric stat (pass_fail_stat in xml file)"
return verdict
if 'max_limit' in metric_def:
if metric_stat > metric_def['max_limit']:
verdict = 'FAIL'
else:
verdict = 'PASS'
if 'min_limit' in metric_def:
if metric_stat < metric_def['min_limit']:
verdict = 'FAIL'
else:
verdict = 'PASS'
return verdict
def do_print_metrics(metric_def, metric_data):
if metric_data['metric_count'] > 0 :
# output = np.array( metric_data['metric_buf'] , [('id', 'S20'), ('metric', np.float), ('frame', np.int)])
output = metric_data['metric_buf']
# print output
fontP = FontProperties()
fontP.set_size('small')
plt.scatter(output['frame'], output['metric'], color='b', alpha=0.33, s = 1 )
plt.plot([0, output['frame'][metric_data['metric_count']-1]],[ metric_def['min_limit'],metric_def['min_limit']], 'r-', lw=2) # Red straight line
plt.title('Physical throughput ')
plt.xlabel('frame')
plt.ylabel(metric_def['id'])
plt.legend(prop=fontP)
mng = plt.get_current_fig_manager()
plt.show()
def do_img_metrics(metric_def, metric_data, fname):
if metric_data['metric_count'] > 0 :
# output = np.array( metric_data['metric_buf'] , [('id', 'S20'), ('metric', np.float), ('frame', np.int)])
output = metric_data['metric_buf']
# print 'TITI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
# print output
# print metric_def['min_limit']
# print metric_data['metric_count']
# print output['frame'][metric_data['metric_count']-1]
fontP = FontProperties()
fontP.set_size('small')
plt.figure()
# print output['frame'].size
# print output['metric'].size
plt.scatter(output['frame'], output['metric'], color='b', alpha=0.33, s = 1 , label=metric_def['id'])
if 'min_limit' in metric_def:
plt.plot([0, output['frame'][metric_data['metric_count']-1]],[ metric_def['min_limit'],metric_def['min_limit']], 'r-', lw=2, label='min limit') # Red straight line
plt.title(metric_def['id'] +' ('+metric_def['unit_of_meas']+')')
plt.xlabel('frame')
plt.ylabel(metric_def['id'])
# Set graphic minimum Y axis
# -------------------------
if metric_data['metric_min'] < 0:
plt.ylim(ymin=metric_data['metric_min']+metric_data['metric_min']/10)
else :
plt.ylim(ymin=0)
y_axis_max = 0
if 'min_limit' in metric_def:
if metric_data['metric_max'] > metric_def['min_limit']:
y_axis_max =metric_data['metric_max']+metric_data['metric_max']/10
else:
y_axis_max =metric_def['min_limit']+metric_def['min_limit']/10
else:
y_axis_max =metric_data['metric_max']+metric_data['metric_max']/10
plt.ylim(ymax=y_axis_max)
lgd = plt.legend(prop=fontP, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
mng = plt.get_current_fig_manager()
plt.savefig(fname, bbox_extra_artists=(lgd,), bbox_inches='tight')
plt.close()
# with open(fname, 'r') as f:
# for line in f:
# m = re.search(metric['regex'], line)
# if m :
# print m.group(1) + " -> "+m.group(2)
def do_extract_traffic_metrics(args):
fname = args['file']
# print(fname)
# print 'metric id = ' + metric['id']
#[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
#[ 3] 0.0- 1.0 sec 238 KBytes 1.95 Mbits/sec 0.980 ms 2/ 174 (1.1%)
# [ 3] 0.0- 1.0 sec 63.2 KBytes 517 Kbits/sec 0.146 ms 1/ 45 (2.2%)
# iperf_regex = '[\s*(\d+)]\s+\d+\.\d+-\s*(\d+\.\d+)\s+sec\s+(\d+).+(\d+\.\d+).+(\d+\.\d+).+(\d+)\/\s*(\d+)\s+\((\d+\.\d+)\%\)'
# ID 0.0 1.0 63.2 KByte 517 Kbits/s 0.146
iperf_regex = '\[\s*(\d+)\]\s+(\d+\.*\d*)-\s*(\d+\.*\d*)\s+sec\s+(\d+\.*\d*)\s+(\D+)\s+(\d+\.*\d*)\s+(\D+)\s+(\d+\.*\d*)\s+ms\s+(\d+)\/\s*(\d+)\s+\((\d+\.*\d*)\%\)'
# print 'iperf regex = ' + iperf_regex
count = 0
bw_min = 0
bw_max = 0
bw_mean = 0
bw_median = 0
jitter_min = 0
jitter_max = 0
jitter_mean = 0
jitter_median = 0
rl_min = 0
rl_max = 0
rl_mean = 0
rl_median = 0
interval_stop_max = 0
output = np.fromregex(fname,iperf_regex, [('id', np.int) , ('interval_start', np.float), ('interval_stop', np.float), ('transfer', np.float), ('transfer_uom', 'S20') ,('bandwidth', np.float), ('bandwidth_uom', 'S20') ,('jitter', np.float), ('lost', np.int) , ('total', np.int), ('rate_lost', np.float) ] )
count = output['id'].size -1
# remove last line that is an iperf result resume
if count > 0:
output= np.delete(output, (count), axis=0 )
# print output
bw_min = np.amin(output['bandwidth']);
bw_max = np.amax(output['bandwidth']);
bw_mean = np.mean(output['bandwidth']);
bw_median = np.median(output['bandwidth']);
jitter_min = np.amin(output['jitter']);
jitter_max = np.amax(output['jitter']);
jitter_mean = np.mean(output['jitter']);
jitter_median = np.median(output['jitter']);
rl_min = np.amin(output['rate_lost']);
rl_max = np.amax(output['rate_lost']);
rl_mean = np.mean(output['rate_lost']);
rl_median = np.median(output['rate_lost']);
interval_stop_max = np.amax(output['interval_stop']);
else :
count = 0
ret = { 'traffic_count' : count,
'traffic_buf' : output,
'bw_min' : bw_min,
'bw_max' : bw_max,
'bw_mean' : bw_mean,
'bw_median' : bw_median,
'jitter_min' : jitter_min,
'jitter_max' : jitter_max,
'jitter_mean' : jitter_mean,
'jitter_median' : jitter_median,
'rl_min' : rl_min,
'rl_max' : rl_max,
'rl_mean' : rl_mean,
'rl_median' : rl_median,
'interval_stop_max' : interval_stop_max
}
return(ret)
def do_img_traffic(traffic_data, fname):
if traffic_data['traffic_count'] > 0 :
output = traffic_data['traffic_buf']
fontP = FontProperties()
fontP.set_size('small')
fig = plt.figure(1)
ax1= plt.subplot(311)
plt.plot(output['interval_stop'], output['bandwidth'], color='b' )
ax1.set_title('Bandwidth (Mbits/s)')
ax1.set_ylim(ymin=-1)
ax1.set_xlim(xmax=np.amax(output['interval_stop']))
text='min: '+str(traffic_data['bw_min'])+'\nmax: '+str(traffic_data['bw_max'])+'\nmean: '+str(traffic_data['bw_mean'])+'\nmedian: '+str(traffic_data['bw_median'])
ax1.text( np.amax(output['interval_stop'])+10,0,text)
ax1.set_xlabel('time (s)')
ax1.set_ylabel(' ')
ax2=plt.subplot(312)
plt.plot(output['interval_stop'], output['jitter'], color='b' )
ax2.set_title('Jitter (ms)')
ax2.set_xlim(xmax=np.amax(output['interval_stop']))
ax2.set_ylim(ymin=-1)
text='min: '+str(traffic_data['jitter_min'])+'\nmax: '+str(traffic_data['jitter_max'])+'\nmean: '+str(traffic_data['jitter_mean'])+'\nmedian: '+str(traffic_data['jitter_median'])
ax2.text( np.amax(output['interval_stop'])+10,0,text)
ax2.set_xlabel('time (s)')
ax2.set_ylabel(' ')
ax3=plt.subplot(313)
plt.plot(output['interval_stop'], output['rate_lost'], color='b')
ax3.set_title('Loss rate %')
ax3.set_xlim(xmax=np.amax(output['interval_stop']))
ax3.set_ylim(ymin=-1)
text='min: '+str(traffic_data['rl_min'])+'\nmax: '+str(traffic_data['rl_max'])+'\nmean: '+str(traffic_data['rl_mean'])+'\nmedian: '+str(traffic_data['rl_median'])
ax3.text( np.amax(output['interval_stop'])+10,0,text)
ax3.set_xlabel('time (s)')
ax3.set_ylabel(' ')
# plt.title('Physical throughput ('+metric_def['unit_of_meas']+')')
# plt.xlabel('time (s)')
# plt.ylabel(metric_def['id'])
# Set graphic minimum Y axis
# -------------------------
# if traffic_data['bw_min'] == 0 :
# plt.ylim(ymin=-metric_def['min_limit']/10)
# else :
# plt.ylim(ymin=0)
# y_axis_max = 0
# if traffic_data['metric_max'] > metric_def['min_limit']:
# y_axis_max =traffic_data['metric_max']+traffic_data['metric_max']/10
# else:
# y_axis_max =metric_def['min_limit']+metric_def['min_limit']/10
#
# plt.ylim(ymax=y_axis_max)
plt.tight_layout()
# lgd = plt.legend(prop=fontP, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
mng = plt.get_current_fig_manager()
plt.savefig(fname, bbox_inches='tight')
plt.close()
def create_report_html(context):
fname = context['report_path']+"/index.html"
#
with open(fname, 'w') as f:
html = render_template('index.html', context)
f.write(html)
def create_test_report_detailed_html(context, fname ):
with open(fname, 'w') as f:
html = render_template('testcase_report.html', context)
f.write(html)
def check_cell_synchro(fname):
with open(fname, 'r') as f:
for line in f:
m = re.search('AUTOTEST Cell Sync \:', line)
if m :
#print line
return 'CELL_SYNCH'
return 'CELL_NOT_SYNCH'
def check_exec_seg_fault(fname):
with open(fname, 'r') as f:
for line in f:
m = re.search('Segmentation fault', line)
if m :
#print line
return 'SEG_FAULT'
return 'NO_SEG_FAULT'

View File

@@ -1,4 +1,27 @@
#!/bin/bash
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# \author Navid Nikaein, Rohit Gupta
#arg0 -> Name of executable
#args[1...N] -> arguments to be passed to executable

View File

@@ -1,33 +1,25 @@
#!/usr/bin/python
#******************************************************************************
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
import sys

View File

@@ -0,0 +1,2 @@
sudo /opt/ltebox/tools/stop_ltebox || true
sudo /opt/ltebox/tools/start_ltebox

View File

@@ -0,0 +1 @@
sudo /opt/ltebox/tools/stop_ltebox

View File

@@ -0,0 +1,2 @@
sudo /opt/ltebox/tools/stop_ltebox || true
sudo /opt/hss_sim0609/starthss_real

View File

@@ -0,0 +1,136 @@
The configuration for the bandrich in the test setup is a bit hackish.
Here come some notes explaining what we do here.
To get /dev/bandrich.data and /dev/bandrich.control (so that you don't need
to look for which /dev/ttyUSBx are used by your dongle, and always use
the same files, no matter what), add a udev file:
/etc/udev/rules.d/bandrich.rules
containing lines:
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="1a8d", ENV{ID_MODEL_ID}=="100d", ENV{ID_SERIAL_SHORT}=="357473040068155", ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="bandrich.data", MODE="0666"
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="1a8d", ENV{ID_MODEL_ID}=="100d", ENV{ID_SERIAL_SHORT}=="357473040068155", ENV{ID_USB_INTERFACE_NUM}=="02", SYMLINK+="bandrich.control", MODE="0666"
Change vendor_id/model_id/serial/interface num to match yours.
Use lsusb -v to find values.
At first we used /dev/ttyUSB2 linked to /dev/bandrich for both data (in
the wvdial configuration file) and control (in the python code, opening
/dev/bandrich the standard unix way and read and write into it, with no
special libusb commands).
But it turned out that using /dev/ttyUSB2 for data gives bad throughput
results. We tested downlink UDP at 15Mb/s but the maximum throughput for
a 5MHz cell was around 13, and we had a lot of packets lost at the iperf's
UDP level. Radio was looking fine (all packets acked correctly), so it was
not a radio problem. The dongle in a windows machine was working fine,
15Mbs/s. Using the wvdial configuration file from test setup v1 gave also
good results. The only difference was the use of /dev/ttyUSB0 instead of
/dev/ttyUSB2. Using /dev/ttyUSB0 solved the throughput issue.
But using /dev/ttyUSB0 for control in the pyton code did not work. The
output was incorrect.
So we decided to have /dev/bandrich.data linked to /dev/ttyUSB0 for data
(wvdial) and /dev/bandrich.control linked to /dev/ttyUSB2 for control
(in python code).
It may not be the correct way to go, but it seems to do the trick so far.
Your device may need some other solution.
Here, we get, as result of lsusb -v:
[SNIP]
Bus 003 Device 009: ID 1a8d:100d BandRich, Inc. 4G LTE adapter
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1a8d BandRich, Inc.
idProduct 0x100d 4G LTE adapter
bcdDevice 0.00
iManufacturer 10 BandRich, Inc.
iProduct 9 BandLuxe HSPA-LTE Adapter
iSerial 11 357473040068155
[SNIP]
You can also run:
udevadm monitor
and unplug/replug the dongle. It will print some information.
The command:
udevadm info --export-db
is also important to get the right identifier to put in ENV{}. (It also
gives the correct value.)
Here is extracted what we have for our dongle:
P: /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.2/3-1.2:1.2/ttyUSB2/tty/ttyUSB2
N: ttyUSB2
S: bandrich
S: serial/by-id/usb-BandRich__Inc._BandLuxe_HSPA-LTE_Adapter_357473040068155-if02-port0
S: serial/by-path/pci-0000:00:1a.0-usb-0:1.2:1.2-port0
E: DEVLINKS=/dev/bandrich /dev/serial/by-id/usb-BandRich__Inc._BandLuxe_HSPA-LTE_Adapter_357473040068155-if02-port0 /dev/serial/by-path/pci-0000:00:1a.0-usb-0:1.2:1.2-port0
E: DEVNAME=/dev/ttyUSB2
E: DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.2/3-1.2:1.2/ttyUSB2/tty/ttyUSB2
E: ID_BUS=usb
E: ID_MM_CANDIDATE=1
E: ID_MODEL=BandLuxe_HSPA-LTE_Adapter
E: ID_MODEL_ENC=BandLuxe\x20HSPA-LTE\x20Adapter
E: ID_MODEL_FROM_DATABASE=4G LTE adapter
E: ID_MODEL_ID=100d
E: ID_PATH=pci-0000:00:1a.0-usb-0:1.2:1.2
E: ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_2_1_2
E: ID_REVISION=0000
E: ID_SERIAL=BandRich__Inc._BandLuxe_HSPA-LTE_Adapter_357473040068155
E: ID_SERIAL_SHORT=357473040068155
E: ID_TYPE=generic
E: ID_USB_DRIVER=option
E: ID_USB_INTERFACES=:ffffff:020600:0a0000:080650:
E: ID_USB_INTERFACE_NUM=02
E: ID_VENDOR=BandRich__Inc.
E: ID_VENDOR_ENC=BandRich\x2c\x20Inc.
E: ID_VENDOR_FROM_DATABASE=BandRich, Inc.
E: ID_VENDOR_ID=1a8d
E: MAJOR=188
E: MINOR=2
E: SUBSYSTEM=tty
E: USEC_INITIALIZED=672068596
You can also run:
udevadm info -a -p /sys/bus/usb-serial/devices/ttyUSB0
udevadm info -a -p /sys/bus/usb-serial/devices/ttyUSB2
Note: after creating the udev files, you need to unplug/replug your
dongle for /dev/bandrich.data and /dev/bandrich.control to appear.
Note: the mode 0666 is for everyone to access the dongle (no need for
root privileges). If you prefer you can set it to 0600 (only root)
or 0660 (root and group).
Then you need to configure pppd, to get correct 'route' information when
you run wvdial.
The file /etc/ppp/peers/wvdial should have the following content:
noauth
name wvdial
usepeerdns
defaultroute
replacedefaultroute
The file wvdial.bandrich.conf has been created by copying some information
found on the Internet. Its content may not be fully correct. Adapt to your
situation. It seems to work here.

View File

@@ -0,0 +1,2 @@
echo $SERVER_IP
timeout -s 9 20s iperf -c $SERVER_IP -i1

View File

@@ -0,0 +1,3 @@
echo $SERVER_IP
echo $UDP_BANDWIDTH
timeout -s 9 20s iperf -c $SERVER_IP -i1 -u -b $UDP_BANDWIDTH

View File

@@ -0,0 +1,6 @@
sudo rm -rf /tmp/oai_test_setup
mkdir /tmp/oai_test_setup
cd /tmp/oai_test_setup
git clone $REPOSITORY_URL oai
cd oai
git checkout $COMMIT_ID

View File

@@ -0,0 +1,9 @@
cd /tmp/oai_test_setup/oai
source oaienv
cd cmake_targets
rm -rf log
mkdir -p log
echo $BUILD_ARGUMENTS
./build_oai $BUILD_ARGUMENTS
echo $BUILD_OUTPUT
ls $BUILD_OUTPUT

View File

@@ -0,0 +1,2 @@
echo $EXEC $EXEC_ARGS
$EXEC $EXEC_ARGS

View File

@@ -0,0 +1,8 @@
cd /tmp/oai_test_setup/oai
source oaienv
cd cmake_targets
rm -rf log
mkdir -p log
bash -c "$PRE_BUILD"
$BUILD_PROG $BUILD_ARGUMENTS
bash -c "$PRE_EXEC"

View File

@@ -0,0 +1,103 @@
import sys, os, select, re, time
def quit(r):
sys.stdout.flush()
os._exit(r)
class ModemResponse:
def __init__(self, retcode, retstring):
self.ret = retcode
self.data = retstring
class Modem:
def open(self):
self.i = os.open(self.devname, os.O_RDONLY)
self.o = os.open(self.devname, os.O_WRONLY)
#clear output of modem, if any is pending (not sure of this)
while True:
(ri, ro, re) = select.select([self.i], [], [self.i], 0)
if len(ri) == 0:
break
l = os.read(self.i, 65536)
print "WARNING: modem had unread data: '" + \
l.replace('\r', '\\r') + "'"
def __init__(self, devname):
self.devname = devname
self.i = -1
self.o = -1
self.open()
def send(self, s):
print "DEBUG: SEND TO MODEM: '" + s + "'"
os.write(self.o, s+"\r")
def recv(self):
return os.read(self.i, 65536)
def wait(self):
ok = '\r\nOK\r\n'
error = '\r\nERROR\r\n'
cme_error = '\r\nCME ERROR:[^\r]*\r\n'
no_carrier = '\r\nNO CARRIER\r\n'
l = ''
while True:
l = l + self.recv()
print "DEBUG: CURRENT MODEM RESPONSE: '" + \
l.replace('\r','\\r').replace('\n','\\n') + "'"
#AT returned 'things' are "\r\nXXXX\r\n", look for that.
#Check if last one matches 'ok', 'error' or 'cme_error'.
#(Hopefully this is enough and no other reply is possible.)
#This code accepts invalid responses from modem, ie. all
#that does not fit in the 'findall' is thrashed away, maybe
#we want to do something in this case?
res = re.findall('\r\n[^\r]*\r\n', l)
if len(res) == 0:
print "DEBUG: NO MATCH: wait for more input from modem"
continue
last_res = res[len(res)-1]
print "DEBUG: CURRENT LAST LINE: '" + \
last_res.replace('\r','\\r').replace('\n','\\n')+"'"
if re.match(ok, last_res) != None:
return ModemResponse(True, l)
if ( re.match(error, last_res) != None or
re.match(cme_error, last_res) != None or
re.match(no_carrier, last_res) != None):
return ModemResponse(False, l)
#TODO purge?
#re.purge()
def modem_reset_cycle(self):
#close all
os.close(self.i)
os.close(self.o)
self.i = -1
self.o = -1
print "DEBUG: RESET CYCLE: wait for modem to go away"
#wait for file descriptor to go away
while True:
try:
test = os.open(self.devname, os.O_RDONLY)
os.close(test)
time.sleep(0.1)
except BaseException, e:
break
print "DEBUG: RESET CYCLE: modem has gone away"
print "DEBUG: RESET CYCLE: wait for modem to come back"
#wait for file descriptor to be back, try to open it over and over
#TODO: use inotify here? (it's not in basic python as it seems)
while True:
try:
test = os.open(self.devname, os.O_RDONLY)
os.close(test)
break
except BaseException, e:
time.sleep(0.1)
print "DEBUG: RESET CYCLE: modem is back"
#back to business
self.open()

View File

@@ -0,0 +1,10 @@
#enable control+C reception (to be refined if it does not work)
stty isig intr ^C
cd /tmp/oai_test_setup/oai
source oaienv
cd cmake_targets/lte_build_oai/build
ulimit -c unlimited
sudo rm -f core
#sudo -E ./lte-softmodem -O $OPENAIR_DIR/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.conf
sudo -E ./lte-softmodem -O /tmp/enb.conf

View File

@@ -0,0 +1,4 @@
stty isig intr ^C
#timeout -s 9 20s iperf -s -i1
iperf -s -i1

View File

@@ -0,0 +1,4 @@
stty isig intr ^C
#timeout -s 9 20s iperf -s -i1 -u
iperf -s -i1 -u

View File

@@ -0,0 +1,24 @@
#enable control+C reception (to be refined if it does not work)
stty isig intr ^C
#If /dev/bandrich is not present when we start the test, what to do?
#The following commented lines are an attempt at solving this.
#This is not satisfying, so we rather do nothing.
##the UE got stuck once, I had to run usb_modeswitch by hand.
##So at this point, if /dev/bandrich does not exist, maybe the UE is
##stuck for whatever reason. Let's forcefully run usb_modeswitch.
#if [ ! -e /dev/bandrich ]; then sudo usb_modeswitch -v 1a8d -p 1000 -I -W -K; true; fi
#
##wait for /dev/bandrich (TODO: use inotify?)
##may fail if the bandrich is in a bad state
#while [ ! -e /dev/bandrich ]; do sleep 1; done
cd /tmp/oai_test_setup/oai
source oaienv
cd cmake_targets/autotests/v2/actions
python start_bandrich.py
sudo wvdial -C wvdial.bandrich.conf || true
python stop_bandrich.py

View File

@@ -0,0 +1,55 @@
import time
from modem import quit, Modem
try:
modem = Modem("/dev/bandrich.control")
#test that modem is there
print "INFO: check modem's presence"
modem.send('AT')
if modem.wait().ret != True:
print "ERROR: no modem?"
quit(1)
#activate the modem, be brutal and reset it too!
print "INFO: reset and activate the modem"
modem.send('AT+CFUN=1,1')
if modem.wait().ret != True:
print "ERROR: failed asking modem for activation"
quit(1)
#modem has gone! wait for it to pop up again
modem.modem_reset_cycle()
#wait for modem to be connected
#timeout after one minute
print "INFO: wait for modem to be connected (timeout: one minute)"
start_time = time.time()
while True:
modem.send('AT+CGATT?')
r = modem.wait()
if r.ret != True:
print "ERROR: failed checking attachment status of modem"
quit(1)
if "+CGATT: 1" in r.data:
break
if not "CGATT: 0" in r.data:
print "ERROR: bad data when checking attachment status of modem"
quit(1)
time.sleep(0.1)
if time.time() > start_time + 60:
print "ERROR: modem not connected after one minute, close modem"
modem.send('AT+CFUN=4')
r = modem.wait()
if r.ret != True:
print "ERROR: closing modem failed"
quit(1)
print "INFO: modem is connected"
except BaseException, e:
print "ERROR: " + str(e)
quit(1)
quit(0)

View File

@@ -0,0 +1,29 @@
import time
from modem import quit, Modem
try:
modem = Modem("/dev/bandrich.control")
#test that modem is there
print "INFO: check modem's presence"
modem.send('AT')
r = modem.wait()
if r.ret != True and "NO CARRIER" not in r.data:
print "ERROR: no modem?"
quit(1)
if "NO CARRIER" in r.data:
print "WARNING: 'NO CARRIER' detected, not sure if handled correctly"
#deactivate the modem
print "INFO: deactivate the modem"
modem.send('AT+CFUN=4')
if modem.wait().ret != True:
print "ERROR: failed asking modem for deactivation"
quit(1)
except BaseException, e:
print "ERROR: " + str(e)
quit(1)
quit(0)

View File

@@ -0,0 +1,36 @@
[Dialer Defaults]
Modem = /dev/bandrich.data
ISDN = off
Modem Type = Analog Modem
Baud = 9600
Init = ATZ
Init2 = AT+CPIN?
Init3 = AT+CGREG?
Init4 = AT+COPS?
Init5 = AT+CSQ
Init6 =
Init7 = AT+CGATT=1
Init8 =
Init9 =
Phone = *99***1#
Phone1 =
Phone2 =
Phone3 =
Phone4 =
Dial Prefix =
Dial Attempts = 1
Dial Command = ATM1L3DT
Ask Password = off
Password = ''
Username = ImaginLab
Auto Reconnect = off
Abort on Busy = off
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = on
;Minimize = off
;Dock = off
;Do NOT edit this file by hand!

View File

@@ -0,0 +1,389 @@
import threading, os, re
from utils import quickshell, log, TestFailed, do_tests
from task import Task, WAITLOG_SUCCESS
class alu_test:
def __init__(self,
epc, enb, ue,
openair,
user, password,
log_subdir,
env):
self.epc_machine = epc
self.enb_machine = enb
self.ue_machine = ue
self.openair_dir = openair
self.oai_user = user
self.oai_password = password
self.env = env
self.task_hss = None
self.task_enb = None
self.task_ue = None
self.logdir = openair + '/cmake_targets/autotests/log/' + log_subdir
quickshell('mkdir -p ' + self.logdir)
#event object used to wait for several tasks at once
self.event = threading.Event()
##########################################################################
# finish
##########################################################################
def finish(self):
#brutally kill tasks still running
#TODO: call 'wait', some processes may still be there as zombies
if self.task_hss != None and self.task_hss.alive():
self.task_hss.kill()
if self.task_enb != None and self.task_enb.alive():
self.task_enb.kill()
if self.task_ue != None and self.task_ue.alive():
self.task_ue.kill()
##########################################################################
# start_epc
##########################################################################
def start_epc(self):
#launch HSS, wait for prompt
log("INFO: ALU test: run HSS")
self.task_hss = Task("actions/alu_hss.bash",
"alu_hss",
self.epc_machine,
self.oai_user,
self.oai_password,
self.env,
self.logdir + "/alu_hss." + self.epc_machine,
event=self.event)
self.task_hss.waitlog('S6AS_SIM-> ')
#then launch EPC, wait for connection on HSS side
log("INFO: ALU test: run EPC")
task_epc = Task("actions/alu_epc.bash",
"ALU EPC",
self.epc_machine,
self.oai_user,
self.oai_password,
self.env,
self.logdir + "/alu_epc." + self.epc_machine)
ret = task_epc.wait()
if ret != 0:
log("ERROR: EPC start failure");
raise TestFailed()
self.task_hss.waitlog('Connected\n')
##########################################################################
# stop_epc
##########################################################################
def stop_epc(self):
#stop EPC, wait for disconnection on HSS side
log("INFO: ALU test: stop EPC")
task_epc = Task("actions/alu_epc_stop.bash",
"alu_epc_stop",
self.epc_machine,
self.oai_user,
self.oai_password,
self.env,
self.logdir + "/alu_epc_stop." + self.epc_machine)
ret = task_epc.wait()
if ret != 0:
log("ERROR: ALU test: ALU EPC stop failed")
raise TestFailed()
self.task_hss.waitlog('Disconnected\n')
log("INFO: ALU test: stop HSS")
self.task_hss.sendnow("exit\n")
ret = self.task_hss.wait()
if ret != 0:
log("ERROR: ALU test: ALU HSS failed")
raise TestFailed()
##########################################################################
# compile_enb
##########################################################################
def compile_enb(self, build_arguments):
log("INFO: ALU test: compile softmodem")
envcomp = list(self.env)
envcomp.append('BUILD_ARGUMENTS="' + build_arguments + '"')
#we don't care about BUILD_OUTPUT but required (TODO: change that)
envcomp.append('BUILD_OUTPUT=/')
logdir = self.logdir + "/compile_log"
remote_files = "'/tmp/oai_test_setup/oai/cmake_targets/log/*'"
post_action = "mkdir -p "+ logdir + \
" && sshpass -p " + self.oai_password + \
" scp -r " + self.oai_user + \
"@" + self.enb_machine + ":" + remote_files + " " + logdir + \
" || true"
task = Task("actions/compilation.bash",
"compile_softmodem",
self.enb_machine,
self.oai_user,
self.oai_password,
envcomp,
self.logdir + "/compile_softmodem." + self.enb_machine,
post_action=post_action)
ret = task.wait()
if ret != 0:
log("ERROR: softmodem compilation failure");
raise TestFailed()
task.postaction()
##########################################################################
# start_enb
##########################################################################
def start_enb(self, config_file):
#copy wanted configuration file
quickshell("sshpass -p " + self.oai_password +
" scp config/" + config_file + " " +
self.oai_user + "@" + self.enb_machine + ":/tmp/enb.conf")
#run softmodem
log("INFO: ALU test: run softmodem with configuration file " +
config_file)
self.task_enb = Task("actions/run_enb.bash",
"run_softmodem",
self.enb_machine,
self.oai_user,
self.oai_password,
self.env,
self.logdir + "/run_softmodem." + self.enb_machine,
event=self.event)
self.task_enb.waitlog('got sync')
##########################################################################
# stop_enb
##########################################################################
def stop_enb(self):
log("INFO: ALU test: stop softmodem")
self.task_enb.sendnow("%c" % 3)
ret = self.task_enb.wait()
if ret != 0:
log("ERROR: ALU test: softmodem failed")
#not sure if we have to quit here or not
#os._exit(1)
##########################################################################
# start_bandrich_ue
##########################################################################
def start_bandrich_ue(self):
log("INFO: ALU test: start bandrich UE")
self.task_ue = Task("actions/start_bandrich.bash",
"start_bandrich",
self.ue_machine,
self.oai_user,
self.oai_password,
self.env,
self.logdir + "/start_bandrich." + self.ue_machine,
event=self.event)
self.task_ue.waitlog("local IP address", event=self.event)
self.event.wait()
#at this point one task has died or we have the line in the log
if self.task_ue.waitlog_state != WAITLOG_SUCCESS:
log("ERROR: ALU test: bandrich UE did not connect")
raise TestFailed()
self.event.clear()
if ( not self.task_enb.alive() or
not self.task_hss.alive() or
not self.task_ue.alive()):
log("ERROR: ALU test: eNB, HSS or UE task died")
raise TestFailed()
#get bandrich UE IP
l = open(self.task_ue.logfile, "r").read()
self.bandrich_ue_ip = re.search("local IP address (.*)\n", l) \
.groups()[0]
log("INFO: ALU test: bandrich UE IP address: " + self.bandrich_ue_ip)
##########################################################################
# stop_bandrich_ue
##########################################################################
def stop_bandrich_ue(self):
log("INFO: ALU test: stop bandrich UE")
self.task_ue.sendnow("%c" % 3)
ret = self.task_ue.wait()
if ret != 0:
log("ERROR: ALU test: task bandrich UE failed")
#not sure if we have to quit here or not
#os._exit(1)
##########################################################################
# _do_traffic (internal function, do not call out of the class)
##########################################################################
def _do_traffic(self, name,
server_code, server_machine, server_ip,
client_code, client_machine,
waitlog,
server_logfile, client_logfile,
udp_bandwidth=None):
log("INFO: ALU test: run traffic: " + name)
log("INFO: ALU test: launch server")
task_traffic_server = Task("actions/" + server_code + ".bash",
server_logfile,
server_machine,
self.oai_user,
self.oai_password,
self.env,
self.logdir + "/" + server_logfile + "." + server_machine,
event=self.event)
task_traffic_server.waitlog(waitlog)
env = list(self.env)
if udp_bandwidth != None:
env.append("UDP_BANDWIDTH=" + udp_bandwidth)
env.append("SERVER_IP=" + server_ip)
log("INFO: ALU test: launch client")
task_traffic_client = Task("actions/" + client_code + ".bash",
client_logfile,
client_machine,
self.oai_user,
self.oai_password,
env,
self.logdir + "/" + client_logfile + "." + client_machine,
event=self.event)
log("INFO: ALU test: wait for client to finish (or some error)")
self.event.wait()
log("DEBUG: event.wait() done")
if ( not self.task_enb.alive() or
not self.task_hss.alive() or
not self.task_ue.alive()):
log("ERROR: unexpected task exited, test failed, kill all")
if task_traffic_client.alive():
task_traffic_client.kill()
if self.task_enb.alive():
self.task_enb.kill()
if self.task_ue.alive():
self.task_ue.kill()
ret = task_traffic_client.wait()
if ret != 0:
log("ERROR: ALU test: downlink traffic failed")
#not sure if we have to quit here or not
#os._exit(1)
#stop downlink server
#log("INFO: ALU test: stop server (kill ssh connection)")
#task_traffic_server.kill()
log("INFO: ALU test: stop server (ctrl+z then kill -9 %1)")
task_traffic_server.sendnow("%ckill -9 %%1 || true\n" % 26)
log("INFO: ALU test: wait for server to quit")
task_traffic_server.wait()
self.event.clear()
if ( not self.task_enb.alive() or
not self.task_hss.alive() or
not self.task_ue.alive()):
log("ERROR: ALU test: eNB, HSS or UE task died")
raise TestFailed()
##########################################################################
# dl_tcp
##########################################################################
def dl_tcp(self):
self._do_traffic("bandrich downlink TCP",
"server_tcp", self.ue_machine, self.bandrich_ue_ip,
"client_tcp", self.epc_machine,
"Server listening on TCP port 5001",
"bandrich_downlink_tcp_server",
"bandrich_downlink_tcp_client")
##########################################################################
# ul_tcp
##########################################################################
def ul_tcp(self):
self._do_traffic("bandrich uplink TCP",
"server_tcp", self.epc_machine, "192.172.0.1",
"client_tcp", self.ue_machine,
"Server listening on TCP port 5001",
"bandrich_uplink_tcp_server",
"bandrich_uplink_tcp_client")
##########################################################################
# dl_udp
##########################################################################
def dl_udp(self, bandwidth):
self._do_traffic("bandrich downlink UDP",
"server_udp", self.ue_machine, self.bandrich_ue_ip,
"client_udp", self.epc_machine,
"Server listening on UDP port 5001",
"bandrich_downlink_udp_server",
"bandrich_downlink_udp_client",
udp_bandwidth=bandwidth)
##########################################################################
# ul_udp
##########################################################################
def ul_udp(self, bandwidth):
self._do_traffic("bandrich uplink UDP",
"server_udp", self.epc_machine, "192.172.0.1",
"client_udp", self.ue_machine,
"Server listening on UDP port 5001",
"bandrich_uplink_udp_server",
"bandrich_uplink_udp_client",
udp_bandwidth=bandwidth)
##############################################################################
# run_b210_alu
##############################################################################
def run_b210_alu(tests, openair_dir, oai_user, oai_password, env):
if not do_tests(tests['b210']['alu']):
return
#compile eNB
alu = alu_test(epc='amerique', enb='hutch', ue='stevens',
openair=openair_dir,
user=oai_user, password=oai_password,
log_subdir='enb_tests/b210_alu/compile_enb',
env=env)
try:
alu.compile_enb("--eNB -w USRP -x -c --disable-cpu-affinity")
except BaseException, e:
log("ERROR: ALU test failed: eNB compilation failed: " + str(e))
return
#run tests
udp_dl_bandwidth = { "5" : "15M",
"10" : "30M",
"20" : "60M" }
udp_ul_bandwidth = { "5" : "7M",
"10" : "15M",
"20" : "15M" }
for bw in ('5', '10', '20'):
if do_tests(tests['b210']['alu'][bw]):
log("INFO: ALU test: run tests for bandwidth " + bw + " MHz")
ctest = tests['b210']['alu'][bw]
alu = alu_test(epc='amerique', enb='hutch', ue='stevens',
openair=openair_dir,
user=oai_user, password=oai_password,
log_subdir='enb_tests/b210_alu/' + bw,
env=env)
try:
alu.start_epc()
alu.start_enb("enb.band7.tm1.usrpb210." + bw + "MHz.conf")
if do_tests(ctest['bandrich']):
alu.start_bandrich_ue()
if do_tests(ctest['bandrich']['tcp']['dl']): alu.dl_tcp()
if do_tests(ctest['bandrich']['tcp']['ul']): alu.ul_tcp()
if do_tests(ctest['bandrich']['udp']['dl']):
alu.dl_udp(udp_dl_bandwidth[bw])
if do_tests(ctest['bandrich']['udp']['ul']):
alu.ul_udp(udp_ul_bandwidth[bw])
alu.stop_bandrich_ue()
alu.stop_enb()
alu.stop_epc()
except BaseException, e:
log("ERROR: ALU test failed: " + str(e))
alu.finish()

View File

@@ -0,0 +1,175 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "eNodeB_3GPP";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2660000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 50;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 1;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -24;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -103;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -104;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.19/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.19/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -0,0 +1,175 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "eNodeB_3GPP";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2660000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 100;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 1;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -24;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -103;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -104;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.19/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.19/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -0,0 +1,175 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "eNodeB_3GPP";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2660000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 1;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -24;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -103;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -104;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.19/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.19/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -0,0 +1,104 @@
import os, subprocess, time, fcntl, termios, tty, signal, thread
from utils import log
class connection:
def __init__(self, description, host, user, password):
self.description = description
self.host = host
self.user = user
self.password = password
self.sendlock = thread.allocate_lock()
try:
(pid, fd) = os.forkpty()
except BaseException, e:
log("ERROR: forkpty for '" + description + "': " + e)
(pid, fd) = (-1, -1)
if pid == -1:
log("ERROR: creating connection for '" + description + "'")
os._exit(1)
# child process, run ssh
if pid == 0:
try:
os.execvp('sshpass', ['sshpass', '-p', password,
'ssh', user + '@' + host])
except BaseException, e:
log("ERROR: execvp for '" + description + "': " + e)
log("ERROR: execvp failed for '" + description + "'")
os._exit(1)
# parent process
# make the TTY raw to avoid getting input printed and no ^M
try:
tty.setraw(fd, termios.TCSANOW)
except BaseException, e:
log("ERROR: failed configuring TTY: " + str(e))
os._exit(1)
# try:
# fcntl.fcntl(fd, fcntl.F_SETFL,
# fcntl.fcntl(fd, fcntl.F_GETFL) | os.O_NONBLOCK)
# except:
# log("ERROR: fcntl failed for '" + description + "'")
# os._exit(1)
self.pid = pid
self.fd = fd
self.active = True
self.retcode = -1
def send(self, string):
if self.active == False:
log("ERROR: send: child is dead for '" + self.description + "'")
return -1
try:
(pid, out) = os.waitpid(self.pid, os.WNOHANG)
except BaseException, e:
log("ERROR: send: waitpid failed for '" + self.description +
"': " + str(e))
(pid, out) = (self.pid, 1)
if pid != 0:
log("ERROR: send: child process dead for '" +
self.description + "'")
try:
os.close(self.fd)
except BaseException, e:
#we don't care about errors at this point
pass
self.active = False
self.retcode = out
return -1
self.sendlock.acquire()
length = len(string)
while length != 0:
try:
ret = os.write(self.fd, string)
except BaseException, e:
log("ERROR: send fails for '" + self.description + "': " +
str(e))
os._exit(1)
if ret == 0:
log("ERROR: send: write returns 0 for '" +
self.description + "'")
os._exit(1)
length = length - ret
string = string[ret:]
self.sendlock.release()
return 0
def kill(self, signal=signal.SIGTERM):
log("INFO: kill connection '" + self.description + "'")
try:
os.kill(self.pid, signal)
except BaseException, e:
log("ERROR: connection.kill: " + str(e))

View File

@@ -0,0 +1,79 @@
import threading, os
from utils import log
class MachineWaiterThread(threading.Thread):
def __init__(self, machine, tasks):
threading.Thread.__init__(self)
self.machine = machine
self.tasks = tasks
def run(self):
try:
for task in self.tasks:
ret = task.wait()
if ret != 0:
log("ERROR: task '" + task.description + "' failed " +
"on machine " + self.machine.name)
task.postaction()
self.machine.unbusy()
except BaseException, e:
log("ERROR: MachineWaiterThread: " + str(e))
os._exit(1)
class Machine():
def __init__(self, machine, cond):
self.name = machine
self.free = True
self.cond = cond
def busy(self, tasks):
waiter = MachineWaiterThread(self, tasks)
waiter.start()
def unbusy(self):
self.cond.acquire()
self.free = True
self.cond.notify()
self.cond.release()
class MachineList():
def __init__(self, list):
self.list = []
self.cond = threading.Condition()
for m in list:
self.list.append(Machine(m, self.cond))
def get_free_machine(self):
try:
self.cond.acquire()
while True:
free_machine = None
for m in self.list:
if m.free == True:
free_machine = m
break
if free_machine != None:
break
self.cond.wait()
free_machine.free = False
self.cond.release()
except BaseException, e:
log("ERROR: machine_list: " + str(e))
os._exit(1)
return free_machine
def wait_all_free(self):
try:
self.cond.acquire()
while True:
all_free = True
for m in self.list:
if m.free == False:
all_free = False
break
if all_free == True:
break
self.cond.wait()
self.cond.release()
except BaseException, e:
log("ERROR: machine_list: " + str(e))
os._exit(1)

View File

@@ -0,0 +1,687 @@
#!/usr/bin/python
import os, re, sys, time, threading, thread
import xml.etree.ElementTree as ET
from utils import test_in_list, quickshell, log
from task import Task, WAITLOG_SUCCESS, WAITLOG_FAILURE
from machine_list import MachineList
oai_user = os.environ.get('OAI_USER')
oai_password = os.environ.get('OAI_PASS')
requested_tests = os.environ.get('OAI_TEST_CASE_GROUP')
machines = os.environ.get('MACHINELIST')
generic_machines = os.environ.get('MACHINELISTGENERIC')
result_dir = os.environ.get('RESULT_DIR')
nruns_softmodem = os.environ.get('NRUNS_LTE_SOFTMODEM')
openair_dir = os.environ.get('OPENAIR_DIR')
some_undef = False
if (oai_user == None) :
log("variable OAI_USER is not defined")
some_undef = True
if (oai_password == None) :
log("variable OAI_PASS is not defined")
some_undef = True
if (requested_tests == None) :
log("variable OAI_TEST_CASE_GROUP is not defined")
some_undef = True
if (machines == None) :
log("variable MACHINELIST is not defined")
some_undef = True
if (generic_machines == None) :
log("variable MACHINELISTGENERIC is not defined")
some_undef = True
if (result_dir == None) :
log("variable RESULT_DIR is not defined")
some_undef = True
if (nruns_softmodem == None) :
log("variable NRUNS_LTE_SOFTMODEM is not defined")
some_undef = True
if (openair_dir == None) :
log("variable OPENAIR_DIR is not defined")
some_undef = True
if (some_undef == True):
os._exit(1)
requested_tests = requested_tests .replace('"','')
machines = machines .replace('"','')
generic_machines = generic_machines .replace('"','')
xml_test_file = os.environ.get('OPENAIR_DIR') + \
"/cmake_targets/autotests/test_case_list.xml"
xmlTree = ET.parse(xml_test_file)
xmlRoot = xmlTree.getroot()
exclusion_tests=xmlRoot.findtext('TestCaseExclusionList',default='')
all_tests=xmlRoot.findall('testCase')
exclusion_tests=exclusion_tests.split()
requested_tests=requested_tests.split()
#check that exclusion tests are well formatted
#(6 digits or less than 6 digits followed by +)
for test in exclusion_tests:
if (not re.match('^[0-9]{6}$', test) and
not re.match('^[0-9]{1,5}\+$', test)):
log("ERROR: exclusion test is invalidly formatted: " + test)
os._exit(1)
#check that requested tests are well formatted
#(6 digits or less than 6 digits followed by +)
#be verbose
for test in requested_tests:
if (re.match('^[0-9]{6}$', test) or
re.match('^[0-9]{1,5}\+$', test)):
log("INFO: test group/case requested: " + test)
else:
log("ERROR: requested test is invalidly formatted: " + test)
os._exit(1)
#get the list of tests to be done
todo_tests=[]
for test in all_tests:
if (test_in_list(test.get('id'), requested_tests) and
not test_in_list(test.get('id'), exclusion_tests)):
log("INFO: test will be run: " + test.get('id'))
todo_tests.append(test)
else:
log("INFO: test will be skipped: " + test.get('id'))
#get commit ID to use
commit_id = quickshell("git rev-parse --verify HEAD").replace('\n','')
if (len(commit_id) != 20*2):
log("ERROR: bad commit '" + commit_id + "'")
log("INFO: test for commit " + commit_id)
#get repository URL
repository_url = quickshell("git config remote.origin.url").replace('\n','')
log("INFO: repository URL: " + repository_url)
#prepare environment for tasks
env = []
env.append("REPOSITORY_URL=" + repository_url)
env.append("COMMIT_ID=" + commit_id)
#clone repository on all machines in the test setup
tasks=[]
for machine in machines.split():
tasks.append(Task("actions/clone_repository.bash",
"clone repository on " + machine,
machine,
oai_user,
oai_password,
env,
openair_dir + "/cmake_targets/autotests/log/clone." \
+ machine))
for task in tasks:
log("INFO: wait for task: " + task.description)
ret = task.wait()
if ret != 0 or not "TEST_SETUP_SUCCESS" in open(task.logfile).read():
log("ERROR: task failed: " + task.description)
os._exit(1)
##############################################################################
# run compilation tests #
##############################################################################
machine_list = MachineList(generic_machines.split())
for test in todo_tests:
action = test.findtext('class')
if action != 'compilation':
continue
id = test.get('id')
machine = machine_list.get_free_machine()
log("INFO: start " + action + " test " + id + " on machine " +
machine.name)
tasks = []
runenv = list(env)
runenv.append('OPENAIR_DIR=/tmp/oai_test_setup/oai')
runenv.append('BUILD_ARGUMENTS="'
+ test.findtext('compile_prog_args')
+ '"')
runenv.append('BUILD_OUTPUT="'
+ test.findtext('compile_prog_out')
.replace('\n','')
+ '"')
logdir = openair_dir +"/cmake_targets/autotests/log/"+ id +"/compile_log"
remote_files = "'/tmp/oai_test_setup/oai/cmake_targets/log/*'"
post_action = "mkdir -p "+ logdir + \
" && sshpass -p " + oai_password + " scp -r " + oai_user + \
"@" + machine.name + ":" + remote_files + " " + logdir + \
" || true"
tasks.append(Task("actions/" + action + ".bash",
action + " of test " + id + " on " + machine.name,
machine.name,
oai_user,
oai_password,
runenv,
openair_dir + "/cmake_targets/autotests/log/"
+ id + "."
+ machine.name,
post_action=post_action))
machine.busy(tasks)
##############################################################################
# run execution tests #
##############################################################################
class ExecutionThread(threading.Thread):
def __init__(self, id, machine, test):
threading.Thread.__init__(self)
self.machine = machine
self.id = id
self.test = test
def run(self):
id = self.id
machine = self.machine
test = self.test
# step 1: compile
log("INFO: start compilation of test " + id + " on machine " +
machine.name)
tasks = []
runenv = list(env)
runenv.append('OPENAIR_DIR=/tmp/oai_test_setup/oai')
runenv.append('PRE_BUILD="'
+ test.findtext('pre_compile_prog')
+ '"')
runenv.append('BUILD_PROG="'
+ test.findtext('compile_prog')
+ '"')
runenv.append('BUILD_ARGUMENTS="'
+ test.findtext('compile_prog_args')
+ '"')
runenv.append('PRE_EXEC="'
+ test.findtext('pre_exec') + " "
+ test.findtext('pre_exec_args')
+ '"')
logdir = openair_dir +"/cmake_targets/autotests/log/"+ id + \
"/compile_log"
remote_files = "'/tmp/oai_test_setup/oai/cmake_targets/log/*'"
post_action = "mkdir -p "+ logdir + \
" && sshpass -p " + oai_password + \
" scp -r " + oai_user + "@" + machine.name + ":" + \
remote_files + " " + logdir + \
" || true"
task = Task("actions/execution_compile.bash",
"compilation of test " + id + " on " + machine.name,
machine.name,
oai_user,
oai_password,
runenv,
openair_dir + "/cmake_targets/autotests/log/"
+ id + "_compile."
+ machine.name,
post_action=post_action)
ret = task.wait()
task.postaction()
if ret != 0:
log("ERROR: compilation of test " + id + " failed: " + str(ret))
machine.unbusy()
return
#step 2: run all tests
nruns = test.findtext('nruns')
args = test.findtext('main_exec_args')
i = 0
for arg in args.splitlines():
i = i+1
runenv2 = list(runenv)
runenv2.append('OPENAIR_TARGET=/tmp/oai_test_setup/oai/targets')
runenv2.append('EXEC="'
+ test.findtext('main_exec')
+ '"')
runenv2.append('EXEC_ARGS="' + arg + '"')
for run in range(int(nruns)):
log("INFO: start execution of test " + id + " case " +
str(i) + " run " + str(run) + " on machine " +
machine.name)
task =Task("actions/execution.bash",
"execution of test " + id + " on " + machine.name,
machine.name,
oai_user,
oai_password,
runenv2,
openair_dir + "/cmake_targets/autotests/log/"
+ id + "_case_" + str(i) + "_run_" + str(run)
+ "." + machine.name)
ret = task.wait()
if ret != 0:
log("ERROR: execution of test " +id+ " failed: " +
str(ret))
machine.unbusy()
for test in todo_tests:
action = test.findtext('class')
if action != 'execution':
continue
id = test.get('id')
machine = machine_list.get_free_machine()
ExecutionThread(id, machine, test).start()
#wait for compilation/execution tests to be finished
#log only if some compilation/execution tests are actually done
for test in todo_tests:
action = test.findtext('class')
if action == 'execution' or action == 'compilation':
log("INFO: requested compilation/execution tests " +
"have been launched, waiting for completion")
break
machine_list.wait_all_free()
##############################################################################
# run eNB softmodem tests #
##############################################################################
tests = {
'b210' : {
'alu' : {
'5' : {
'bandrich' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }},
'sony' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }}},
'10' : {
'bandrich' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }},
'sony' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }}},
'20' : {
'bandrich' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }},
'sony' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }}}},
'openair-cn' : {}
},
'x310' : {
'alu' : {},
'openair-cn' : {}
},
'exmimo2' : {
'alu' : {},
'openair-cn' : {}
}
}
todo_tests_ids = []
for test in todo_tests:
todo_tests_ids.append(test.get('id'))
for test in todo_tests_ids:
if test=='015500':tests['b210']['alu'][ '5']['bandrich']['udp']['ul']=True
if test=='015501':tests['b210']['alu']['10']['bandrich']['udp']['ul']=True
if test=='015502':tests['b210']['alu']['20']['bandrich']['udp']['ul']=True
if test=='015503':tests['b210']['alu'][ '5']['bandrich']['udp']['dl']=True
if test=='015504':tests['b210']['alu']['10']['bandrich']['udp']['dl']=True
if test=='015505':tests['b210']['alu']['20']['bandrich']['udp']['dl']=True
if test=='015506':log('WARNING: skip test ' + test) #TODO
if test=='015507':log('WARNING: skip test ' + test) #TODO
if test=='015508':log('WARNING: skip test ' + test) #TODO
if test=='015509':log('WARNING: skip test ' + test) #TODO
if test=='015510':log('WARNING: skip test ' + test) #TODO
if test=='015511':log('WARNING: skip test ' + test) #TODO
if test=='015512':tests['b210']['alu'][ '5']['bandrich']['tcp']['ul']=True
if test=='015513':tests['b210']['alu']['10']['bandrich']['tcp']['ul']=True
if test=='015514':tests['b210']['alu']['20']['bandrich']['tcp']['ul']=True
if test=='015515':tests['b210']['alu'][ '5']['bandrich']['tcp']['dl']=True
if test=='015516':tests['b210']['alu']['10']['bandrich']['tcp']['dl']=True
if test=='015517':tests['b210']['alu']['20']['bandrich']['tcp']['dl']=True
if test=='015518':log('WARNING: skip test ' + test) #TODO
if test=='015519':log('WARNING: skip test ' + test) #TODO
if test=='015520':log('WARNING: skip test ' + test) #TODO
if test=='015521':log('WARNING: skip test ' + test) #TODO
if test=='015522':log('WARNING: skip test ' + test) #TODO
if test=='015523':log('WARNING: skip test ' + test) #TODO
if test=='015600':log('WARNING: skip test ' + test) #TODO
if test=='015601':log('WARNING: skip test ' + test) #TODO
if test=='015602':log('WARNING: skip test ' + test) #TODO
if test=='015603':log('WARNING: skip test ' + test) #TODO
if test=='015604':log('WARNING: skip test ' + test) #TODO
if test=='015605':log('WARNING: skip test ' + test) #TODO
if test=='015700':log('WARNING: skip test ' + test) #TODO
if test=='015701':log('WARNING: skip test ' + test) #TODO
if test=='015702':log('WARNING: skip test ' + test) #TODO
if test=='015703':log('WARNING: skip test ' + test) #TODO
if test=='015704':log('WARNING: skip test ' + test) #TODO
if test=='015705':log('WARNING: skip test ' + test) #TODO
if test=='015800':log('WARNING: skip test ' + test) #TODO
if test=='015801':log('WARNING: skip test ' + test) #TODO
if test=='015802':log('WARNING: skip test ' + test) #TODO
if test=='015803':log('WARNING: skip test ' + test) #TODO
if test=='015804':log('WARNING: skip test ' + test) #TODO
if test=='015805':log('WARNING: skip test ' + test) #TODO
if test=='015806':log('WARNING: skip test ' + test) #TODO
if test=='015807':log('WARNING: skip test ' + test) #TODO
if test=='015808':log('WARNING: skip test ' + test) #TODO
if test=='015809':log('WARNING: skip test ' + test) #TODO
if test=='015810':log('WARNING: skip test ' + test) #TODO
if test=='015811':log('WARNING: skip test ' + test) #TODO
if test=='015812':log('WARNING: skip test ' + test) #TODO
if test=='015813':log('WARNING: skip test ' + test) #TODO
if test=='015814':log('WARNING: skip test ' + test) #TODO
if test=='015815':log('WARNING: skip test ' + test) #TODO
if test=='015816':log('WARNING: skip test ' + test) #TODO
if test=='015817':log('WARNING: skip test ' + test) #TODO
if test=='015818':log('WARNING: skip test ' + test) #TODO
if test=='015819':log('WARNING: skip test ' + test) #TODO
if test=='015820':log('WARNING: skip test ' + test) #TODO
if test=='015821':log('WARNING: skip test ' + test) #TODO
if test=='015822':log('WARNING: skip test ' + test) #TODO
if test=='015823':log('WARNING: skip test ' + test) #TODO
if test=='016000':log('WARNING: skip test ' + test) #TODO
if test=='016001':log('WARNING: skip test ' + test) #TODO
if test=='016002':log('WARNING: skip test ' + test) #TODO
if test=='016003':log('WARNING: skip test ' + test) #TODO
if test=='016004':log('WARNING: skip test ' + test) #TODO
if test=='016005':log('WARNING: skip test ' + test) #TODO
if test=='016100':log('WARNING: skip test ' + test) #TODO
if test=='016101':log('WARNING: skip test ' + test) #TODO
if test=='016102':log('WARNING: skip test ' + test) #TODO
if test=='016103':log('WARNING: skip test ' + test) #TODO
if test=='016104':log('WARNING: skip test ' + test) #TODO
if test=='016105':log('WARNING: skip test ' + test) #TODO
if test=='016300':log('WARNING: skip test ' + test) #TODO
if test=='016301':log('WARNING: skip test ' + test) #TODO
if test=='016302':log('WARNING: skip test ' + test) #TODO
if test=='016303':log('WARNING: skip test ' + test) #TODO
if test=='016304':log('WARNING: skip test ' + test) #TODO
if test=='016305':log('WARNING: skip test ' + test) #TODO
if test=='016500':log('WARNING: skip test ' + test) #TODO
if test=='016501':log('WARNING: skip test ' + test) #TODO
if test=='016502':log('WARNING: skip test ' + test) #TODO
if test=='016503':log('WARNING: skip test ' + test) #TODO
if test=='016504':log('WARNING: skip test ' + test) #TODO
if test=='016505':log('WARNING: skip test ' + test) #TODO
if test=='017000':log('WARNING: skip test ' + test) #TODO
if test=='017001':log('WARNING: skip test ' + test) #TODO
if test=='017002':log('WARNING: skip test ' + test) #TODO
if test=='017003':log('WARNING: skip test ' + test) #TODO
if test=='017004':log('WARNING: skip test ' + test) #TODO
if test=='017005':log('WARNING: skip test ' + test) #TODO
if test=='017500':log('WARNING: skip test ' + test) #TODO
if test=='017501':log('WARNING: skip test ' + test) #TODO
if test=='017502':log('WARNING: skip test ' + test) #TODO
if test=='017503':log('WARNING: skip test ' + test) #TODO
if test=='017504':log('WARNING: skip test ' + test) #TODO
if test=='017505':log('WARNING: skip test ' + test) #TODO
if test=='018000':log('WARNING: skip test ' + test) #TODO
if test=='018001':log('WARNING: skip test ' + test) #TODO
if test=='018002':log('WARNING: skip test ' + test) #TODO
if test=='018003':log('WARNING: skip test ' + test) #TODO
if test=='018004':log('WARNING: skip test ' + test) #TODO
if test=='018005':log('WARNING: skip test ' + test) #TODO
if test=='018500':log('WARNING: skip test ' + test) #TODO
if test=='018501':log('WARNING: skip test ' + test) #TODO
if test=='018502':log('WARNING: skip test ' + test) #TODO
if test=='018503':log('WARNING: skip test ' + test) #TODO
if test=='018504':log('WARNING: skip test ' + test) #TODO
if test=='018505':log('WARNING: skip test ' + test) #TODO
if test=='025500':log('WARNING: skip test ' + test) #TODO
if test=='025501':log('WARNING: skip test ' + test) #TODO
if test=='025502':log('WARNING: skip test ' + test) #TODO
if test=='025503':log('WARNING: skip test ' + test) #TODO
if test=='025504':log('WARNING: skip test ' + test) #TODO
if test=='025505':log('WARNING: skip test ' + test) #TODO
if test=='025506':log('WARNING: skip test ' + test) #TODO
if test=='025507':log('WARNING: skip test ' + test) #TODO
if test=='025508':log('WARNING: skip test ' + test) #TODO
if test=='025509':log('WARNING: skip test ' + test) #TODO
if test=='025510':log('WARNING: skip test ' + test) #TODO
if test=='025511':log('WARNING: skip test ' + test) #TODO
if test=='025512':log('WARNING: skip test ' + test) #TODO
if test=='025513':log('WARNING: skip test ' + test) #TODO
if test=='025514':log('WARNING: skip test ' + test) #TODO
if test=='025515':log('WARNING: skip test ' + test) #TODO
if test=='025516':log('WARNING: skip test ' + test) #TODO
if test=='025517':log('WARNING: skip test ' + test) #TODO
if test=='025518':log('WARNING: skip test ' + test) #TODO
if test=='025519':log('WARNING: skip test ' + test) #TODO
if test=='025520':log('WARNING: skip test ' + test) #TODO
if test=='025521':log('WARNING: skip test ' + test) #TODO
if test=='025522':log('WARNING: skip test ' + test) #TODO
if test=='025523':log('WARNING: skip test ' + test) #TODO
if test=='025700':log('WARNING: skip test ' + test) #TODO
if test=='025701':log('WARNING: skip test ' + test) #TODO
if test=='025702':log('WARNING: skip test ' + test) #TODO
if test=='025703':log('WARNING: skip test ' + test) #TODO
if test=='025704':log('WARNING: skip test ' + test) #TODO
if test=='025705':log('WARNING: skip test ' + test) #TODO
from alu_test import run_b210_alu
#B210 ALU tests
run_b210_alu(tests, openair_dir, oai_user, oai_password, env)
#for test in todo_tests:
# action = test.findtext('class')
# if action != 'lte-softmodem':
# continue
# if not "start_ltebox" in test.findtext('EPC_main_exec'):
# continue
# id = test.get('id')
# log("INFO: Running ALU test " + id)
# logdir = openair_dir + "/cmake_targets/autotests/log/" + id
# quickshell("mkdir -p " + logdir)
# epc_machine = test.findtext('EPC')
# enb_machine = test.findtext('eNB')
# ue_machine = test.findtext('UE')
#
# #event object used to wait for several tasks at once
# event = threading.Event()
#
# #launch HSS, wait for prompt
# log("INFO: " + id + ": run HSS")
# task_hss = Task("actions/alu_hss.bash",
# "ALU HSS",
# epc_machine,
# oai_user,
# oai_password,
# env,
# logdir + "/alu_hss." + epc_machine, event=event)
# task_hss.waitlog('S6AS_SIM-> ')
#
# #then launch EPC, wait for connection on HSS side
# log("INFO: " + id + ": run EPC")
# task = Task("actions/alu_epc.bash",
# "ALU EPC",
# epc_machine,
# oai_user,
# oai_password,
# env,
# logdir + "/alu_epc." + epc_machine)
# ret = task.wait()
# if ret != 0:
# log("ERROR: EPC start failure");
# os._exit(1)
# task_hss.waitlog('Connected\n')
#
# #compile softmodem
# log("INFO: " + id + ": compile softmodem")
# envcomp = list(env)
# envcomp.append('BUILD_ARGUMENTS="' +
# test.findtext('eNB_compile_prog_args') + '"')
# #we don't care about BUILD_OUTPUT but it's required (TODO: change that)
# envcomp.append('BUILD_OUTPUT=/')
# task = Task("actions/compilation.bash",
# "compile softmodem",
# enb_machine,
# oai_user,
# oai_password,
# envcomp,
# logdir + "/compile_softmodem." + enb_machine)
# ret = task.wait()
# if ret != 0:
# log("ERROR: softmodem compilation failure");
# os._exit(1)
#
## #copy wanted configuration file
## quickshell("sshpass -p " + oai_password +
## " scp config/enb.band7.tm1.usrpb210.conf " +
## oai_user + "@" + enb_machine + ":/tmp/enb.conf")
#
# #run softmodem
# log("INFO: " + id + ": run softmodem")
# task_enb = Task("actions/run_enb.bash",
# "run softmodem",
# enb_machine,
# oai_user,
# oai_password,
# env,
# logdir + "/run_softmodem." + enb_machine, event=event)
# task_enb.waitlog('got sync')
#
# #start UE
# log("INFO: " + id + ": start bandrich UE")
# task_ue = Task("actions/start_bandrich.bash",
# "start bandrich UE",
# ue_machine,
# oai_user,
# oai_password,
# env,
# logdir + "/start_bandrich." + ue_machine, event=event)
# task_ue.waitlog("local IP address", event=event)
#
# event.wait()
#
# #at this point one task has died or we have the line in the log
# if task_ue.waitlog_state != WAITLOG_SUCCESS:
# log("ERROR: " + id + ": bandrich UE did not connect")
# os._exit(1)
#
# event.clear()
#
# if ( not task_enb.alive() or
# not task_hss.alive() or
# not task_ue.alive()):
# log("ERROR: " + id + ": eNB or UE tasks died")
# os._exit(1)
#
# #get bandrich UE IP
# l = open(task_ue.logfile, "r").read()
# ue_ip = re.search("local IP address (.*)\n", l).groups()[0]
# log("INFO: " + id + ": bandrich UE IP address: " + ue_ip)
#
# #run traffic
# log("INFO: " + id + ": run downlink TCP traffic")
#
# log("INFO: " + id + ": launch server")
# task_traffic_ue = Task("actions/downlink_bandrich.bash",
# "start iperf on bandrich UE as server",
# ue_machine,
# oai_user,
# oai_password,
# env,
# logdir + "/downlink_bandrich." + ue_machine,
# event=event)
# task_traffic_ue.waitlog("Server listening on TCP port 5001")
#
# log("INFO: " + id + ": launch client")
# envepc = list(env)
# envepc.append("UE_IP=" + ue_ip)
# task = Task("actions/downlink_epc.bash",
# "start iperf on EPC as client",
# epc_machine,
# oai_user,
# oai_password,
# envepc,
# logdir + "/downlink_epc." + epc_machine, event=event)
# log("INFO: " + id + ": wait for client (or some error)")
#
# event.wait()
# log("DEBUG: event.wait() done")
#
# if ( not task_enb.alive() or
# not task_hss.alive() or
# not task_ue.alive()):
# log("ERROR: unexpected task exited, test failed, kill all")
# if task.alive():
# task.kill()
# if task_enb.alive():
# task_enb.kill()
# if task_ue.alive():
# task_ue.kill()
#
# ret = task.wait()
# if ret != 0:
# log("ERROR: " + id + ": downlink traffic failed")
# #not sure if we have to quit here or not
# #os._exit(1)
#
# #stop downlink server
# log("INFO: " + id + ": stop server (kill ssh connection)")
# task_traffic_ue.kill()
# log("INFO: " + id + ": wait for server to quit")
# task_traffic_ue.wait()
#
# #stop UE
# log("INFO: " + id + ": stop bandrich UE")
# task_ue.sendnow("%c" % 3)
# ret = task_ue.wait()
# if ret != 0:
# log("ERROR: " + id + ": task bandrich UE failed")
# #not sure if we have to quit here or not
# #os._exit(1)
#
# #stop softmodem
# log("INFO: " + id + ": stop softmodem")
# task_enb.sendnow("%c" % 3)
# ret = task_enb.wait()
# if ret != 0:
# log("ERROR: " + id + ": softmodem failed")
# #not sure if we have to quit here or not
# #os._exit(1)
#
# #stop EPC, wait for disconnection on HSS side
# log("INFO: " + id + ": stop EPC")
# task = Task("actions/alu_epc_stop.bash",
# "ALU EPC stop",
# epc_machine,
# oai_user,
# oai_password,
# env,
# logdir + "/alu_epc_stop." + epc_machine)
# ret = task.wait()
# if ret != 0:
# log("ERROR: " + id + ": ALU EPC stop failed")
# os._exit(1)
# task_hss.waitlog('Disconnected\n')
#
# log("INFO: " + id + ": stop HSS")
# task_hss.sendnow("exit\n")
# ret = task_hss.wait()
# if ret != 0:
# log("ERROR: " + id + ": ALU HSS failed")
# os._exit(1)
import utils
log(utils.GREEN + "GOODBYE" + utils.RESET)
#os._exit(0)
#run lte softmodem tests

View File

@@ -0,0 +1,370 @@
import os, time, threading, sys, os, errno, select
from connection import connection
import utils
from utils import log
#this class is to communicate between reader and sender threads
#the reader increments a count each time it receives the prompt
#and wakes up the sender
#it also indicates when it exits so the sender can exit too
#the sender (calling get) waits for the count to be greated than passed
#argument or if reader exited
#it returns argument+1 if things okay, -1 if reader exited
class Counter:
def __init__(self):
self.count = 0
self.cond = threading.Condition()
def inc(self):
self.cond.acquire()
self.count = self.count + 1
self.cond.notify()
self.cond.release()
def set(self, value):
self.cond.acquire()
self.count = value
self.cond.notify()
self.cond.release()
def get(self, current):
self.cond.acquire()
while True:
if self.count == -1:
ret = -1
break
if self.count >= current + 1:
ret = current + 1
break
self.cond.wait()
self.cond.release()
return ret
#this class is used for the main application to wait for some specific
#output from the remote program (typically the ALU HSS prompt, indicating
#it is ready and we can proceed further)
#(too much classes...)
class ProducerConsumer:
def __init__(self):
self.count = 0
self.cond = threading.Condition()
def add(self, v):
self.cond.acquire()
self.count = self.count + v
self.cond.notify()
self.cond.release()
def set(self, v):
self.cond.acquire()
self.count = v
self.cond.notify()
self.cond.release()
def get(self, old):
self.cond.acquire()
while True:
if self.count == -1:
ret = -1
break
if self.count > old:
ret = self.count
break
self.cond.wait()
self.cond.release()
return ret
#this thread gets input from the child process of the task
#it removes the prompts it gets (be carefully to use a prompt
#that will not be output of any command otherwise you dead)
class ReaderThread(threading.Thread):
def __init__(self, fdin, logfile, prompt, prompt_counter, producer):
threading.Thread.__init__(self)
self.fdin = fdin
self.logfile = logfile
self.prompt_counter = prompt_counter
self.prompt = prompt
self.promptsize = len(prompt)
self.stack = ""
self.stacksize = 0
self.producer = producer
def run(self):
try:
outfile = open(self.logfile, "w")
except BaseException, e:
log("ERROR: ReaderThread: " + self.logfile + ": " + str(e))
os._exit(1)
while True:
try:
(a, b, c) = select.select([ self.fdin ], [], [ self.fdin ])
except BaseException, e:
log("ERROR: ReaderThread: " + self.logfile +
": select failed: " + str(e))
os._exit(1)
try:
z = os.read(self.fdin, 1024)
except OSError, e:
if e.errno == errno.EIO:
#pipe has died, quit the thread
break
else:
log("ERROR: ReaderThread: " + self.logfile +
": unhandled error: " + str(e))
except BaseException, e:
log("ERROR: ReaderThread: " + self.logfile +
": unhandled error: " + str(e))
break
try:
produced = 0
#this part is to remove the prompt
for x in z:
if x == self.prompt[self.stacksize]:
self.stack = self.stack + x
self.stacksize = self.stacksize + 1
if self.stacksize == self.promptsize:
self.prompt_counter.inc()
self.stack = ""
self.stacksize = 0
else:
outfile.write(self.stack)
outfile.write(x)
produced = produced + len(self.stack) + len(x)
self.stack = ""
self.stacksize = 0
outfile.flush()
self.producer.add(produced)
except BaseException, e:
log("ERROR: ReaderThread: " + self.logfile + ": " + str(e))
os._exit(1)
try:
outfile.close()
except BaseException, e:
log("ERROR: ReaderThread: " + self.logfile + ": " + str(e))
os._exit(1)
#close the pipe, don't care about errors
try:
os.close(self.fdin)
except:
pass
#signal sender to quit
self.prompt_counter.set(-1)
self.producer.set(-1)
class SenderQuit(Exception):
pass
#this thread sends commands to the child process of the task
#it waits for the prompt between each command
#'event' is used for the main thread to wait for one of several tasks
#to quit, meaning error or end-of-test
class SenderThread(threading.Thread):
def __init__(self, fdout, prompt_counter, connection, env, action,
description, prompt, event=None):
threading.Thread.__init__(self)
self.fdin = fdout
self.prompt_counter = prompt_counter
self.connection = connection
self.env = env
self.action = action
self.description = description
self.prompt = prompt
self.count = 0
self.event = event
self.alive = True
def wait_prompt(self):
self.count = self.prompt_counter.get(self.count)
if self.count == -1:
raise SenderQuit()
def _run(self):
self.connection.send('export PS1=' + self.prompt + '\n')
self.wait_prompt()
self.connection.send('set +o emacs\n')
self.wait_prompt()
self.connection.send('echo\n')
self.wait_prompt()
self.connection.send('echo\n')
self.wait_prompt()
self.connection.send("echo -e '" + utils.GREEN +
'---------------------------------------------'
+ utils.RESET + "'\n")
self.wait_prompt()
self.connection.send('echo\n')
self.wait_prompt()
self.connection.send("echo -n -e '" + utils.YELLOW +
"COMMANDS START: " +
utils.RESET + "'\n")
self.wait_prompt()
self.connection.send('date\n')
self.wait_prompt()
for l in self.env:
self.connection.send('export ' + l + '\n')
self.wait_prompt()
with open(self.action) as f:
for line in f:
self.connection.send("echo -n -e '" + utils.GREEN +
"RUNNING: " + utils.RESET + "'\n")
self.wait_prompt()
self.connection.send("echo '" +
line.replace('\n','')
.replace("'", "'\\''") + "'\n")
self.wait_prompt()
self.connection.send(line)
self.wait_prompt()
self.connection.send("if [ $? != 0 ]; then " +
"echo -e '" + utils.RED +
"TEST_SETUP_ERROR: " + utils.RESET +
"last command failed, exiting'; " +
"date; exit 1; fi\n")
self.wait_prompt()
self.connection.send("echo -n -e '" + utils.YELLOW +
"COMMANDS DONE: " +
utils.RESET + "'\n")
self.wait_prompt()
self.connection.send('date\n')
self.wait_prompt()
self.connection.send("echo -e '" + utils.GREEN +
"TEST_SETUP_SUCCESS" + utils.RESET + "'\n")
self.wait_prompt()
self.connection.send('exit\n')
def run(self):
try:
self._run()
except SenderQuit:
log("WARNING: '" + self.description + "' exits too early?")
pass
except BaseException, e:
log("ERROR: task failed: " + str(e))
log("ERROR: action is: " + self.action)
log("ERROR: description is: " + self.description)
os._exit(1)
self.alive = False
if self.event != None:
self.event.set()
WAITLOG_RUNNING = 0
WAITLOG_SUCCESS = 1
WAITLOG_FAILURE = 2
class WaitlogFailed(Exception):
pass
#'event' is used by main thread to wait for any of several threads to quit.
#'Task' passes it the 'SenderThread' above, which sets it when it finishes.
class Task:
def __init__(self, action, description, machine, user, password, env,
logfile, post_action = None, event=None):
self.action = action
self.description = description
self.machine = machine
self.user = user
self.password = password
self.post_action = post_action
self.producer = ProducerConsumer()
self.logfile = logfile
prompt = "__OAI_TEST_SETUP_PROMPT__:"
prompt_counter = Counter()
self.connection = connection(description, machine, user, password)
self.reader = ReaderThread(self.connection.fd, logfile, prompt,
prompt_counter, self.producer)
self.reader.start()
self.sender = SenderThread(self.connection.fd, prompt_counter,
self.connection, env, action, description,
prompt, event)
self.sender.start()
def wait(self, timeout=-1):
if self.connection.active == False:
return self.connection.retcode
try:
(pid, ret) = os.waitpid(self.connection.pid, 0)
except KeyboardInterrupt, e:
log("ERROR: ctrl+c catched! " + str(e))
os._exit(1)
except BaseException, e:
log("ERROR: " + str(e))
os._exit(1)
self.sender.join()
self.reader.join()
return ret
#this function should not be called, it is used internally by 'waitlog'
#in mode 'background thread'
#TODO: join() the thread at some point
def _waitlog_thread(self, task, s):
consumed = 0
while True:
consumed = task.producer.get(consumed)
if consumed == -1:
log("ERROR: string '" + s + "' not found in logfile " +
task.logfile)
task.waitlog_state = WAITLOG_FAILURE
task.waitlog_event.set()
return
if s in open(task.logfile).read():
task.waitlog_state = WAITLOG_SUCCESS
task.waitlog_event.set()
return
#two ways to wait for a string in the log file:
# - blocking way
# - background thread, using an Event to signal success/failure
def waitlog(self, s, event=None):
if event != None:
self.waitlog_state = WAITLOG_RUNNING
self.waitlog_event = event
self.waitlog_thread = \
threading.Thread(target=self._waitlog_thread,
args=(self, s))
self.waitlog_thread.start()
return
#TODO: optimize, do not process all the file at each wakeup
consumed = 0
while True:
consumed = self.producer.get(consumed)
if consumed == -1:
log("ERROR: string '" + s + "' not found in logfile " +
self.logfile)
raise WaitlogFailed()
if s in open(self.logfile).read():
return
def sendnow(self, x):
self.connection.send(x)
def alive(self):
return self.sender.alive
def kill(self):
self.connection.kill()
#put some error log in logfile, for verbosity
try:
f = open(self.logfile, "a+")
f.write("\n\n" + utils.RED + "TEST_SETUP_ERROR: " + utils.RESET +
"task killed by test setup\n\n");
close(f)
except BaseException, e:
pass
def postaction(self):
if self.post_action != None:
out = utils.quickshell(self.post_action)
if len(out):
log("INFO: task '" + self.description +
"' post_action '" + self.post_action + "' says: ")
for l in out.splitlines():
log("INFO: " + l)

View File

@@ -0,0 +1,84 @@
import subprocess, os, thread, sys, time
#logging facitiliy
#TODO: simplify (a first version redefined stdout, then we replaced 'print'
#instead, keeping stuff as is)
class Logger:
def __init__(self, stream):
self.stream = stream
self.start_of_line = True
self.lock = thread.allocate_lock()
openair_dir = os.environ.get('OPENAIR_DIR')
if openair_dir == None:
print "FATAL: no OPENAIR_DIR"
os._exit(1)
try:
self.logfile = open(openair_dir +
"/cmake_targets/autotests/log/python.stdout", "w")
except BaseException, e:
print "FATAL: cannot create log file"
print e
os._exit(1)
def put(self, data):
self.stream.write(data)
self.logfile.write(data)
def write(self, data):
self.lock.acquire()
for c in data:
if self.start_of_line:
self.start_of_line = False
t = time.strftime("%H:%M:%S", time.localtime()) + ": "
self.stream.write(t)
self.logfile.write(t)
self.put(c)
if c == '\n':
self.start_of_line = True
self.stream.flush()
self.logfile.flush()
self.lock.release()
logger = Logger(sys.stdout)
def log(x):
logger.write(x + "\n")
#check if given test is in list
#it is in list if one of the strings in 'list' is at the beginning of 'test'
def test_in_list(test, list):
for check in list:
check=check.replace('+','')
if (test.startswith(check)):
return True
return False
#run a local command in a shell
def quickshell(command):
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
(retout, reterr) = process.communicate()
if (process.returncode != 0):
log("ERROR: shell command failed: " + command)
if len(retout):
log("ERROR: command says: ")
for l in retout.splitlines():
log("ERROR: " + l)
os._exit(1)
return retout
RED="\x1b[31m"
GREEN="\x1b[32m"
YELLOW="\x1b[33m"
RESET="\x1b[m"
#an exception raised when a test fails
class TestFailed(Exception):
pass
#this function returns True if a test in 'x' is set to True
#to be used as: if do_tests(tests['b210']['alu']) ...
def do_tests(x):
if type(x) == list:
for v in x:
if do_tests(v): return True
return False
if type(x) == dict: return do_tests(x.values())
if x == True: return True
return False

View File

@@ -1,34 +1,25 @@
#!/bin/bash
################################################################################
#
# Copyright (c) 2015, EURECOM (www.eurecom.fr)
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# The views and conclusions contained in the software and documentation are those
# of the authors and should not be interpreted as representing official policies,
# either expressed or implied, of the FreeBSD Project.
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file build_oai
# brief OAI automated build tool that can be used to install, compile, run OAI.
# author Navid Nikaein, Lionel GAUTHIER, Laurent Thomas
@@ -44,11 +35,12 @@ source $THIS_SCRIPT_PATH/tools/build_helper
MSC_GEN="False"
XFORMS="True"
FLEXRAN_AGENT_SB_IF="True"
PRINT_STATS="False"
VCD_TIMING="False"
DEADLINE_SCHEDULER_FLAG_USER="False"
FORCE_DEADLINE_SCHEDULER_FLAG_USER=""
CPU_AFFINITY_FLAG_USER="True" #Only valid when lowlatecy flag is set to False
CPU_AFFINITY_FLAG_USER="False" #Only valid when lowlatecy flag is set to False
REL="Rel10"
HW="None"
TP="None"
@@ -62,6 +54,7 @@ BUILD_DOXYGEN=0
T_TRACER="False"
DISABLE_HARDWARE_DEPENDENCY="False"
CMAKE_BUILD_TYPE=""
UE_AUTOTEST_TRACE="False"
trap handle_ctrl_c INT
function print_help() {
@@ -83,7 +76,7 @@ Options
--install-optional-packages
Install useful but not mandatory packages such as valgrind
-g | --run-with-gdb
Add debugging symbols to compilation directives. It also disables any compiler optimization.
Add debugging symbols to compilation directives. It also disables any compiler optimization. Only for debugging. Do not use in normal operation!
-h | --help
Print this help
--eNB
@@ -92,11 +85,13 @@ Options
Makes the UE specific parts (ue_ip, usim, nvram)
--RRH
Makes the RRH
-a | --agent
Enables agent for software-defined control of the eNB
-r | --3gpp-release
default is Rel10,
Rel8 limits the implementation to 3GPP Release 8 version
-w | --hardware
EXMIMO, USRP, BLADERF, ETHERNET, LMSSDR, None (Default)
EXMIMO, USRP, BLADERF, ETHERNET, LMSSDR, IRIS, None (Default)
Adds this RF board support (in external packages installation and in compilation)
-t | --transport protocol
ETHERNET , None
@@ -136,10 +131,12 @@ Options
Enables the T tracer.
--disable-hardware-dependency
Disable HW dependency during installation
--ue-autotest-trace
Enable specific traces for UE autotest framework
Usage (first build):
oaisim (eNB + UE): ./build_oai -I -g --oaisim -x --install-system-files
Eurecom EXMIMO + COTS UE : ./build_oai -I -g --eNB -x --install-system-files
NI/ETTUS B201 + COTS UE : ./build_oai -I -g --eNB -x --install-system-files -w USRP
oaisim (eNB + UE): ./build_oai -I --oaisim -x --install-system-files
Eurecom EXMIMO + COTS UE : ./build_oai -I --eNB -x --install-system-files
NI/ETTUS B201 + COTS UE : ./build_oai -I --eNB -x --install-system-files -w USRP
Usage (Regular):
oaisim : ./build_oai --oaisim -x
Eurecom EXMIMO + OAI ENB : ./build_oai --eNB -x
@@ -178,6 +175,10 @@ function main() {
eNB=1
echo_info "Will compile eNB"
shift;;
-a | --agent)
FLEXRAN_AGENT=1
echo_info "Will compile eNB with agent support"
shift;;
--UE)
UE=1
echo_info "Will compile UE"
@@ -193,7 +194,7 @@ function main() {
-w | --hardware)
HW="$2" #"${i#*=}"
# Use OAI_USRP as the key word USRP is used inside UHD driver
if [ "$HW" != "BLADERF" -a "$HW" != "USRP" -a "$HW" != "LMSSDR" -a "$HW" != "None" -a "$HW" != "EXMIMO" ] ; then
if [ "$HW" != "BLADERF" -a "$HW" != "USRP" -a "$HW" != "LMSSDR" -a "$HW" != "None" -a "$HW" != "EXMIMO" -a "$HW" != "IRIS" ] ; then
echo_fatal "Unknown HW type $HW will exit..."
else
if [ "$HW" == "USRP" ] ; then
@@ -205,6 +206,9 @@ function main() {
if [ "$HW" == "LMSSDR" ] ; then
HW="OAI_LMSSDR"
fi
if [ "$HW" == "IRIS" ] ; then
HW="OAI_IRIS"
fi
echo_info "Setting hardware to: $HW"
fi
shift 2;;
@@ -287,6 +291,10 @@ function main() {
echo_info "Disabling hardware dependency for compiling software"
DISABLE_HARDWARE_DEPENDENCY="True"
shift 1;;
--ue-autotest-trace)
UE_AUTOTEST_TRACE="True"
echo_info "Enabling autotest specific trace for UE"
shift 1;;
-h | --help)
print_help
exit 1;;
@@ -306,9 +314,6 @@ function main() {
if [ "$HW" = "None" -a "$TP" = "None" ] ; then
echo_fatal "Define a local radio head (e.g. -w EXMIMO) or a transport protocol (e.g. -t ETHERNET) to communicate with a remote radio head!"
fi
if [ "$HW" != "None" -a "$TP" != "None" ] ; then
echo_fatal "Currently eNB can not support simultaniously local and remote radio heads!!"
fi
if [ "$HW" = "None" ] ; then
echo_info "No radio head has been selected (HW set to $HW)"
fi
@@ -335,13 +340,15 @@ function main() {
if [ "$HW" = "EXMIMO" ] ; then
DEADLINE_SCHEDULER_FLAG_USER="True"
elif [ "$HW" = "ETHERNET" ] ; then
DEADLINE_SCHEDULER_FLAG_USER="True"
DEADLINE_SCHEDULER_FLAG_USER="False"
elif [ "$HW" = "OAI_USRP" ] ; then
DEADLINE_SCHEDULER_FLAG_USER="False"
elif [ "$HW" = "OAI_BLADERF" ] ; then
DEADLINE_SCHEDULER_FLAG_USER="False"
elif [ "$HW" = "OAI_LMSSDR" ] ; then
DEADLINE_SCHEDULER_FLAG_USER="False"
elif [ "$HW" = "OAI_IRIS" ] ; then
DEADLINE_SCHEDULER_FLAG_USER="False"
elif [ "$HW" = "None" ] ; then
DEADLINE_SCHEDULER_FLAG_USER="False"
else
@@ -407,6 +414,13 @@ function main() {
flash_firmware_bladerf
fi
fi
if [ "$HW" == "OAI_IRIS" ] ; then
echo_info "installing packages for IRIS support"
check_install_soapy
#if [ ! "$DISABLE_HARDWARE_DEPENDENCY" == "True" ]; then
# flash_firmware_iris
#fi
fi
fi
if [ "$INSTALL_OPTIONAL" = "1" ] ; then
@@ -451,6 +465,9 @@ function main() {
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
echo "set ( XFORMS $XFORMS )" >> $cmake_file
if [ "$FLEXRAN_AGENT" = "1" ] ; then
echo "set ( FLEXRAN_AGENT_SB_IF $FLEXRAN_AGENT_SB_IF )" >> $cmake_file
fi
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
@@ -459,6 +476,7 @@ function main() {
echo "set (DEADLINE_SCHEDULER \"${DEADLINE_SCHEDULER_FLAG_USER}\" )" >>$cmake_file
echo "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
echo "set ( T_TRACER $T_TRACER )" >> $cmake_file
echo "set (UE_AUTOTEST_TRACE $UE_AUTOTEST_TRACE)" >> $cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
cd $DIR/$lte_build_dir/build
cmake ..
@@ -564,6 +582,7 @@ function main() {
compilations \
$lte_build_dir updatefw \
updatefw $dbin/updatefw
echo_info "Compiling oarf tools. The logfile for compilation is here: $dlog/oarf.txt"
make -C $OPENAIR_DIR/cmake_targets/$lte_build_dir/build oarf > $dlog/oarf.txt 2>&1
cp $OPENAIR_DIR/cmake_targets/$lte_build_dir/build/*.oct $dbin
if [ -s $dbin/oarf_config_exmimo.oct ] ; then
@@ -592,6 +611,9 @@ function main() {
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
echo "set ( XFORMS $XFORMS )" >> $cmake_file
if [ "$FLEXRAN_AGENT" = "1" ] ; then
echo "set ( FLEXRAN_AGENT_SB_IF $FLEXRAN_AGENT_SB_IF )" >> $cmake_file
fi
echo "set ( PRINT_STATS $PRINT_STATS )" >> $cmake_file
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
@@ -660,6 +682,9 @@ function main() {
cp $DIR/oaisim_mme_build_oai/CMakeLists.template $cmake_file
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
echo "set ( XFORMS $XFORMS )" >> $cmake_file
if [ "$FLEXRAN_AGENT" = "1" ] ; then
echo "set ( FLEXRAN_AGENT_SB_IF $FLEXRAN_AGENT_SB_IF )" >> $cmake_file
fi
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo "set ( T_TRACER $T_TRACER )" >> $cmake_file
@@ -725,7 +750,9 @@ function main() {
#add exmimo compilation
#TODO EXMIMO library support
compilations \
$build_dir oai_exmimodevif \
liboai_exmimodevif.so $dbin/liboai_exmimodevif.so.$REL
echo_info "liboai_device.so is linked to EXMIMO device library"
elif [ "$HW" == "OAI_USRP" ] ; then
if [ -d "/usr/include/uhd" ] ; then
@@ -757,6 +784,14 @@ function main() {
ln -s liboai_lmssdrdevif.so liboai_device.so
ln -s $dbin/liboai_lmssdrdevif.so.$REL $dbin/liboai_device.so
echo_info "liboai_device.so is linked to LMSSDR device library"
elif [ "$HW" == "OAI_IRIS" ] ; then
compilations \
$build_dir oai_irisdevif \
liboai_irisdevif.so $dbin/liboai_irisdevif.so.$REL
ln -s liboai_irisdevif.so liboai_device.so
ln -s $dbin/liboai_irisdevif.so.$REL $dbin/liboai_device.so
echo_info "liboai_device.so is linked to IRIS device library"
else
echo_info "liboai_device.so is not linked to any device library"
fi

View File

@@ -0,0 +1,17 @@
BS TDD:
sudo -E ./lte-softmodem-nos1 -d -O /usr/git/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.iris030.tdd.conf --tx-sample-advance -40 2>&1
UE TDD:
sudo -E ./lte-softmodem-nos1 -U -T -C2580000000 -r25 --ue-txgain 52 --ue-rxgain 113 --rrh-remote-address 0118 -d -g 9 -G 0x75 --tx-sample-advance -40 >&1
BS FDD:
sudo -E ./lte-softmodem-nos1 -d -O /usr/git/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.iris030.conf --tx-sample-advance -40 2>&1
UE FDD:
sudo -E ./lte-softmodem-nos1 -U -C2660000000 -r25 --ue-txgain 52 --ue-rxgain 113 --rrh-remote-address 0118 -d -g 9 -G 0x75 --tx-sample-advance -40 >&1

View File

@@ -1,6 +1,5 @@
cmake_minimum_required(VERSION 2.8)
set ( CMAKE_BUILD_TYPE "RelWithDebInfo" )
set ( ADDR_CONF False )
set ( DEBUG_OMG False )
set ( DISABLE_XER_PRINT False )
@@ -48,7 +47,7 @@ set ( NEW_FFT True )
set ( NO_RRM True )
set ( OAI_EMU True )
set ( OAISIM True )
set ( OAI_NW_DRIVER_TYPE_ETHERNET True )
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
set ( OAI_NW_DRIVER_USE_NETLINK True )
set ( OPENAIR1 True )
set ( OPENAIR2 True )

View File

@@ -33,35 +33,26 @@ def printDebug(string):
def outputHeaderToFile(f, filename):
now = datetime.datetime.now()
f.write("""/*******************************************************************************
Eurecom OpenAirInterface
Copyright(c) 1999 - 2013 Eurecom
This program is free software; you can redistribute it and/or modify it
under the terms and conditions of the GNU General Public License,
version 2, as published by the Free Software Foundation.
This program is distributed in the hope it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
The full GNU General Public License is included in this distribution in
the file called "COPYING".
Contact Information
Openair Admin: openair_admin@eurecom.fr
Openair Tech : openair_tech@eurecom.fr
Forums : http://forums.eurecom.fr/openairinterface
Address : EURECOM, Campus SophiaTech, 450 Route des Chappes
06410 Biot FRANCE
*******************************************************************************/
f.write("""/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
""")
f.write("/*******************************************************************************\n")

View File

@@ -1,33 +1,24 @@
################################################################################
#
# Copyright (c) 2015, EURECOM (www.eurecom.fr)
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# The views and conclusions contained in the software and documentation are those
# of the authors and should not be interpreted as representing official policies,
# either expressed or implied, of the FreeBSD Project.
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file build_helper
# brief
# authors Laurent Thomas, Lionel GAUTHIER
@@ -172,57 +163,46 @@ compilations() {
# External packages installers
############################################
install_nettle_from_source() {
nettle_install_log=$OPENAIR_DIR/cmake_targets/log/nettle_install_log.txt
echo_info "\nInstalling Nettle. The log file for nettle installation is here: $nettle_install_log "
install_protobuf_from_source(){
protobuf_install_log=$OPENAIR_DIR/cmake_targets/log/protobuf_install_log.txt
echo_info "\nInstalling Google Protobuf from sources. The log file for Protobuf installation is here: $protobuf_install_log "
(
cd /tmp
echo "Downloading nettle archive"
$SUDO rm -rf /tmp/nettle-2.5.tar.gz* /tmp/nettle-2.5
wget https://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz
if [ $? -ne 0 ]; then
wget ftp://ftp.lysator.liu.se/pub/security/lsh/nettle-2.5.tar.gz
fi
if [ ! -f nettle-2.5.tar.gz ]; then
echo_error "Could not download nettle source files"
cd -
return
fi
tar -xzf nettle-2.5.tar.gz
cd nettle-2.5/
./configure --disable-openssl --enable-shared --prefix=/usr
echo "Compiling nettle"
echo "Downloading protobuf"
#rm -rf /tmp/protobuf-2.6.1.tar.gz* /tmp/protobuf-2.6.1
#wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
#tar -xzvf protobuf-2.6.1.tar.gz
#cd protobuf-2.6.1/
rm -rf /tmp/protobuf-cpp-3.3.0.tar.gz* /tmp/protobuf-3.3.0
wget https://github.com/google/protobuf/releases/download/v3.3.0/protobuf-cpp-3.3.0.tar.gz
tar -xzvf protobuf-cpp-3.3.0.tar.gz --owner $USER --group $USER --no-same-owner
cd protobuf-3.3.0/
./configure
echo "Compiling protobuf"
make -j`nproc`
make check
$SUDO make install
) >& $nettle_install_log
$SUDO make install
$SUDO ldconfig
) >& $protobuf_install_log
}
install_gnutls_from_source(){
gnutls_install_log=$OPENAIR_DIR/cmake_targets/log/gnutls_install_log.txt
echo_info "\nInstalling Gnutls. The log file for Gnutls installation is here: $gnutls_install_log "
install_protobuf_c_from_source(){
protobuf_c_install_log=$OPENAIR_DIR/cmake_targets/log/protobuf_c_install_log.txt
echo_info "\nInstalling Google Protobuf_C from sources. The log file for Protobuf_C installation is here: $protobuf_c_install_log "
(
cd /tmp
echo "Downloading gnutls archive"
$SUDO rm -rf /tmp/gnutls-3.1.23.tar.xz* /tmp/gnutls-3.1.23
wget http://mirrors.dotsrc.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz || \
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz
if [ ! -f gnutls-3.1.23.tar.xz ]; then
echo_error "Could not download gnutls source files"
cd -
return
fi
tar -xJf gnutls-3.1.23.tar.xz
cd gnutls-3.1.23/
./configure --prefix=/usr
echo "Compiling gnutls"
cd /tmp
echo "Downloading protobuf-c"
rm -rf /tmp/protobuf-c
git clone https://github.com/protobuf-c/protobuf-c.git
cd protobuf-c
./autogen.sh
./configure
echo "Compiling protobuf-c"
make -j`nproc`
$SUDO make install
)>& $gnutls_install_log
$SUDO make install
$SUDO ldconfig
) >& $protobuf_c_install_log
}
check_install_usrp_uhd_driver(){
#first we remove old installation
$SUDO apt-get remove -y uhd || true
@@ -257,6 +237,83 @@ flash_firmware_bladerf() {
$SUDO bladeRF-cli --flash-firmware /usr/share/Nuand/bladeRF/bladeRF_fw.img
}
install_soapy_from_source(){
soapy_install_log=$OPENAIR_DIR/cmake_targets/log/soapy_install_log.txt
echo_info "\nInstalling Soapy EcoSystem from source. The log file for Soapy installation is here: $soapy_install_log "
(
cd /tmp
echo "Downloading SoapySDR"
rm -rf /tmp/soapysdr
git clone https://github.com/pothosware/SoapySDR.git
cd soapysdr
#git checkout tags/release_003_010_001_001
mkdir -p build
cd build
$CMAKE ../
echo "Compiling SoapySDR"
make -j`nproc`
$SUDO make install
$SUDO ldconfig
cd /tmp
echo "Downloading SoapyRemote"
rm -rf /tmp/soapyremote
git clone https://github.com/pothosware/SoapyRemote.git
cd soapyremote
#git checkout tags/release_003_010_001_001
mkdir -p build
cd build
cmake ../
echo "Compiling SoapyRemote"
make -j`nproc`
$SUDO make install
$SUDO ldconfig
) >& $soapy_install_log
}
install_soapy_iris_from_source(){
iris_install_log=$OPENAIR_DIR/cmake_targets/log/iris_install_log.txt
echo_info "\nInstalling Iris driver from source. The log file for Iris driver installation is here: $iris_install_log "
(
cd /tmp
echo "Downloading SoapyIris"
rm -rf /tmp/sklk-soapyiris
git clone https://github.com/skylarkwireless/sklk-soapyiris.git
cd sklk-soapyiris
mkdir -p build
cd build
cmake ../
echo "Compiling SoapyIris"
make -j`nproc`
$SUDO make install
$SUDO ldconfig
) >& $iris_install_log
}
check_install_soapy () {
#if [[ "$OS_DISTRO" == "ubuntu" ]]; then
#first we remove old installation
$SUDO apt-get remove -y soapysdr soapysdr-server libsoapysdr-dev python-soapysdr python3-soapysdr soapysdr-module-remote || true
$SUDO add-apt-repository -y ppa:myriadrf/drivers
$SUDO apt-get update
$SUDO apt-get install -y soapysdr soapysdr-server libsoapysdr-dev python-soapysdr python3-soapysdr soapysdr-module-remote
#elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
# $SUDO $INSTALLER -y install software-properties-common python3-software-properties python-software-properties subversion git python3 python-numpy python3-numpy cmake swig python-dev
# install_soapy_from_source
#fi
install_soapy_iris_from_source
}
# we don't have this tool yet.
#flash_firmware_iris() {
#if [ -z $1 ]; then
# $SUDO iris_images_downloader
#else
# $SUDO iris_images_downloader -i $1
#fi
#}
check_install_additional_tools (){
$SUDO apt-get update
$SUDO apt-get install -y \
@@ -283,13 +340,17 @@ check_install_additional_tools (){
android-tools-adb \
wvdial \
python-numpy \
sshpass \
nscd
sshpass \
nscd \
bc \
ntp \
python-scipy \
python-matplotlib
$SUDO pip install paramiko
$SUDO pip install pyroute2
$SUDO pip install pyroute2 colorama
$SUDO rm -fr /opt/ssh
$SUDO GIT_SSL_NO_VERIFY=true git clone https://gist.github.com/2190472.git /opt/ssh
$SUDO GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/ssh.git /opt/ssh
log_netiface=$OPENAIR_DIR/cmake_targets/log/netiface_install_log.txt
echo_info "Installing Netinterfaces package. The logfile for installation is in $log_netiface"
@@ -380,18 +441,75 @@ check_install_oai_software() {
xmlstarlet \
python-pip \
pydb \
libyaml-dev \
wget
$SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so
#Sometimes linux headers are not available in apt-get if kernel is custom or new
$SUDO apt-get install linux-headers-`uname -r` || true
# First we remove gnutls/nettle installation and then install from sources
$SUDO apt-get remove -y libgnutls-dev nettle-dev nettle-bin
install_nettle_from_source
install_gnutls_from_source
#Remove old gnutls/nettle installation that was done from sources
remove_nettle_from_source
$SUDO apt-get install -y nettle-dev nettle-bin
remove_gnutls_from_source
$SUDO apt-get install -y libgnutls-dev
install_asn1c_from_source
$SUDO rm -fr /opt/ssh
$SUDO git clone https://gist.github.com/2190472.git /opt/ssh
sudo apt -y autoremove
install_protobuf_from_source
install_protobuf_c_from_source
}
### Remove Nettle installation which was done from sources
remove_nettle_from_source() {
nettle_uninstall_log=$OPENAIR_DIR/cmake_targets/log/nettle_uninstall_log.txt
echo_info "\nUn-Installing Nettle from sources. The log file for nettle un-installation is here: $nettle_uninstall_log "
(
$SUDO apt-get remove -y nettle-dev nettle-bin
cd /tmp
echo "Downloading nettle archive"
$SUDO rm -rf /tmp/nettle-2.5.tar.gz* /tmp/nettle-2.5
wget https://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz
if [ $? -ne 0 ]; then
wget ftp://ftp.lysator.liu.se/pub/security/lsh/nettle-2.5.tar.gz
fi
if [ ! -f nettle-2.5.tar.gz ]; then
echo_error "Could not download nettle source files"
cd -
return
fi
tar -xzf nettle-2.5.tar.gz
cd nettle-2.5/
./configure --disable-openssl --enable-shared --prefix=/usr
$SUDO make uninstall || true
$SUDO ldconfig
) >& $nettle_uninstall_log
}
### Remove Gnutls from source
remove_gnutls_from_source(){
gnutls_uninstall_log=$OPENAIR_DIR/cmake_targets/log/gnutls_uninstall_log.txt
echo_info "\nUn-Installing Gnutls. The log file for Gnutls un-installation is here: $gnutls_uninstall_log "
(
$SUDO apt-get remove -y libgnutls-dev
cd /tmp
echo "Downloading gnutls archive"
$SUDO rm -rf /tmp/gnutls-3.1.23.tar.xz* /tmp/gnutls-3.1.23
wget http://mirrors.dotsrc.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz || \
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz
if [ ! -f gnutls-3.1.23.tar.xz ]; then
echo_error "Could not download gnutls source files"
cd -
return
fi
tar -xJf gnutls-3.1.23.tar.xz
cd gnutls-3.1.23/
./configure --prefix=/usr
$SUDO make uninstall || true
$SUDO ldconfig
)>& $gnutls_uninstall_log
}
install_asn1c_from_source(){
@@ -399,12 +517,13 @@ install_asn1c_from_source(){
echo_info "\nInstalling ASN1. The log file for ASN1 installation is here: $asn1_install_log "
(
$SUDO rm -rf /tmp/asn1c
git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c
GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c
cd /tmp/asn1c
./configure
make -j`nproc`
$SUDO make install
cd -
$SUDO ldconfig
) > $asn1_install_log 2>&1
}

View File

@@ -1,32 +1,25 @@
#!/bin/bash
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) anylater version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file build_test_epc_tools
# brief
# author Lionel Gauthier

View File

@@ -1,31 +1,24 @@
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) anylater version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file example_enb_exmimo_mme_hss.txt
# brief
# author Lionel Gauthier

View File

@@ -1,31 +1,24 @@
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) anylater version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file example_oaisim_enb_ue_mme_virtual.txt
# brief
# author Lionel Gauthier

View File

@@ -25,7 +25,6 @@ reset_color="$(tput sgr0)"
function error()
{
echo -e "$red_color"ERROR: "$@""$reset_color"
exit 1
}
function check_sha1()

View File

@@ -0,0 +1,19 @@
#!/bin/bash
function main()
{
mkdir -p $1
#echo generate protobuf messages inside $1 $2
c_out=$1
shift
proto_path=$1
shift
protoc-c --c_out=$c_out --proto_path=$proto_path $*
#protoc --cpp_out=$c_out --proto_path=$proto_path $*
}
main "$@"

View File

@@ -1,32 +1,25 @@
#!/bin/bash
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) anylater version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file indent_source_code
# brief
# author Lionel Gauthier

View File

@@ -1,33 +1,26 @@
#!/bin/bash
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2015 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file init_nas_nos1
# brief loads the nasmesh module and sets up the radio bearers (used to provide ip interface without S1 interface)
# author Florian Kaltenberger
@@ -71,15 +64,7 @@ if [ ! -e /dev/openair0 ]; then
sudo chmod a+rw /dev/openair0
fi
DEVICE=`echo $PCI | awk -F\" '{print $(NF-1)}' | awk '{print $2}'`
DEVICE_SWID=${DEVICE:2:2}
if [ $DEVICE_SWID == '0a' ]; then
echo "Using firware version 10"
$OPENAIR_DIR/targets/bin/updatefw -s 0x43fffff0 -b -f $OPENAIR_TARGETS/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v10
else
echo 'No corresponding firmware found'
return
fi
}
main "$@"

View File

@@ -1,33 +1,26 @@
#!/bin/bash
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2015 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file init_nas_nos1
# brief loads the nasmesh module and sets up the radio bearers (used to provide ip interface without S1 interface)
# author Florian Kaltenberger

View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
CACHE_DIR=/mnt/oai_agent_cache
if [ ! -d $CACHE_DIR ]; then
echo "Creating cache dir in $CACHE_DIR"
sudo mkdir $CACHE_DIR
fi
if grep -qs "$CACHE_DIR" /proc/mounts; then
echo "Agent cache is already mounted"
else
echo "Agent cache was not mounted"
echo "Mounting..."
sudo mount -o size=100m -t tmpfs none "$CACHE_DIR"
if [ $? -eq 0 ]; then
echo "Mount success"
else
echo "Something went wrong with the mount"
fi
fi

View File

@@ -1,31 +1,24 @@
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2015 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) anylater version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file build_oai.bash
# brief apply a traffic generator, send traffic and measure the performance of OAI
# OTG is mainly used for OASIM and D-ITG (or iperf) for LTE-SOFTMODEM

View File

@@ -1,32 +1,25 @@
#!/bin/bash
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) anylater version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file run_enb_s1_exmimo
# brief run script for eNB EXMIMO.
# author Lionel GAUTHIER

View File

@@ -1,32 +1,25 @@
#!/bin/bash
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) anylater version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file run_enb_s1_usrp
# brief run script for eNB USRP.
# author Lionel GAUTHIER and Navid Nikaein

View File

@@ -1,32 +1,25 @@
#!/bin/bash
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file start_enb_ue_virt_noS1
# brief
# author Lionel Gauthier

View File

@@ -1,32 +1,25 @@
#!/bin/bash
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
#
# OpenAirInterface 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
#
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
#
################################################################################
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# file start_enb_ue_virt_s1
# brief
# author Lionel Gauthier

View File

@@ -1,4 +1,26 @@
#!/bin/bash
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
# \author Navid Nikaein, Rohit Gupta
echo "This script stops exmimo2 as it might be transmitting signal by itself if lte-softmodem terminates incorrectly"

View File

@@ -1,28 +0,0 @@
/*
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those
* of the authors and should not be interpreted as representing official policies,
* either expressed or implied, of the FreeBSD Project.
*/

View File

@@ -5,14 +5,14 @@ linux := $(shell if [ `uname` = "Linux" ] ; then echo "1" ; else echo "0" ; fi)
CFLAGS += -std=gnu99
#CFLAGS += -Wall -g -ggdb -Wstrict-prototypes -fno-strict-aliasing
CFLAGS += -Wall -g -ggdb -Wstrict-prototypes -fno-strict-aliasing
# Need to force this option because default kernel module builder is wrong
CFLAGS += $(call cc-option,-mpreferred-stack-boundary=4)
#For performance, if some option doesn't exist in all gcc versions, use $(call cc-option,MY_OPTION)
CFLAGS += -O2
CFLAGS += -funroll-loops
#CFLAGS += -O2
#CFLAGS += -funroll-loops
CFLAGS += -Wno-packed-bitfield-compat
# This is the minimum CPU faetures for OAI

4
common/utils/T/README Normal file
View File

@@ -0,0 +1,4 @@
All the files in this directory, unless stated otherwise,
are released under the terms of the main license of
OpenAirInterface. See the file LICENSE in the top
directory.

View File

@@ -29,15 +29,15 @@ typedef struct {
#define T_SHM_FILENAME "/T_shm_segment"
/* number of VCD functions (to be kept up to date! see in T_messages.txt) */
#define VCD_NUM_FUNCTIONS 146
#define VCD_NUM_FUNCTIONS 142
/* number of VCD variables (to be kept up to date! see in T_messages.txt) */
#define VCD_NUM_VARIABLES 99
#define VCD_NUM_VARIABLES 107
/* first VCD function (to be kept up to date! see in T_messages.txt) */
#define VCD_FIRST_FUNCTION ((uintptr_t)T_VCD_FUNCTION_RT_SLEEP)
/* first VCD variable (to be kept up to date! see in T_messages.txt) */
#define VCD_FIRST_VARIABLE ((uintptr_t)T_VCD_VARIABLE_FRAME_NUMBER_TX_ENB)
#define VCD_FIRST_VARIABLE ((uintptr_t)T_VCD_VARIABLE_FRAME_NUMBER_TX0_ENB)
#endif /* _T_defs_H_ */

View File

@@ -16,7 +16,7 @@ ID = ENB_PHY_DL_TICK
ID = ENB_PHY_DLSCH_UE_DCI
DESC = eNodeB downlink UE specific DCI as sent by the PHY layer
GROUP = ALL:PHY:GRAPHIC:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,dci_format : int,harq_pid
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,dci_format : int,harq_pid : int,mcs : int,TBS
ID = ENB_PHY_DLSCH_UE_ACK
DESC = eNodeB downlink UE ACK as seen by the PHY layer in process_HARQ_feedback
GROUP = ALL:PHY:GRAPHIC:ENB
@@ -28,7 +28,7 @@ ID = ENB_PHY_DLSCH_UE_NACK
ID = ENB_PHY_ULSCH_UE_DCI
DESC = eNodeB uplink UE specific DCI as sent by the PHY layer
GROUP = ALL:PHY:GRAPHIC:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid : int,mcs : int,round : int,first_rb : int,nb_rb : int,TBS
ID = ENB_PHY_ULSCH_UE_NO_DCI_RETRANSMISSION
DESC = eNodeB uplink UE retransmission due to PHICH NACK (see generate_phich_top)
GROUP = ALL:PHY:GRAPHIC:ENB
@@ -61,6 +61,18 @@ ID = ENB_PHY_PUCCH_1_ENERGY
DESC = eNodeB PUCCH 1 energy and threshold
GROUP = ALL:PHY:GRAPHIC:HEAVY:ENB
FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,energy : int,threshold
ID = ENB_PHY_PHICH
DESC = eNodeB PHICH
GROUP = ALL:PHY:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid : int,NGROUP : int,NSF : int,ngroup : int,nseq : int,ACK : int,first_rb : int,n_DMRS
ID = ENB_PHY_MSG3_ALLOCATION
DESC = eNodeB Msg3 allocation/reallocation
GROUP = ALL:PHY:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,first_transmission : int,Msg3_frame : int,Msg3_subframe
ID = ENB_PHY_INITIATE_RA_PROCEDURE
DESC = eNodeB initiates a random access procedure after detecting enough energy for one of the preambles
GROUP = ALL:PHY:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,preamble : int,energy : int,delay
#MAC logs
ID = ENB_MAC_UE_DL_SDU
@@ -70,7 +82,7 @@ ID = ENB_MAC_UE_DL_SDU
ID = ENB_MAC_UE_UL_SCHEDULE
DESC = MAC uplink UE scheduling decision
GROUP = ALL:MAC:ENB
FORMAT = int,eNB_ID : int,CC_id : int,rnti : int,frame : int,subframe : int,harq_pid : int,mcs : int,first_rb : int,nb_rb : int,TBS
FORMAT = int,eNB_ID : int,CC_id : int,rnti : int,frame : int,subframe : int,harq_pid : int,mcs : int,first_rb : int,nb_rb : int,TBS : int,ndi
ID = ENB_MAC_UE_UL_SCHEDULE_RETRANSMISSION
DESC = MAC uplink UE scheduling retransmission decision
GROUP = ALL:MAC:ENB
@@ -411,6 +423,27 @@ ID = LEGACY_ENB_APP_TRACE
GROUP = ALL:LEGACY_ENB_APP:LEGACY_GROUP_TRACE:LEGACY
FORMAT = string,log
ID = LEGACY_FLEXRAN_AGENT_INFO
DESC = FLEXRAN_AGENT legacy logs - info level
GROUP = ALL:LEGACY_FLEXRAN_AGENT:LEGACY_GROUP_INFO:LEGACY
FORMAT = string,log
ID = LEGACY_FLEXRAN_AGENT_ERROR
DESC = FLEXRAN_AGENT legacy logs - error level
GROUP = ALL:LEGACY_FLEXRAN_AGENT:LEGACY_GROUP_ERROR:LEGACY
FORMAT = string,log
ID = LEGACY_FLEXRAN_AGENT_WARNING
DESC = FLEXRAN_AGENT legacy logs - warning level
GROUP = ALL:LEGACY_FLEXRAN_AGENT:LEGACY_GROUP_WARNING:LEGACY
FORMAT = string,log
ID = LEGACY_FLEXRAN_AGENT_DEBUG
DESC = FLEXRAN_AGENT legacy logs - debug level
GROUP = ALL:LEGACY_FLEXRAN_AGENT:LEGACY_GROUP_DEBUG:LEGACY
FORMAT = string,log
ID = LEGACY_FLEXRAN_AGENT_TRACE
DESC = FLEXRAN_AGENT legacy logs - trace level
GROUP = ALL:LEGACY_FLEXRAN_AGENT:LEGACY_GROUP_TRACE:LEGACY
FORMAT = string,log
ID = LEGACY_SCTP_INFO
DESC = SCTP legacy logs - info level
GROUP = ALL:LEGACY_SCTP:LEGACY_GROUP_INFO:LEGACY
@@ -806,12 +839,36 @@ ID = buf_test
#variables
ID = VCD_VARIABLE_FRAME_NUMBER_TX_ENB
DESC = VCD variable FRAME_NUMBER_TX_ENB
ID = VCD_VARIABLE_FRAME_NUMBER_TX0_ENB
DESC = VCD variable FRAME_NUMBER_TX0_ENB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_FRAME_NUMBER_RX_ENB
DESC = VCD variable FRAME_NUMBER_RX_ENB
ID = VCD_VARIABLE_FRAME_NUMBER_TX1_ENB
DESC = VCD variable FRAME_NUMBER_TX1_ENB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_FRAME_NUMBER_RX0_ENB
DESC = VCD variable FRAME_NUMBER_RX0_ENB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_FRAME_NUMBER_RX1_ENB
DESC = VCD variable FRAME_NUMBER_RX1_ENB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX0_ENB
DESC = VCD variable SUBFRAME_NUMBER_TX0_ENB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX1_ENB
DESC = VCD variable SUBFRAME_NUMBER_TX1_ENB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX0_ENB
DESC = VCD variable SUBFRAME_NUMBER_RX0_ENB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX1_ENB
DESC = VCD variable SUBFRAME_NUMBER_RX1_ENB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_RUNTIME_TX_ENB
@@ -822,28 +879,36 @@ ID = VCD_VARIABLE_RUNTIME_RX_ENB
DESC = VCD variable RUNTIME_RX_ENB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_FRAME_NUMBER_TX_UE
DESC = VCD variable FRAME_NUMBER_TX_UE
ID = VCD_VARIABLE_FRAME_NUMBER_TX0_UE
DESC = VCD variable FRAME_NUMBER_TX0_UE
GROUP = ALL:VCD:UE:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_FRAME_NUMBER_RX_UE
DESC = VCD variable FRAME_NUMBER_RX_UE
ID = VCD_VARIABLE_FRAME_NUMBER_TX1_UE
DESC = VCD variable FRAME_NUMBER_TX1_UE
GROUP = ALL:VCD:UE:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SLOT_NUMBER_TX_UE
DESC = VCD variable SLOT_NUMBER_TX_UE
ID = VCD_VARIABLE_FRAME_NUMBER_RX0_UE
DESC = VCD variable FRAME_NUMBER_RX0_UE
GROUP = ALL:VCD:UE:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SLOT_NUMBER_RX_UE
DESC = VCD variable SLOT_NUMBER_RX_UE
ID = VCD_VARIABLE_FRAME_NUMBER_RX1_UE
DESC = VCD variable FRAME_NUMBER_RX1_UE
GROUP = ALL:VCD:UE:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX_UE
DESC = VCD variable SUBFRAME_NUMBER_TX_UE
ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX0_UE
DESC = VCD variable SUBFRAME_NUMBER_TX0_UE
GROUP = ALL:VCD:UE:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX_UE
DESC = VCD variable SUBFRAME_NUMBER_RX_UE
ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX1_UE
DESC = VCD variable SUBFRAME_NUMBER_TX1_UE
GROUP = ALL:VCD:UE:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX0_UE
DESC = VCD variable SUBFRAME_NUMBER_RX0_UE
GROUP = ALL:VCD:UE:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX1_UE
DESC = VCD variable SUBFRAME_NUMBER_RX1_UE
GROUP = ALL:VCD:UE:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_MISSED_SLOTS_ENB
@@ -1202,6 +1267,14 @@ ID = VCD_VARIABLE_UE0_SFN7
DESC = VCD variable UE0_SFN7
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_UE0_TRX_READ_NS
DESC = VCD variable UE0_TRX_READ_NS
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_UE0_TRX_WRITE_NS
DESC = VCD variable UE0_TRX_WRITE_NS
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
#functions
@@ -1217,92 +1290,76 @@ ID = VCD_FUNCTION_TRX_WRITE
DESC = VCD function TRX_WRITE
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_TX0
DESC = VCD function eNB_PROC_TX0
ID = VCD_FUNCTION_TRX_READ_IF
DESC = VCD function TRX_READ_IF
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_RX0
DESC = VCD function eNB_PROC_RX0
ID = VCD_FUNCTION_TRX_WRITE_IF
DESC = VCD function TRX_WRITE_IF
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_TX1
DESC = VCD function eNB_PROC_TX1
ID = VCD_FUNCTION_eNB_PROC_RXTX0
DESC = VCD function eNB_PROC_RXTX0
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_RX1
DESC = VCD function eNB_PROC_RX1
ID = VCD_FUNCTION_eNB_PROC_RXTX1
DESC = VCD function eNB_PROC_RXTX1
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_TX2
DESC = VCD function eNB_PROC_TX2
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_RX2
DESC = VCD function eNB_PROC_RX2
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_TX3
DESC = VCD function eNB_PROC_TX3
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_RX3
DESC = VCD function eNB_PROC_RX3
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_TX4
DESC = VCD function eNB_PROC_TX4
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_RX4
DESC = VCD function eNB_PROC_RX4
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_TX5
DESC = VCD function eNB_PROC_TX5
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_RX5
DESC = VCD function eNB_PROC_RX5
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_TX6
DESC = VCD function eNB_PROC_TX6
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_RX6
DESC = VCD function eNB_PROC_RX6
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_TX7
DESC = VCD function eNB_PROC_TX7
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_RX7
DESC = VCD function eNB_PROC_RX7
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_TX8
DESC = VCD function eNB_PROC_TX8
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_RX8
DESC = VCD function eNB_PROC_RX8
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_TX9
DESC = VCD function eNB_PROC_TX9
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_PROC_RX9
DESC = VCD function eNB_PROC_RX9
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_THREAD_TX
DESC = VCD function UE_THREAD_TX
ID = VCD_FUNCTION_UE_THREAD_SYNCH
DESC = VCD function UE_THREAD_SYNCH
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_THREAD_RX
DESC = VCD function UE_THREAD_RX
ID = VCD_FUNCTION_UE_THREAD_RXTX0
DESC = VCD function UE_THREAD_RXTX0
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_THREAD_RXTX1
DESC = VCD function UE_THREAD_RXTX1
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_TRX_READ_SF9
DESC = VCD function TRX_READ_SF9
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_TRX_WRITE_SF9
DESC = VCD function TRX_WRITE_SF9
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_SIGNAL_COND_RXTX
DESC = VCD function UE_SIGNAL_COND_RXTX
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_WAIT_COND_RXTX0
DESC = VCD function UE_WAIT_COND_RXTX0
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_WAIT_COND_RXTX1
DESC = VCD function UE_WAIT_COND_RXTX1
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT0
DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT0
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT1
DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT1
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT0
DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT0
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT1
DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT1
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT0
DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT0
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1
DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_eNB_TX
@@ -1377,8 +1434,28 @@ ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_TX
DESC = VCD function PHY_PROCEDURES_ENB_TX
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX
DESC = VCD function PHY_PROCEDURES_ENB_RX
ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_TX1
DESC = VCD function PHY_PROCEDURES_ENB_TX1
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX_COMMON
DESC = VCD function PHY_PROCEDURES_ENB_RX_COMMON
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX_COMMON1
DESC = VCD function PHY_PROCEDURES_ENB_RX_COMMON1
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX_UESPEC
DESC = VCD function PHY_PROCEDURES_ENB_RX_UESPEC
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX_UESPEC1
DESC = VCD function PHY_PROCEDURES_ENB_RX_UESPEC1
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_ENB_SLOT_FEP
DESC = VCD function ENB_SLOT_FEP
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX
@@ -1389,6 +1466,26 @@ ID = VCD_FUNCTION_PHY_PROCEDURES_UE_RX
DESC = VCD function PHY_PROCEDURES_UE_RX
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_ULSCH_UESPEC
DESC = VCD function PHY_PROCEDURES_UE_TX_ULSCH_UESPEC
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_PUCCH
DESC = VCD function PHY_PROCEDURES_UE_TX_PUCCH
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_ULSCH_COMMON
DESC = VCD function PHY_PROCEDURES_UE_TX_ULSCH_COMMON
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_PRACH
DESC = VCD function PHY_PROCEDURES_UE_TX_PRACH
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_ULSCH_RAR
DESC = VCD function PHY_PROCEDURES_UE_TX_ULSCH_RAR
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_LTE
DESC = VCD function PHY_PROCEDURES_ENB_LTE
GROUP = ALL:VCD:ENB:VCD_FUNCTION
@@ -1477,6 +1574,22 @@ ID = VCD_FUNCTION_RX_PHICH
DESC = VCD function RX_PHICH
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PDSCH_PROC
DESC = VCD function PDSCH_PROC
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PDSCH_PROC_SI
DESC = VCD function PDSCH_PROC_SI
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PDSCH_PROC_P
DESC = VCD function PDSCH_PROC_P
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PDSCH_PROC_RA
DESC = VCD function PDSCH_PROC_RA
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_PHY_UE_CONFIG_SIB2
DESC = VCD function PHY_UE_CONFIG_SIB2
GROUP = ALL:VCD:UE:VCD_FUNCTION
@@ -1573,10 +1686,22 @@ ID = VCD_FUNCTION_ENB_DLSCH_ENCODING
DESC = VCD function ENB_DLSCH_ENCODING
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_ENB_DLSCH_ENCODING_W
DESC = VCD function ENB_DLSCH_ENCODING_W
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_ENB_DLSCH_SCRAMBLING
DESC = VCD function ENB_DLSCH_SCRAMBLING
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_ENB_BEAM_PRECODING
DESC = VCD function ENB_BEAM_PRECODING
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_ENB_OFDM_MODULATION
DESC = VCD function ENB_OFDM_MODULATION
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_MACPHY_INIT
DESC = VCD function MACPHY_INIT
GROUP = ALL:VCD:ENB:VCD_FUNCTION
@@ -1645,6 +1770,10 @@ ID = VCD_FUNCTION_UE_DECODE_SI
DESC = VCD function UE_DECODE_SI
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_DECODE_PCCH
DESC = VCD function UE_DECODE_PCCH
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_UE_DECODE_CCCH
DESC = VCD function UE_DECODE_CCCH
GROUP = ALL:VCD:UE:VCD_FUNCTION
@@ -1685,6 +1814,10 @@ ID = VCD_FUNCTION_RLC_DATA_REQ
DESC = VCD function RLC_DATA_REQ
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_RLC_DATA_IND
DESC = VCD function RLC_DATA_IND
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_MAC_RLC_STATUS_IND
DESC = VCD function MAC_RLC_STATUS_IND
GROUP = ALL:VCD:ENB:VCD_FUNCTION
@@ -1789,3 +1922,98 @@ ID = VCD_FUNCTION_TEST
DESC = VCD function TEST
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_SEND_IF4
DESC = VCD function SEND_IF4
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_RECV_IF4
DESC = VCD function RECV_IF4
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_SEND_IF5
DESC = VCD function SEND_IF5
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_RECV_IF5
DESC = VCD function RECV_IF5
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
#################
#### UE LOGS ####
#################
#general logs
ID = UE_MASTER_TICK
DESC = UE master tick - one tick per ms, to be used as "reference clock", mostly for ticktime view
GROUP = ALL:GENERAL:UE
FORMAT = int,eNB_ID : int,frame : int,subframe
#PHY logs
ID = UE_PHY_UL_TICK
DESC = UE uplink tick - one tick per ms at start of uplink processing
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe
ID = UE_PHY_DL_TICK
DESC = UE downlink tick - one tick per ms at start of downlink processing
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe
ID = UE_PHY_DLSCH_UE_DCI
DESC = UE downlink UE specific DCI as sent by the PHY layer
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,dci_format : int,harq_pid : int,mcs : int,TBS
ID = UE_PHY_DLSCH_UE_ACK
DESC = UE downlink UE ACK as seen by the PHY layer in process_HARQ_feedback
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid
ID = UE_PHY_DLSCH_UE_NACK
DESC = UE downlink UE NACK as seen by the PHY layer in process_HARQ_feedback
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid
ID = UE_PHY_ULSCH_UE_DCI
DESC = UE uplink UE specific DCI as sent by the PHY layer
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid : int,mcs : int,round : int,first_rb : int,nb_rb : int,TBS
ID = UE_PHY_ULSCH_UE_ACK
DESC = UE uplink UE ACK as seen by the PHY layer
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid
ID = UE_PHY_ULSCH_UE_NACK
DESC = UE uplink UE NACK as seen by the PHY layer
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid
ID = UE_PHY_INPUT_SIGNAL
DESC = UE received signal in the time domain for a duration of 1ms
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,antenna : buffer,rxdata
ID = UE_PHY_DL_CHANNEL_ESTIMATE
DESC = UE channel estimation in the time domain
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,antenna : buffer,chest_t
ID = UE_PHY_PDCCH_IQ
DESC = UE PDCCH received IQ data
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,nb_rb : int,NB_RB_DL : int,symbols_per_tti : buffer,rxdataF_comp
ID = UE_PHY_PDCCH_ENERGY
DESC = UE PDSCH 1 energy and threshold
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,pdcch_ch_level00 : int,pdcch_ch_level01 : int,pdcch_ch_level10: int,pdcch_ch_level11
ID = UE_PHY_PDSCH_IQ
DESC = UE PDSCH received IQ data
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,nb_rb : int,N_RB_UL : int,symbols_per_tti : buffer,pusch_comp
ID = UE_PHY_PDSCH_ENERGY
DESC = UE PDSCH 1 energy and threshold
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,pdsch_ch_level00 : int,pdsch_ch_level01 : int,pdsch_ch_level10: int,pdsch_ch_level11
ID = UE_PHY_PUSCH_TX_POWER
DESC = UE PUSCH tx power
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,UE_id : int,frame : int,subframe : int,p0_pusch : int,ampl: int,g_pusch: int,pl: int,nb_rb
ID = UE_PHY_PUCCH_TX_POWER
DESC = UE PDSCH 1 energy and threshold
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,UE_id : int,frame : int,subframe : int,p0_pucch : int,ampl: int,g_pucch: int,pl
ID = UE_PHY_MEAS
DESC = UE PHY measurements
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,rsrp : int,rssi : int,snr: int,rx_power: int,noise_power: int,w_cqi: int,freq_offset

View File

@@ -5,7 +5,7 @@ CFLAGS=-Wall -g -pthread -DT_TRACER -I.
LIBS=-lX11 -lm -lpng -lXft
all: record replay extract_config textlog enb vcd macpdu2wireshark
all: record replay extract_config textlog enb ue vcd macpdu2wireshark
record: utils.o record.o database.o config.o
$(CC) $(CFLAGS) -o record $^ $(LIBS)
@@ -26,6 +26,11 @@ enb: utils.o enb.o database.o event.o handler.o config.o \
filter/filter.a
$(CC) $(CFLAGS) -o enb $^ $(LIBS)
ue: utils.o ue.o database.o event.o handler.o config.o \
event_selector.o view/view.a gui/gui.a logger/logger.a \
filter/filter.a
$(CC) $(CFLAGS) -o ue $^ $(LIBS)
vcd: utils.o vcd.o database.o event.o handler.o config.o \
event_selector.o view/view.a gui/gui.a logger/logger.a \
filter/filter.a

View File

@@ -24,6 +24,30 @@ typedef struct {
view *pdcpview;
view *rrcview;
view *legacy;
widget *current_ue_label;
widget *prev_ue_button;
widget *next_ue_button;
widget *pusch_iq_ue_xy_plot;
widget *ul_estimate_ue_xy_plot;
widget *pucch1_energy_ue_xy_plot;
widget *pucch_iq_ue_xy_plot;
widget *dl_ul_harq_ue_label;
widget *dl_mcs_xy_plot;
widget *ul_mcs_xy_plot;
logger *pusch_iq_ue_logger;
logger *ul_estimate_ue_logger;
logger *pucch1_energy_ue_threshold_logger;
logger *pucch1_energy_ue_energy_logger;
logger *pucch_iq_ue_logger;
logger *dl_dci_logger[8];
logger *dl_ack_logger[8];
logger *dl_nack_logger[8];
logger *ul_dci_logger[8];
logger *ul_dci_retransmission_logger[8];
logger *ul_ack_logger[8];
logger *ul_nack_logger[8];
logger *dl_mcs_logger;
logger *ul_mcs_logger;
} enb_gui;
typedef struct {
@@ -31,6 +55,9 @@ typedef struct {
int *is_on;
int nevents;
pthread_mutex_t lock;
enb_gui *e;
int ue; /* what UE is displayed in the UE specific views */
void *database;
} enb_data;
void is_on_changed(void *_d)
@@ -86,18 +113,109 @@ static void *gui_thread(void *_g)
return NULL;
}
static filter *ticktime_filter(void *database, char *event, int i)
static filter *ticktime_filter(void *database, char *event, int i, int ue)
{
/* filter is "harq_pid == i && UE_id == 0 && eNB_id == 0" */
return
filter_and(
filter_eq(filter_evarg(database, event, "harq_pid"), filter_int(i)),
filter_and(
filter_eq(filter_evarg(database, event, "UE_id"), filter_int(0)),
filter_eq(filter_evarg(database, event, "UE_id"), filter_int(ue)),
filter_eq(filter_evarg(database, event, "eNB_ID"), filter_int(0))));
}
static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
static void set_current_ue(gui *g, enb_data *e, int ue)
{
int i;
char s[256];
sprintf(s, "[UE %d] ", ue);
label_set_text(g, e->e->current_ue_label, s);
sprintf(s, "PUSCH IQ [UE %d]", ue);
xy_plot_set_title(g, e->e->pusch_iq_ue_xy_plot, s);
sprintf(s, "UL estimated channel [UE %d]", ue);
xy_plot_set_title(g, e->e->ul_estimate_ue_xy_plot, s);
sprintf(s, "PUCCH1 energy (SR) [UE %d]", ue);
xy_plot_set_title(g, e->e->pucch1_energy_ue_xy_plot, s);
sprintf(s, "PUCCH IQ [UE %d]", ue);
xy_plot_set_title(g, e->e->pucch_iq_ue_xy_plot, s);
sprintf(s, "DL/UL HARQ (x8) [UE %d]", ue);
label_set_text(g, e->e->dl_ul_harq_ue_label, s);
sprintf(s, "DL MCS [UE %d]", ue);
xy_plot_set_title(g, e->e->dl_mcs_xy_plot, s);
sprintf(s, "UL MCS [UE %d]", ue);
xy_plot_set_title(g, e->e->ul_mcs_xy_plot, s);
logger_set_filter(e->e->pusch_iq_ue_logger,
filter_eq(
filter_evarg(e->database, "ENB_PHY_PUSCH_IQ", "UE_ID"),
filter_int(ue)));
logger_set_filter(e->e->ul_estimate_ue_logger,
filter_eq(
filter_evarg(e->database, "ENB_PHY_UL_CHANNEL_ESTIMATE", "UE_ID"),
filter_int(ue)));
logger_set_filter(e->e->pucch1_energy_ue_threshold_logger,
filter_eq(
filter_evarg(e->database, "ENB_PHY_PUCCH_1_ENERGY", "UE_ID"),
filter_int(ue)));
logger_set_filter(e->e->pucch1_energy_ue_energy_logger,
filter_eq(
filter_evarg(e->database, "ENB_PHY_PUCCH_1_ENERGY", "UE_ID"),
filter_int(ue)));
logger_set_filter(e->e->pucch_iq_ue_logger,
filter_eq(
filter_evarg(e->database, "ENB_PHY_PUCCH_1AB_IQ", "UE_ID"),
filter_int(ue)));
for (i = 0; i < 8; i++) {
logger_set_filter(e->e->dl_dci_logger[i],
ticktime_filter(e->database, "ENB_PHY_DLSCH_UE_DCI", i, ue));
logger_set_filter(e->e->dl_ack_logger[i],
ticktime_filter(e->database, "ENB_PHY_DLSCH_UE_ACK", i, ue));
logger_set_filter(e->e->dl_nack_logger[i],
ticktime_filter(e->database, "ENB_PHY_DLSCH_UE_NACK", i, ue));
logger_set_filter(e->e->ul_dci_logger[i],
ticktime_filter(e->database, "ENB_PHY_ULSCH_UE_DCI", i, ue));
logger_set_filter(e->e->ul_dci_retransmission_logger[i],
ticktime_filter(e->database,
"ENB_PHY_ULSCH_UE_NO_DCI_RETRANSMISSION", i, ue));
logger_set_filter(e->e->ul_ack_logger[i],
ticktime_filter(e->database, "ENB_PHY_ULSCH_UE_ACK", i, ue));
logger_set_filter(e->e->ul_nack_logger[i],
ticktime_filter(e->database, "ENB_PHY_ULSCH_UE_NACK", i, ue));
}
logger_set_filter(e->e->dl_mcs_logger,
filter_eq(
filter_evarg(e->database, "ENB_PHY_DLSCH_UE_DCI", "UE_id"),
filter_int(ue)));
logger_set_filter(e->e->ul_mcs_logger,
filter_eq(
filter_evarg(e->database, "ENB_PHY_ULSCH_UE_DCI", "UE_id"),
filter_int(ue)));
}
static void click(void *private, gui *g,
char *notification, widget *w, void *notification_data)
{
int *d = notification_data;
int button = d[0];
enb_data *ed = private;
enb_gui *e = ed->e;
int ue = ed->ue;
if (button != 1) return;
if (w == e->prev_ue_button) { ue--; if (ue < 0) ue = 0; }
if (w == e->next_ue_button) ue++;
if (pthread_mutex_lock(&ed->lock)) abort();
if (ue != ed->ue) {
set_current_ue(g, ed, ue);
ed->ue = ue;
}
if (pthread_mutex_unlock(&ed->lock)) abort();
}
static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database,
enb_data *ed)
{
widget *main_window;
widget *top_container;
@@ -113,7 +231,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
widget *text;
view *textview;
int i;
widget *w;
widget *w, *w2;
view *v;
logger *l;
@@ -124,7 +242,26 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
line = new_container(g, HORIZONTAL);
widget_add_child(g, top_container, line, -1);
logo = new_image(g, openair_logo_png, openair_logo_png_len);
widget_add_child(g, line, logo, -1);
/* logo + prev/next UE buttons */
col = new_container(g, VERTICAL);
widget_add_child(g, col, logo, -1);
w = new_container(g, HORIZONTAL);
widget_add_child(g, col, w, -1);
w2 = new_label(g, "");
widget_add_child(g, w, w2, -1);
e->current_ue_label = w2;
/* TODO: use button widget, not label widget */
w2 = new_label(g, " [prev UE] ");
widget_add_child(g, w, w2, -1);
label_set_clickable(g, w2, 1);
e->prev_ue_button = w2;
w2 = new_label(g, " [next UE] ");
widget_add_child(g, w, w2, -1);
label_set_clickable(g, w2, 1);
e->next_ue_button = w2;
widget_add_child(g, line, col, -1);
input_signal_plot = new_xy_plot(g, 256, 55, "input signal", 20);
widget_add_child(g, line, input_signal_plot, -1);
xy_plot_set_range(g, input_signal_plot, 0, 7680*10, 20, 70);
@@ -138,21 +275,20 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
g, input_signal_plot, new_color(g, "#0c0c72"), XY_LOOP_MODE);
logger_add_view(input_signal_log, input_signal_view);
/* UE 0 PUSCH IQ data */
w = new_xy_plot(g, 55, 55, "PUSCH IQ [UE 0]", 50);
/* UE x PUSCH IQ data */
w = new_xy_plot(g, 55, 55, "", 50);
e->pusch_iq_ue_xy_plot = w;
widget_add_child(g, line, w, -1);
xy_plot_set_range(g, w, -1000, 1000, -1000, 1000);
l = new_iqlog(h, database, "ENB_PHY_PUSCH_IQ", "nb_rb",
"N_RB_UL", "symbols_per_tti", "pusch_comp");
v = new_view_xy(100*12*14,10,g,w,new_color(g,"#000"),XY_FORCED_MODE);
logger_add_view(l, v);
logger_set_filter(l,
filter_eq(
filter_evarg(database, "ENB_PHY_PUSCH_IQ", "UE_ID"),
filter_int(0)));
e->pusch_iq_ue_logger = l;
/* UE 0 estimated UL channel */
w = new_xy_plot(g, 280, 55, "UL estimated channel [UE 0]", 50);
/* UE x estimated UL channel */
w = new_xy_plot(g, 280, 55, "", 50);
e->ul_estimate_ue_xy_plot = w;
widget_add_child(g, line, w, -1);
xy_plot_set_range(g, w, 0, 512*10, -10, 80);
l = new_framelog(h, database,
@@ -161,43 +297,87 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
framelog_set_update_only_at_sf9(l, 0);
v = new_view_xy(512*10, 10, g, w, new_color(g, "#0c0c72"), XY_LOOP_MODE);
logger_add_view(l, v);
logger_set_filter(l,
filter_eq(
filter_evarg(database, "ENB_PHY_UL_CHANNEL_ESTIMATE", "UE_ID"),
filter_int(0)));
e->ul_estimate_ue_logger = l;
/* UE 0 PUCCH energy */
w = new_xy_plot(g, 128, 55, "PUCCH1 energy (SR) [UE 0]", 50);
/* UE x PUCCH energy */
w = new_xy_plot(g, 128, 55, "", 50);
e->pucch1_energy_ue_xy_plot = w;
widget_add_child(g, line, w, -1);
xy_plot_set_range(g, w, 0, 1024*10, -10, 80);
l = new_ttilog(h, database,
"ENB_PHY_PUCCH_1_ENERGY", "frame", "subframe", "threshold", 0);
v = new_view_tti(10, g, w, new_color(g, "#ff0000"));
logger_add_view(l, v);
logger_set_filter(l,
filter_eq(
filter_evarg(database, "ENB_PHY_PUCCH_1_ENERGY", "UE_ID"),
filter_int(0)));
e->pucch1_energy_ue_threshold_logger = l;
l = new_ttilog(h, database,
"ENB_PHY_PUCCH_1_ENERGY", "frame", "subframe", "energy", 1);
v = new_view_tti(10, g, w, new_color(g, "#0c0c72"));
logger_add_view(l, v);
logger_set_filter(l,
filter_eq(
filter_evarg(database, "ENB_PHY_PUCCH_1_ENERGY", "UE_ID"),
filter_int(0)));
e->pucch1_energy_ue_energy_logger = l;
/* UE 0 PUCCH IQ data */
w = new_xy_plot(g, 55, 55, "PUCCH IQ [UE 0]", 50);
/* UE x PUCCH IQ data */
w = new_xy_plot(g, 55, 55, "", 50);
e->pucch_iq_ue_xy_plot = w;
widget_add_child(g, line, w, -1);
xy_plot_set_range(g, w, -100, 100, -100, 100);
xy_plot_set_range(g, w, -2000, 2000, -2000, 2000);
l = new_iqdotlog(h, database, "ENB_PHY_PUCCH_1AB_IQ", "I", "Q");
v = new_view_xy(500, 10, g, w, new_color(g,"#000"), XY_LOOP_MODE);
logger_add_view(l, v);
logger_set_filter(l,
filter_eq(
filter_evarg(database, "ENB_PHY_PUCCH_1AB_IQ", "UE_ID"),
filter_int(0)));
e->pucch_iq_ue_logger = l;
/* UE x DL mcs */
line = new_container(g, HORIZONTAL);
widget_add_child(g, top_container, line, -1);
w = new_xy_plot(g, 128, 55, "", 20);
xy_plot_set_range(g, w, 0, 1024*10, -2, 30);
e->dl_mcs_xy_plot = w;
widget_add_child(g, line, w, -1);
l = new_ticked_ttilog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe",
"ENB_PHY_DLSCH_UE_DCI", "mcs", 0, -1);
v = new_view_tti(10, g, w, new_color(g, "#0c0c72"));
logger_add_view(l, v);
e->dl_mcs_logger = l;
/* UE x UL mcs */
w = new_xy_plot(g, 128, 55, "", 20);
xy_plot_set_range(g, w, 0, 1024*10, -2, 30);
e->ul_mcs_xy_plot = w;
widget_add_child(g, line, w, -1);
l = new_ticked_ttilog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe",
"ENB_PHY_ULSCH_UE_DCI", "mcs", 0, -1);
v = new_view_tti(10, g, w, new_color(g, "#0c0c72"));
logger_add_view(l, v);
e->ul_mcs_logger = l;
/* UE x DL PHY (truly: DCI) throughput */
col = new_container(g, VERTICAL);
widget_add_child(g, line, col, -1);
w = new_xy_plot(g, 70, 10, "DL PHY [0]", 35);
w2 = new_textarea(g, 70, 11, 64);
xy_plot_set_range(g, w, 0, 1000, 0, 100000);
xy_plot_set_tick_type(g, w, XY_PLOT_SCROLL_TICK);
widget_add_child(g, col, w2, -1);
widget_add_child(g, col, w, -1);
container_set_child_growable(g, col, w, 1);
l = new_throughputlog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe",
"ENB_PHY_DLSCH_UE_DCI", "TBS");
v = new_view_scrolltti(10, g, w, new_color(g, "#0c0c72"), w2);
logger_add_view(l, v);
/* UE x UL PHY (truly: DCI) throughput */
col = new_container(g, VERTICAL);
widget_add_child(g, line, col, -1);
w = new_xy_plot(g, 70, 10, "UL PHY [0]", 35);
w2 = new_textarea(g, 70, 11, 64);
xy_plot_set_range(g, w, 0, 1000, 0, 100000);
xy_plot_set_tick_type(g, w, XY_PLOT_SCROLL_TICK);
widget_add_child(g, col, w2, -1);
widget_add_child(g, col, w, -1);
container_set_child_growable(g, col, w, 1);
l = new_throughputlog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe",
"ENB_PHY_ULSCH_UE_DCI", "TBS");
v = new_view_scrolltti(10, g, w, new_color(g, "#0c0c72"), w2);
logger_add_view(l, v);
/* downlink/uplink UE DCIs */
widget_add_child(g, top_container,
@@ -250,8 +430,8 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
logger_add_view(timelog, subview);
/* harq processes' ticktime view */
widget_add_child(g, top_container,
new_label(g,"DL/UL HARQ (x8) [UE 0]"), -1);
e->dl_ul_harq_ue_label = new_label(g, "");
widget_add_child(g, top_container, e->dl_ul_harq_ue_label, -1);
line = new_container(g, HORIZONTAL);
widget_add_child(g, top_container, line, -1);
timeline_plot = new_timeline(g, 512, 2*8+2, 3);
@@ -271,15 +451,14 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
/* tick on UL view */
subview = new_subview_ticktime(timeview, 9, new_color(g,"#bbb"), 3600*1000);
logger_add_view(timelog, subview);
/* DL harq pids */
/* DL DCI */
for (i = 0; i < 8; i++) {
timelog = new_ticklog(h, database, "ENB_PHY_DLSCH_UE_DCI",
"frame", "subframe");
subview = new_subview_ticktime(timeview, i+1,
new_color(g,"#55f"), 3600*1000);
logger_add_view(timelog, subview);
logger_set_filter(timelog,
ticktime_filter(database, "ENB_PHY_DLSCH_UE_DCI", i));
e->dl_dci_logger[i] = timelog;
}
/* DL ACK */
for (i = 0; i < 8; i++) {
@@ -288,8 +467,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
subview = new_subview_ticktime(timeview, i+1,
new_color(g,"#282"), 3600*1000);
logger_add_view(timelog, subview);
logger_set_filter(timelog,
ticktime_filter(database, "ENB_PHY_DLSCH_UE_ACK", i));
e->dl_ack_logger[i] = timelog;
}
/* DL NACK */
for (i = 0; i < 8; i++) {
@@ -298,10 +476,9 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
subview = new_subview_ticktime(timeview, i+1,
new_color(g,"#f22"), 3600*1000);
logger_add_view(timelog, subview);
logger_set_filter(timelog,
ticktime_filter(database, "ENB_PHY_DLSCH_UE_NACK", i));
e->dl_nack_logger[i] = timelog;
}
/* UL harq pids */
/* UL DCI/retransmission without DCI */
for (i = 0; i < 8; i++) {
/* first transmission */
timelog = new_ticklog(h, database, "ENB_PHY_ULSCH_UE_DCI",
@@ -309,17 +486,14 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
subview = new_subview_ticktime(timeview, i+9+1,
new_color(g,"#55f"), 3600*1000);
logger_add_view(timelog, subview);
logger_set_filter(timelog,
ticktime_filter(database, "ENB_PHY_ULSCH_UE_DCI", i));
e->ul_dci_logger[i] = timelog;
/* retransmission */
timelog = new_ticklog(h, database,
"ENB_PHY_ULSCH_UE_NO_DCI_RETRANSMISSION", "frame", "subframe");
subview = new_subview_ticktime(timeview, i+9+1,
new_color(g,"#99f"), 3600*1000);
logger_add_view(timelog, subview);
logger_set_filter(timelog,
ticktime_filter(database,
"ENB_PHY_ULSCH_UE_NO_DCI_RETRANSMISSION", i));
e->ul_dci_retransmission_logger[i] = timelog;
}
/* UL ACK */
for (i = 0; i < 8; i++) {
@@ -328,8 +502,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
subview = new_subview_ticktime(timeview, i+9+1,
new_color(g,"#282"), 3600*1000);
logger_add_view(timelog, subview);
logger_set_filter(timelog,
ticktime_filter(database, "ENB_PHY_ULSCH_UE_ACK", i));
e->ul_ack_logger[i] = timelog;
}
/* UL NACK */
for (i = 0; i < 8; i++) {
@@ -338,8 +511,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
subview = new_subview_ticktime(timeview, i+9+1,
new_color(g,"#f22"), 3600*1000);
logger_add_view(timelog, subview);
logger_set_filter(timelog,
ticktime_filter(database, "ENB_PHY_ULSCH_UE_NACK", i));
e->ul_nack_logger[i] = timelog;
}
/* phy/mac/rlc/pdcp/rrc textlog */
@@ -416,6 +588,10 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
widget_add_child(g, top_container, text, -1);
container_set_child_growable(g, top_container, text, 1);
e->legacy = new_view_textlist(10000, 10, g, text);
set_current_ue(g, ed, 0);
register_notifier(g, "click", e->prev_ue_button, click, ed);
register_notifier(g, "click", e->next_ue_button, click, ed);
}
void view_add_log(view *v, char *log, event_handler *h, void *database,
@@ -495,7 +671,11 @@ int main(int n, char **v)
g = gui_init();
new_thread(gui_thread, g);
enb_main_gui(&eg, g, h, database);
enb_data.ue = 0;
enb_data.e = &eg;
enb_data.database = database;
enb_main_gui(&eg, g, h, database, &enb_data);
for (i = 0; i < number_of_events; i++) {
logger *textlog;
@@ -525,9 +705,9 @@ int main(int n, char **v)
on_off(database, "ENB_PHY_PUCCH_1_ENERGY", is_on, 1);
on_off(database, "ENB_PHY_PUCCH_1AB_IQ", is_on, 1);
on_off(database, "LEGACY_RRC_INFO", is_on, 1);
on_off(database, "LEGACY_RRC_ERROR", is_on, 1);
on_off(database, "LEGACY_RRC_WARNING", is_on, 1);
on_off(database, "LEGACY_GROUP_INFO", is_on, 1);
on_off(database, "LEGACY_GROUP_ERROR", is_on, 1);
on_off(database, "LEGACY_GROUP_WARNING", is_on, 1);
view_add_log(eg.phyview, "ENB_PHY_DLSCH_UE_DCI", h, database, is_on);
view_add_log(eg.phyview, "ENB_PHY_DLSCH_UE_ACK", h, database, is_on);
@@ -639,7 +819,9 @@ restart:
event e;
e = get_event(enb_data.socket, v, database);
if (e.type == -1) goto restart;
if (pthread_mutex_lock(&enb_data.lock)) abort();
handle_event(h, e);
if (pthread_mutex_unlock(&enb_data.lock)) abort();
}
return 0;

View File

@@ -13,6 +13,7 @@ struct filter {
} v;
int (*eval)(struct filter *this, event e);
void (*free)(struct filter *this);
};
/****************************************************************************/
@@ -52,7 +53,23 @@ int eval_evarg(struct filter *f, event e)
}
/****************************************************************************/
/* filter construction functions */
/* free memory functions */
/****************************************************************************/
void free_op2(struct filter *f)
{
free_filter(f->v.op2.a);
free_filter(f->v.op2.b);
free(f);
}
void free_noop(struct filter *f)
{
free(f);
}
/****************************************************************************/
/* filter construction/destruction functions */
/****************************************************************************/
filter *filter_and(filter *a, filter *b)
@@ -60,6 +77,7 @@ filter *filter_and(filter *a, filter *b)
struct filter *ret = calloc(1, sizeof(struct filter));
if (ret == NULL) abort();
ret->eval = eval_and;
ret->free = free_op2;
ret->v.op2.a = a;
ret->v.op2.b = b;
return ret;
@@ -70,6 +88,7 @@ filter *filter_eq(filter *a, filter *b)
struct filter *ret = calloc(1, sizeof(struct filter));
if (ret == NULL) abort();
ret->eval = eval_eq;
ret->free = free_op2;
ret->v.op2.a = a;
ret->v.op2.b = b;
return ret;
@@ -80,6 +99,7 @@ filter *filter_int(int v)
struct filter *ret = calloc(1, sizeof(struct filter));
if (ret == NULL) abort();
ret->eval = eval_int;
ret->free = free_noop;
ret->v.v = v;
return ret;
}
@@ -97,6 +117,7 @@ filter *filter_evarg(void *database, char *event_name, char *varname)
f = get_format(database, event_id);
ret->eval = eval_evarg;
ret->free = free_noop;
ret->v.evarg.event_type = event_id;
ret->v.evarg.arg_index = -1;
@@ -114,6 +135,14 @@ filter *filter_evarg(void *database, char *event_name, char *varname)
return ret;
}
void free_filter(filter *_f)
{
struct filter *f;
if (_f == NULL) return;
f = _f;
f->free(f);
}
/****************************************************************************/
/* eval function */
/****************************************************************************/

View File

@@ -12,4 +12,6 @@ filter *filter_evarg(void *database, char *event_name, char *varname);
int filter_eval(filter *f, event e);
void free_filter(filter *f);
#endif /* _FILTER_H_ */

View File

@@ -2,8 +2,8 @@ CC=gcc
CFLAGS=-Wall -g -pthread -I/usr/include/X11/Xft -I/usr/include/freetype2
OBJS=init.o loop.o toplevel_window.o x.o container.o widget.o \
gui.o label.o event.o xy_plot.o textlist.o notify.o positioner.o \
timeline.o space.o image.o
gui.o label.o textarea.o event.o xy_plot.o textlist.o notify.o \
positioner.o timeline.o space.o image.o
gui.a: $(OBJS)
ar cr gui.a $(OBJS)

View File

@@ -14,6 +14,10 @@ typedef void widget;
#define DEFAULT_FONT 0
/* tic type for XY plot */
#define XY_PLOT_DEFAULT_TICK 0
#define XY_PLOT_SCROLL_TICK 1
/* key modifiers */
#define KEY_SHIFT (1<<0)
#define KEY_CONTROL (1<<1)
@@ -30,6 +34,7 @@ widget *new_toplevel_window(gui *gui, int width, int height, char *title);
widget *new_container(gui *gui, int vertical);
widget *new_positioner(gui *gui);
widget *new_label(gui *gui, const char *text);
widget *new_textarea(gui *gui, int width, int height, int maxsize);
widget *new_xy_plot(gui *gui, int width, int height, char *label,
int vruler_width);
widget *new_textlist(gui *gui, int width, int nlines, int background_color);
@@ -39,6 +44,9 @@ widget *new_space(gui *gui, int width, int height);
widget *new_image(gui *gui, unsigned char *data, int length);
void label_set_clickable(gui *gui, widget *label, int clickable);
void label_set_text(gui *gui, widget *label, char *text);
void textarea_set_text(gui *gui, widget *textarea, char *text);
void container_set_child_growable(gui *_gui, widget *_this,
widget *child, int growable);
@@ -49,6 +57,8 @@ void xy_plot_set_range(gui *gui, widget *this,
void xy_plot_set_points(gui *gui, widget *this,
int plot, int npoints, float *x, float *y);
void xy_plot_get_dimensions(gui *gui, widget *this, int *width, int *height);
void xy_plot_set_title(gui *gui, widget *this, char *label);
void xy_plot_set_tick_type(gui *gui, widget *this, int type);
void textlist_add(gui *gui, widget *this, const char *text, int position,
int color);

View File

@@ -31,7 +31,7 @@ extern int volatile gui_logd;
enum widget_type {
TOPLEVEL_WINDOW, CONTAINER, POSITIONER, TEXT_LIST, XY_PLOT, BUTTON, LABEL,
TIMELINE, SPACE, IMAGE
TEXTAREA, TIMELINE, SPACE, IMAGE
};
struct widget_list;
@@ -117,6 +117,7 @@ struct xy_plot_widget {
int wanted_height;
struct xy_plot_plot *plots;
int nplots;
int tick_type;
};
struct timeline_subline {
@@ -141,13 +142,24 @@ struct button_widget {
struct label_widget {
struct widget common;
const char *t;
char *t;
int color;
int width; /* as given by the graphic's backend */
int height; /* as given by the graphic's backend */
int baseline; /* as given by the graphic's backend */
};
struct textarea_widget {
struct widget common;
char *t;
int tmaxsize;
int color;
int wanted_width;
int wanted_height;
int baseline; /* as given by the graphic's backend */
int text_width; /* as given by the graphic's backend */
};
struct space_widget {
struct widget common;
int wanted_width;

View File

@@ -81,3 +81,21 @@ void label_set_clickable(gui *_g, widget *_this, int clickable)
gunlock(g);
}
void label_set_text(gui *_g, widget *_this, char *text)
{
struct gui *g = _g;
struct label_widget *this = _this;
glock(g);
free(this->t);
this->t = strdup(text); if (this->t == NULL) OOM;
x_text_get_dimensions(g->x, DEFAULT_FONT, text,
&this->width, &this->height, &this->baseline);
send_event(g, REPACK, this->common.id);
gunlock(g);
}

View File

@@ -0,0 +1,83 @@
#include "gui.h"
#include "gui_defs.h"
#include "x.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static void paint(gui *_gui, widget *_w)
{
struct gui *g = _gui;
struct textarea_widget *t = _w;
LOGD("PAINT textarea '%s'\n", t->t);
x_fill_rectangle(g->x, g->xwin, BACKGROUND_COLOR,
t->common.x, t->common.y,
t->common.width, t->common.height);
x_draw_clipped_string(g->x, g->xwin, DEFAULT_FONT, t->color,
t->common.x + t->common.width - t->text_width,
t->common.y + t->baseline, t->t,
t->common.x, t->common.y,
t->common.width, t->common.height);
}
static void hints(gui *_gui, widget *_w, int *width, int *height)
{
struct textarea_widget *t = _w;
LOGD("HINTS textarea '%s'\n", t->t);
*width = t->wanted_width;
*height = t->wanted_height;
}
widget *new_textarea(gui *_gui, int width, int height, int maxsize)
{
struct gui *g = _gui;
struct textarea_widget *w;
int _;
glock(g);
w = new_widget(g, TEXTAREA, sizeof(struct textarea_widget));
w->t = calloc(maxsize, 1);
if (w->t == NULL) OOM;
w->tmaxsize = maxsize;
w->wanted_width = width;
w->wanted_height = height;
w->color = FOREGROUND_COLOR;
w->text_width = 0;
x_text_get_dimensions(g->x, DEFAULT_FONT, "jlM",
&_, &_, &w->baseline);
w->common.paint = paint;
w->common.hints = hints;
gunlock(g);
return w;
}
/*************************************************************************/
/* public functions */
/*************************************************************************/
void textarea_set_text(gui *_g, widget *_this, char *text)
{
struct gui *g = _g;
struct textarea_widget *this = _this;
int _;
int len = strlen(text);
if (len >= this->tmaxsize) {
fprintf(stderr, "ERROR: string '%s' too big for textarea\n", text);
return;
}
glock(g);
strcpy(this->t, text);
x_text_get_dimensions(g->x, DEFAULT_FONT, text,
&this->text_width, &_, &this->baseline);
send_event(g, DIRTY, this->common.id);
gunlock(g);
}

View File

@@ -265,7 +265,7 @@ void widget_dirty(gui *_gui, widget *_this)
static const char *names[] = {
"TOPLEVEL_WINDOW", "CONTAINER", "POSITIONER", "TEXT_LIST",
"XY_PLOT", "BUTTON", "LABEL", "TIMELINE", "SPACE", "IMAGE"
"XY_PLOT", "BUTTON", "LABEL", "TEXTAREA", "TIMELINE", "SPACE", "IMAGE"
};
const char *widget_name(enum widget_type type)
{
@@ -277,6 +277,7 @@ const char *widget_name(enum widget_type type)
case XY_PLOT:
case BUTTON:
case LABEL:
case TEXTAREA:
case TIMELINE:
case SPACE:
case IMAGE:

View File

@@ -1,11 +1,20 @@
#include "gui.h"
#include "gui_defs.h"
#include "x.h"
#include "../utils.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#if 0
/* this version behaves differently when you resize the XY plot. Say
* you increase the size. The old (smaller) view is put at the center
* of the new view. Everything inside keeps the same size/aspect ratio.
* The other version below resizes the old view so that it fully occupies
* the new view. It may introduce aspect ratio changes, but usage seems
* to suggest it's a better behaviour.
*/
static void paint(gui *_gui, widget *_this)
{
struct gui *g = _gui;
@@ -70,9 +79,9 @@ static void paint(gui *_gui, widget *_this)
*/
char v[64];
int vwidth, dummy;
float x = (k * ticstep - allocated_xmin) /
(allocated_xmax - allocated_xmin) *
(allocated_plot_width - 1);
int x = (k * ticstep - allocated_xmin) /
(allocated_xmax - allocated_xmin) *
(allocated_plot_width - 1);
x_draw_line(g->x, g->xwin, FOREGROUND_COLOR,
this->common.x + this->vrule_width + x,
this->common.y + this->common.height - this->label_height * 2,
@@ -85,7 +94,7 @@ static void paint(gui *_gui, widget *_this)
this->common.y + this->common.height - this->label_height * 2 +
this->label_baseline,
v);
LOGD("tic k %d val %g x %g\n", k, k * ticstep, x);
LOGD("tic k %d val %g x %d\n", k, k * ticstep, x);
}
/* vertical tics */
@@ -112,9 +121,9 @@ static void paint(gui *_gui, widget *_this)
for (k = kmin; k <= kmax; k++) {
char v[64];
int vwidth, dummy;
float y = (k * ticstep - allocated_ymin) /
(allocated_ymax - allocated_ymin) *
(allocated_plot_height - 1);
int y = (k * ticstep - allocated_ymin) /
(allocated_ymax - allocated_ymin) *
(allocated_plot_height - 1);
sprintf(v, "%g", k * ticstep);
x_text_get_dimensions(g->x, DEFAULT_FONT, v, &vwidth, &dummy, &dummy);
x_draw_line(g->x, g->xwin, FOREGROUND_COLOR,
@@ -155,6 +164,184 @@ static void paint(gui *_gui, widget *_this)
x_plot_points(g->x, g->xwin, this->plots[n].color);
}
}
#endif
static void paint(gui *_gui, widget *_this)
{
struct gui *g = _gui;
struct xy_plot_widget *this = _this;
int allocated_plot_width;
int allocated_plot_height;
float pxsize;
float ticdist;
float tic;
float ticstep;
int k, kmin, kmax;
float allocated_xmin, allocated_xmax;
float allocated_ymin, allocated_ymax;
int i;
int n;
char v[64];
int vwidth, dummy;
# define FLIP(v) (-(v) + allocated_plot_height-1)
LOGD("PAINT xy plot xywh %d %d %d %d\n", this->common.x, this->common.y, this->common.width, this->common.height);
//x_draw_rectangle(g->x, g->xwin, 1, this->common.x, this->common.y, this->common.width, this->common.height);
allocated_plot_width = this->common.width - this->vrule_width;
allocated_plot_height = this->common.height - this->label_height * 2;
if (allocated_plot_width <= 1 || allocated_plot_height <= 1) {
WARN("PAINT xy plot: width (%d) or height (%d) is wrong, not painting\n",
this->common.width, this->common.height);
return;
}
/* plot zone */
/* TODO: refine height - height of hrule text may be != from label */
x_draw_rectangle(g->x, g->xwin, 1,
this->common.x + this->vrule_width,
this->common.y,
this->common.width - this->vrule_width -1, /* -1 to see right border */
this->common.height - this->label_height * 2);
/* horizontal tics */
pxsize = (this->xmax - this->xmin) / allocated_plot_width;
ticdist = 100;
tic = floor(log10(ticdist * pxsize));
ticstep = powf(10, tic);
allocated_xmin = this->xmin;
allocated_xmax = this->xmax;
/* adjust tic if too tight */
LOGD("pre x ticstep %g\n", ticstep);
while (1) {
if (ticstep / (allocated_xmax - allocated_xmin)
* (allocated_plot_width - 1) > 40) break;
ticstep *= 2;
}
LOGD("post x ticstep %g\n", ticstep);
LOGD("xmin/max %g %g width allocated %d alloc xmin/max %g %g ticstep %g\n", this->xmin, this->xmax, allocated_plot_width, allocated_xmin, allocated_xmax, ticstep);
kmin = ceil(allocated_xmin / ticstep);
kmax = floor(allocated_xmax / ticstep);
for (k = kmin; k <= kmax; k++) {
/*
(k * ticstep - allocated_xmin) / (allocated_max - allocated_xmin) =
(x - 0) / (allocated_plot_width-1 - 0)
*/
int x = (k * ticstep - allocated_xmin) /
(allocated_xmax - allocated_xmin) *
(allocated_plot_width - 1);
int px;
x_draw_line(g->x, g->xwin, FOREGROUND_COLOR,
this->common.x + this->vrule_width + x,
this->common.y + this->common.height - this->label_height * 2,
this->common.x + this->vrule_width + x,
this->common.y + this->common.height - this->label_height * 2 - 5);
sprintf(v, "%g", k * ticstep);
x_text_get_dimensions(g->x, DEFAULT_FONT, v, &vwidth, &dummy, &dummy);
/* do not draw after the widget ('width-1' for if we use 'width'
* it is still off by 1 pixel for whatever reason) */
px = this->vrule_width + x - vwidth/2;
if (px + vwidth > this->common.width-1)
px = this->common.width-1 - vwidth;
x_draw_string(g->x, g->xwin, DEFAULT_FONT, FOREGROUND_COLOR,
this->common.x + px,
this->common.y + this->common.height - this->label_height * 2 +
this->label_baseline,
v);
LOGD("tic k %d val %g x %d\n", k, k * ticstep, x);
}
/* vertical tics */
allocated_ymin = this->ymin;
allocated_ymax = this->ymax;
switch (this->tick_type) {
case XY_PLOT_DEFAULT_TICK:
pxsize = (this->ymax - this->ymin) / allocated_plot_height;
ticdist = 30;
tic = floor(log10(ticdist * pxsize));
ticstep = powf(10, tic);
/* adjust tic if too tight */
LOGD("pre y ticstep %g\n", ticstep);
while (1) {
if (ticstep / (allocated_ymax - allocated_ymin)
* (allocated_plot_height - 1) > 20) break;
ticstep *= 2;
}
LOGD("post y ticstep %g\n", ticstep);
LOGD("ymin/max %g %g height allocated %d alloc "
"ymin/max %g %g ticstep %g\n", this->ymin, this->ymax,
allocated_plot_height, allocated_ymin, allocated_ymax, ticstep);
kmin = ceil(allocated_ymin / ticstep);
kmax = floor(allocated_ymax / ticstep);
for (k = kmin; k <= kmax; k++) {
int y = (k * ticstep - allocated_ymin) /
(allocated_ymax - allocated_ymin) *
(allocated_plot_height - 1);
sprintf(v, "%g", k * ticstep);
x_text_get_dimensions(g->x, DEFAULT_FONT, v, &vwidth, &dummy, &dummy);
x_draw_line(g->x, g->xwin, FOREGROUND_COLOR,
this->common.x + this->vrule_width,
this->common.y + FLIP(y),
this->common.x + this->vrule_width + 5,
this->common.y + FLIP(y));
x_draw_string(g->x, g->xwin, DEFAULT_FONT, FOREGROUND_COLOR,
this->common.x + this->vrule_width - vwidth - 2,
this->common.y + FLIP(y)-this->label_height/2+this->label_baseline,
v);
}
break;
case XY_PLOT_SCROLL_TICK:
/* print only max value, formatted using 'bps' for readability */
bps(v, this->ymax, "");
x_text_get_dimensions(g->x, DEFAULT_FONT, v, &vwidth, &dummy, &dummy);
x_draw_string(g->x, g->xwin, DEFAULT_FONT, FOREGROUND_COLOR,
this->common.x + this->vrule_width - vwidth - 2,
this->common.y + +this->label_baseline,
v);
/* vertically divide into 5 */
for (k = 1; k < 5; k++) {
int y = round((k * (allocated_plot_height - 1)) / 5.);
x_draw_line(g->x, g->xwin, FOREGROUND_COLOR,
this->common.x + this->vrule_width,
this->common.y + y,
this->common.x + this->vrule_width + 5,
this->common.y + y);
}
break;
} /* swich (this->tick_type) */
/* label at bottom, in the middle */
x_draw_string(g->x, g->xwin, DEFAULT_FONT, FOREGROUND_COLOR,
this->common.x + (this->common.width - this->label_width) / 2,
this->common.y + this->common.height - this->label_height
+ this->label_baseline,
this->label);
for (n = 0; n < this->nplots; n++) {
/* points */
float ax, bx, ay, by;
ax = (allocated_plot_width-1) / (allocated_xmax - allocated_xmin);
bx = -ax * allocated_xmin;
ay = (allocated_plot_height-1) / (allocated_ymax - allocated_ymin);
by = -ay * allocated_ymin;
for (i = 0; i < this->plots[n].npoints; i++) {
int x, y;
x = ax * this->plots[n].x[i] + bx;
y = ay * this->plots[n].y[i] + by;
if (x >= 0 && x < allocated_plot_width &&
y >= 0 && y < allocated_plot_height)
x_add_point(g->x,
this->common.x + this->vrule_width + x,
this->common.y + FLIP(y));
}
x_plot_points(g->x, g->xwin, this->plots[n].color);
}
}
static void hints(gui *_gui, widget *_w, int *width, int *height)
{
@@ -191,6 +378,7 @@ widget *new_xy_plot(gui *_gui, int width, int height, char *label,
w->ymax = 1;
w->plots = NULL;
w->nplots = 0;
w->tick_type = XY_PLOT_DEFAULT_TICK;
w->common.paint = paint;
w->common.hints = hints;
@@ -290,3 +478,36 @@ void xy_plot_get_dimensions(gui *_gui, widget *_this, int *width, int *height)
gunlock(g);
}
void xy_plot_set_title(gui *_gui, widget *_this, char *label)
{
struct gui *g = _gui;
struct xy_plot_widget *this = _this;
glock(g);
free(this->label);
this->label = strdup(label); if (this->label == NULL) OOM;
/* TODO: be sure calling X there is valid wrt "global model" (we are
* not in the "gui thread") */
x_text_get_dimensions(g->x, DEFAULT_FONT, label,
&this->label_width, &this->label_height, &this->label_baseline);
send_event(g, REPACK, this->common.id);
gunlock(g);
}
void xy_plot_set_tick_type(gui *_gui, widget *_this, int type)
{
struct gui *g = _gui;
struct xy_plot_widget *this = _this;
glock(g);
this->tick_type = type;
send_event(g, DIRTY, this->common.id);
gunlock(g);
}

View File

@@ -3,16 +3,23 @@ CFLAGS=-Wall -g -pthread -DT_TRACER -I. -I..
LIBS=-lX11 -lm -lpng -lXft
all: dump_nack_signal
all: dump_nack_signal time_meas timeplot
dump_nack_signal: ../utils.o ../database.o ../config.o ../event.o \
dump_nack_signal.o
$(CC) $(CFLAGS) -o dump_nack_signal $^ $(LIBS)
time_meas: ../utils.o ../database.o ../config.o ../event.o \
time_meas.o
$(CC) $(CFLAGS) -o time_meas $^ $(LIBS)
timplot: timeplot.o
$(CC) $(CFLAGS) -o timeplot $^ $(LIBS)
.PHONY: all
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
clean:
rm -f *.o core dump_nack_signal
rm -f *.o core dump_nack_signal time_meas timeplot

View File

@@ -0,0 +1,112 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "utils.h"
#include "event.h"
#include "database.h"
#include "config.h"
#include "../T_defs.h"
void usage(void)
{
printf(
"options:\n"
" -d <database file> this option is mandatory\n"
" -ip <host> connect to given IP address (default %s)\n"
" -p <port> connect to given port (default %d)\n",
DEFAULT_REMOTE_IP,
DEFAULT_REMOTE_PORT
);
exit(1);
}
struct timespec time_sub(struct timespec a, struct timespec b)
{
struct timespec ret;
if (a.tv_nsec < b.tv_nsec) {
ret.tv_nsec = (int64_t)a.tv_nsec - (int64_t)b.tv_nsec + 1000000000;
ret.tv_sec = a.tv_sec - b.tv_sec - 1;
} else {
ret.tv_nsec = a.tv_nsec - b.tv_nsec;
ret.tv_sec = a.tv_sec - b.tv_sec;
}
return ret;
}
int main(int n, char **v)
{
char *database_filename = NULL;
void *database;
char *ip = DEFAULT_REMOTE_IP;
int port = DEFAULT_REMOTE_PORT;
int i;
char t;
int number_of_events;
int socket;
int *is_on;
int ev_fun;
int start_valid = 0;
struct timespec start_time, stop_time, delta_time;
for (i = 1; i < n; i++) {
if (!strcmp(v[i], "-h") || !strcmp(v[i], "--help")) usage();
if (!strcmp(v[i], "-d"))
{ if (i > n-2) usage(); database_filename = v[++i]; continue; }
if (!strcmp(v[i], "-ip")) { if (i > n-2) usage(); ip = v[++i]; continue; }
if (!strcmp(v[i], "-p"))
{ if (i > n-2) usage(); port = atoi(v[++i]); continue; }
usage();
}
if (database_filename == NULL) {
printf("ERROR: provide a database file (-d)\n");
exit(1);
}
database = parse_database(database_filename);
load_config_file(database_filename);
number_of_events = number_of_ids(database);
is_on = calloc(number_of_events, sizeof(int));
if (is_on == NULL) abort();
on_off(database, "VCD_FUNCTION_ENB_DLSCH_ULSCH_SCHEDULER", is_on, 1);
ev_fun = event_id_from_name(database,
"VCD_FUNCTION_ENB_DLSCH_ULSCH_SCHEDULER");
socket = connect_to(ip, port);
t = 1;
if (socket_send(socket, &t, 1) == -1 ||
socket_send(socket, &number_of_events, sizeof(int)) == -1 ||
socket_send(socket, is_on, number_of_events * sizeof(int)) == -1)
abort();
while (1) {
char v[T_BUFFER_MAX];
event e;
int on_off;
e = get_event(socket, v, database);
if (e.type == -1) break;
if (e.type != ev_fun)
{ printf("unhandled event %d\n", e.type); continue; }
on_off = e.e[0].i;
printf("yo %d\n", on_off);
if (on_off == 1) {
start_time = e.sending_time;
start_valid = 1;
continue;
}
if (on_off != 0) { printf("fatal!\n"); abort(); }
if (!start_valid) continue;
stop_time = e.sending_time;
delta_time = time_sub(stop_time, start_time);
fprintf(stderr, "%ld\n",
delta_time.tv_sec * 1000000000UL + delta_time.tv_nsec);
fflush(stderr);
}
return 0;
}

View File

@@ -0,0 +1,84 @@
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>
void RESET(void)
{ printf("\x1b""c"); fflush(stdout); }
void GOTO(int x, int y)
{ char s[64];sprintf(s,"\x1b[%d;%dH",y,x);printf("%s",s);fflush(stdout); }
void HIDE_CURSOR(void)
{ printf("\x1b[?25l"); fflush(stdout); }
void sig(int x)
{
RESET();
exit(0);
}
/* 0: [0-2[
* ...
* 48: [96-98[
* 49: [98-infinity]
*/
int bins[50];
#define N 1000
int data[N];
void plot(void)
{
int i;
int max = 0;
int vmin = data[0];
int vmax = 0;
long vavg;
memset(bins, 0, sizeof(bins));
int binsize_ns = 500;
vavg = 0;
for (i = 0; i < N; i++) {
if (data[i] < vmin) vmin = data[i];
if (data[i] > vmax) vmax = data[i];
vavg += data[i];
int ms2 = data[i]/binsize_ns;
if (ms2 > 49) ms2 = 49;
bins[ms2]++;
if (bins[ms2] > max) max = bins[ms2];
}
vavg /= N;
GOTO(1,1);
for (i = 0; i < 50; i++) {
double binend = (i+1) * binsize_ns / 1000.;
int k;
int width = bins[i] * 70 / max;
/* force at least width of 1 if some point is there */
if (bins[i] && width == 0) width = 1;
printf("%#5.1f ", binend);
for (k = 0; k < width; k++) putchar('#');
for (; k < 70; k++) putchar(' ');
putchar('\n');
}
printf("min %d ns max %d ns avg %ld ns\n", vmin, vmax, vavg);
}
int main(void)
{
int i;
int pos = 0;
signal(SIGINT, sig);
RESET();
HIDE_CURSOR();
while (!feof(stdin)) {
for (i=0; i<100; i++) { scanf("%d", &data[pos]); pos++; pos%=N; }
plot();
}
RESET();
return 0;
}

Some files were not shown because too many files have changed in this diff Show More