From 5938fef4d6024d33d0766c291637b6c6fb819287 Mon Sep 17 00:00:00 2001
From: gauthier <gauthier@mycompany.com>
Date: Tue, 6 Oct 2015 15:20:17 +0000
Subject: [PATCH] openair3: Removed EPC software that has been transfered to
 Eurecom gitlab

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7884 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 openair3/COPYING                              |  674 ----
 openair3/DOCS/COPYING                         |  674 ----
 openair3/DOCS/DOXYGEN/Doxyfile                |  217 --
 openair3/DOCS/TEMPLATES/CODE/COPYING          |  340 --
 openair3/DOCS/TEMPLATES/CODE/Doxyfile         |  231 --
 openair3/DOCS/TEMPLATES/CODE/example_doxy.h   |  149 -
 openair3/DOCS/TEMPLATES/CODE/images/arch.eps  |  785 -----
 openair3/DOCS/TEMPLATES/CODE/images/arch.png  |  Bin 2893 -> 0 bytes
 openair3/DOCS/TEMPLATES/README/Readme.doxy    |  112 -
 openair3/DOCS/TEMPLATES/README/readme.txt     |  120 -
 openair3/MESH/COPYING                         |  674 ----
 openair3/MESH/L3_rrc_defs.h                   |  220 --
 openair3/MESH/L3_rrc_interface.h              |  491 ---
 openair3/MESH/RRM/DOC/Doxyfile_rrm            |  305 --
 .../MESH/RRM/EMUL/.tmp_versions/kemul_nl.mod  |    2 -
 openair3/MESH/RRM/EMUL/Makefile               |   11 -
 openair3/MESH/RRM/EMUL/actdiff.c              |  214 --
 openair3/MESH/RRM/EMUL/actdiff.h              |   83 -
 openair3/MESH/RRM/EMUL/emul_interface.c       | 1124 -------
 openair3/MESH/RRM/EMUL/emul_interface.h       |   79 -
 openair3/MESH/RRM/EMUL/scenario.c             | 1292 --------
 openair3/MESH/RRM/GRAPH/Makefile              |   31 -
 openair3/MESH/RRM/GRAPH/graph                 |  Bin 22641 -> 0 bytes
 openair3/MESH/RRM/GRAPH/graph_enum.h          |  196 --
 openair3/MESH/RRM/GRAPH/graph_int.c           |  887 ------
 openair3/MESH/RRM/GRAPH/graph_int.h           |   67 -
 openair3/MESH/RRM/GRAPH/graph_sock.c          |  293 --
 openair3/MESH/RRM/GRAPH/graph_sock.h          |  129 -
 openair3/MESH/RRM/Makefile                    |  142 -
 openair3/MESH/RRM/SN_freq_form.c              |   53 -
 openair3/MESH/RRM/SN_freq_form.fd             |   52 -
 openair3/MESH/RRM/SN_freq_form.h              |   49 -
 openair3/MESH/RRM/VCD/Config_wave.xxx         |   10 -
 openair3/MESH/RRM/VCD/gtkwave.ini             |   46 -
 openair3/MESH/RRM/VCD/mkvcd                   |  131 -
 openair3/MESH/RRM/all_freq_to_users_form.c    |   76 -
 openair3/MESH/RRM/all_freq_to_users_form.fd   |  106 -
 openair3/MESH/RRM/all_freq_to_users_form.h    |   52 -
 openair3/MESH/RRM/ch_init.c                   |  197 --
 openair3/MESH/RRM/ch_init.h                   |   66 -
 openair3/MESH/RRM/channels_db.c               |  385 ---
 openair3/MESH/RRM/channels_db.h               |   73 -
 openair3/MESH/RRM/cmm_msg.c                   |  793 -----
 openair3/MESH/RRM/cmm_msg.h                   |  297 --
 openair3/MESH/RRM/debug.h                     |  136 -
 openair3/MESH/RRM/freq_ass_op.c               |  969 ------
 openair3/MESH/RRM/freq_ass_op.h               |  114 -
 openair3/MESH/RRM/ip_msg.c                    |  524 ---
 openair3/MESH/RRM/ip_msg.h                    |  253 --
 openair3/MESH/RRM/mr_attach.c                 |  312 --
 openair3/MESH/RRM/mr_attach.h                 |   66 -
 openair3/MESH/RRM/msg_mngt.c                  |  206 --
 openair3/MESH/RRM/msg_mngt.h                  |   93 -
 openair3/MESH/RRM/neighbor_db.c               |  485 ---
 openair3/MESH/RRM/neighbor_db.h               |  112 -
 openair3/MESH/RRM/pusu_msg.c                  |  285 --
 openair3/MESH/RRM/pusu_msg.h                  |  148 -
 openair3/MESH/RRM/rb_db.c                     |  377 ---
 openair3/MESH/RRM/rb_db.h                     |   88 -
 openair3/MESH/RRM/rb_mngt.c                   |  571 ----
 openair3/MESH/RRM/rb_mngt.h                   |   66 -
 openair3/MESH/RRM/rrc_2_rrm_msg.c             |  724 -----
 openair3/MESH/RRM/rrc_rrm_msg.h               |  508 ---
 openair3/MESH/RRM/rrm.c                       | 2245 -------------
 openair3/MESH/RRM/rrm.cfg                     |    2 -
 openair3/MESH/RRM/rrm.h                       |  171 -
 openair3/MESH/RRM/rrm.sh                      |   10 -
 openair3/MESH/RRM/rrm_2_rrc_msg.c             |  838 -----
 openair3/MESH/RRM/rrm_2_sensing_msg.c         |  206 --
 openair3/MESH/RRM/rrm_5nodes.sh               |   10 -
 openair3/MESH/RRM/rrm_SENS.sh                 |   16 -
 openair3/MESH/RRM/rrm_SS2_CH1.sh              |   11 -
 openair3/MESH/RRM/rrm_SS2_global.sh           |   16 -
 openair3/MESH/RRM/rrm_constant.c              |  226 --
 openair3/MESH/RRM/rrm_constant.h              |   92 -
 openair3/MESH/RRM/rrm_graph.c                 | 2833 -----------------
 openair3/MESH/RRM/rrm_sock.c                  |  436 ---
 openair3/MESH/RRM/rrm_sock.h                  |  184 --
 openair3/MESH/RRM/rrm_test.sh                 |   16 -
 openair3/MESH/RRM/rrm_util.c                  |  179 --
 openair3/MESH/RRM/rrm_util.h                  |  109 -
 openair3/MESH/RRM/sens_CH1_scen_2.c           |   83 -
 openair3/MESH/RRM/sens_CH1_scen_2.fd          |  124 -
 openair3/MESH/RRM/sens_CH1_scen_2.h           |   53 -
 openair3/MESH/RRM/sens_db.c                   |  569 ----
 openair3/MESH/RRM/sens_db.h                   |   98 -
 openair3/MESH/RRM/sens_op.c                   | 1311 --------
 openair3/MESH/RRM/sens_op.h                   |  125 -
 openair3/MESH/RRM/sens_scen_2_form.c          |   62 -
 openair3/MESH/RRM/sens_scen_2_form.fd         |  106 -
 openair3/MESH/RRM/sens_scen_2_form.h          |   52 -
 openair3/MESH/RRM/sens_sensor.c               |   53 -
 openair3/MESH/RRM/sens_sensor.fd              |   52 -
 openair3/MESH/RRM/sens_sensor.h               |   49 -
 openair3/MESH/RRM/sensing_2_rrm_msg.c         |  151 -
 openair3/MESH/RRM/sensing_form.c              |   62 -
 openair3/MESH/RRM/sensing_form.fd             |  106 -
 openair3/MESH/RRM/sensing_form.h              |   52 -
 openair3/MESH/RRM/sensing_rrm_msg.h           |  126 -
 openair3/MESH/RRM/transact.c                  |  251 --
 openair3/MESH/RRM/transact.h                  |  103 -
 openair3/MESH/cmm_ral_interface.h             |   62 -
 openair3/MESH/cmm_rrm_interface.h             |  293 --
 openair3/UTILS/COPYING                        |  674 ----
 openair3/UTILS/GPSDRIVE/README.txt            |    8 -
 .../expedia/map_27650000_43.847_7.448.gif     |  Bin 110871 -> 0 bytes
 .../maps/expedia/map_3950_41.282_1.989.gif    |  Bin 57710 -> 0 bytes
 .../maps/expedia/map_3950_41.501_2.111.gif    |  Bin 47311 -> 0 bytes
 .../maps/expedia/map_3950_41.502_2.113.gif    |  Bin 54633 -> 0 bytes
 .../maps/expedia/map_3950_41.516_2.087.gif    |  Bin 25447 -> 0 bytes
 .../maps/expedia/map_3950_43.735_7.421.gif    |  Bin 84014 -> 0 bytes
 .../maps/expedia/map_3950_43.883_7.355.gif    |  Bin 20204 -> 0 bytes
 .../maps/expedia/map_3950_43.912_7.516.gif    |  Bin 14725 -> 0 bytes
 .../maps/expedia/map_3950_43.923_7.527.gif    |  Bin 11399 -> 0 bytes
 .../maps/expedia/map_47400_41.282_1.989.gif   |  Bin 113594 -> 0 bytes
 .../maps/expedia/map_98750_41.516_2.088.gif   |  Bin 119955 -> 0 bytes
 openair3/UTILS/GPSDRIVE/maps/map_koord.txt    |   29 -
 openair3/UTILS/REMSERIAL-1.4.UDP/Makefile     |    8 -
 openair3/UTILS/REMSERIAL-1.4.UDP/README.txt   |  150 -
 openair3/UTILS/REMSERIAL-1.4.UDP/remserial.c  |  540 ----
 openair3/UTILS/REMSERIAL-1.4.UDP/stty.c       |  268 --
 openair3/history.txt                          |    7 -
 122 files changed, 31192 deletions(-)
 delete mode 100644 openair3/COPYING
 delete mode 100644 openair3/DOCS/COPYING
 delete mode 100644 openair3/DOCS/DOXYGEN/Doxyfile
 delete mode 100644 openair3/DOCS/TEMPLATES/CODE/COPYING
 delete mode 100644 openair3/DOCS/TEMPLATES/CODE/Doxyfile
 delete mode 100644 openair3/DOCS/TEMPLATES/CODE/example_doxy.h
 delete mode 100644 openair3/DOCS/TEMPLATES/CODE/images/arch.eps
 delete mode 100644 openair3/DOCS/TEMPLATES/CODE/images/arch.png
 delete mode 100644 openair3/DOCS/TEMPLATES/README/Readme.doxy
 delete mode 100644 openair3/DOCS/TEMPLATES/README/readme.txt
 delete mode 100644 openair3/MESH/COPYING
 delete mode 100644 openair3/MESH/L3_rrc_defs.h
 delete mode 100644 openair3/MESH/L3_rrc_interface.h
 delete mode 100755 openair3/MESH/RRM/DOC/Doxyfile_rrm
 delete mode 100755 openair3/MESH/RRM/EMUL/.tmp_versions/kemul_nl.mod
 delete mode 100755 openair3/MESH/RRM/EMUL/Makefile
 delete mode 100755 openair3/MESH/RRM/EMUL/actdiff.c
 delete mode 100755 openair3/MESH/RRM/EMUL/actdiff.h
 delete mode 100755 openair3/MESH/RRM/EMUL/emul_interface.c
 delete mode 100755 openair3/MESH/RRM/EMUL/emul_interface.h
 delete mode 100755 openair3/MESH/RRM/EMUL/scenario.c
 delete mode 100755 openair3/MESH/RRM/GRAPH/Makefile
 delete mode 100755 openair3/MESH/RRM/GRAPH/graph
 delete mode 100644 openair3/MESH/RRM/GRAPH/graph_enum.h
 delete mode 100755 openair3/MESH/RRM/GRAPH/graph_int.c
 delete mode 100755 openair3/MESH/RRM/GRAPH/graph_int.h
 delete mode 100644 openair3/MESH/RRM/GRAPH/graph_sock.c
 delete mode 100644 openair3/MESH/RRM/GRAPH/graph_sock.h
 delete mode 100644 openair3/MESH/RRM/Makefile
 delete mode 100644 openair3/MESH/RRM/SN_freq_form.c
 delete mode 100644 openair3/MESH/RRM/SN_freq_form.fd
 delete mode 100644 openair3/MESH/RRM/SN_freq_form.h
 delete mode 100755 openair3/MESH/RRM/VCD/Config_wave.xxx
 delete mode 100755 openair3/MESH/RRM/VCD/gtkwave.ini
 delete mode 100755 openair3/MESH/RRM/VCD/mkvcd
 delete mode 100644 openair3/MESH/RRM/all_freq_to_users_form.c
 delete mode 100644 openair3/MESH/RRM/all_freq_to_users_form.fd
 delete mode 100644 openair3/MESH/RRM/all_freq_to_users_form.h
 delete mode 100644 openair3/MESH/RRM/ch_init.c
 delete mode 100644 openair3/MESH/RRM/ch_init.h
 delete mode 100755 openair3/MESH/RRM/channels_db.c
 delete mode 100755 openair3/MESH/RRM/channels_db.h
 delete mode 100644 openair3/MESH/RRM/cmm_msg.c
 delete mode 100644 openair3/MESH/RRM/cmm_msg.h
 delete mode 100644 openair3/MESH/RRM/debug.h
 delete mode 100755 openair3/MESH/RRM/freq_ass_op.c
 delete mode 100755 openair3/MESH/RRM/freq_ass_op.h
 delete mode 100644 openair3/MESH/RRM/ip_msg.c
 delete mode 100644 openair3/MESH/RRM/ip_msg.h
 delete mode 100644 openair3/MESH/RRM/mr_attach.c
 delete mode 100644 openair3/MESH/RRM/mr_attach.h
 delete mode 100644 openair3/MESH/RRM/msg_mngt.c
 delete mode 100644 openair3/MESH/RRM/msg_mngt.h
 delete mode 100644 openair3/MESH/RRM/neighbor_db.c
 delete mode 100644 openair3/MESH/RRM/neighbor_db.h
 delete mode 100644 openair3/MESH/RRM/pusu_msg.c
 delete mode 100644 openair3/MESH/RRM/pusu_msg.h
 delete mode 100644 openair3/MESH/RRM/rb_db.c
 delete mode 100644 openair3/MESH/RRM/rb_db.h
 delete mode 100644 openair3/MESH/RRM/rb_mngt.c
 delete mode 100644 openair3/MESH/RRM/rb_mngt.h
 delete mode 100644 openair3/MESH/RRM/rrc_2_rrm_msg.c
 delete mode 100644 openair3/MESH/RRM/rrc_rrm_msg.h
 delete mode 100644 openair3/MESH/RRM/rrm.c
 delete mode 100644 openair3/MESH/RRM/rrm.cfg
 delete mode 100644 openair3/MESH/RRM/rrm.h
 delete mode 100644 openair3/MESH/RRM/rrm.sh
 delete mode 100644 openair3/MESH/RRM/rrm_2_rrc_msg.c
 delete mode 100644 openair3/MESH/RRM/rrm_2_sensing_msg.c
 delete mode 100755 openair3/MESH/RRM/rrm_5nodes.sh
 delete mode 100644 openair3/MESH/RRM/rrm_SENS.sh
 delete mode 100644 openair3/MESH/RRM/rrm_SS2_CH1.sh
 delete mode 100644 openair3/MESH/RRM/rrm_SS2_global.sh
 delete mode 100644 openair3/MESH/RRM/rrm_constant.c
 delete mode 100644 openair3/MESH/RRM/rrm_constant.h
 delete mode 100644 openair3/MESH/RRM/rrm_graph.c
 delete mode 100644 openair3/MESH/RRM/rrm_sock.c
 delete mode 100644 openair3/MESH/RRM/rrm_sock.h
 delete mode 100644 openair3/MESH/RRM/rrm_test.sh
 delete mode 100644 openair3/MESH/RRM/rrm_util.c
 delete mode 100644 openair3/MESH/RRM/rrm_util.h
 delete mode 100644 openair3/MESH/RRM/sens_CH1_scen_2.c
 delete mode 100644 openair3/MESH/RRM/sens_CH1_scen_2.fd
 delete mode 100644 openair3/MESH/RRM/sens_CH1_scen_2.h
 delete mode 100755 openair3/MESH/RRM/sens_db.c
 delete mode 100755 openair3/MESH/RRM/sens_db.h
 delete mode 100755 openair3/MESH/RRM/sens_op.c
 delete mode 100755 openair3/MESH/RRM/sens_op.h
 delete mode 100644 openair3/MESH/RRM/sens_scen_2_form.c
 delete mode 100644 openair3/MESH/RRM/sens_scen_2_form.fd
 delete mode 100644 openair3/MESH/RRM/sens_scen_2_form.h
 delete mode 100644 openair3/MESH/RRM/sens_sensor.c
 delete mode 100644 openair3/MESH/RRM/sens_sensor.fd
 delete mode 100644 openair3/MESH/RRM/sens_sensor.h
 delete mode 100644 openair3/MESH/RRM/sensing_2_rrm_msg.c
 delete mode 100644 openair3/MESH/RRM/sensing_form.c
 delete mode 100644 openair3/MESH/RRM/sensing_form.fd
 delete mode 100644 openair3/MESH/RRM/sensing_form.h
 delete mode 100644 openair3/MESH/RRM/sensing_rrm_msg.h
 delete mode 100644 openair3/MESH/RRM/transact.c
 delete mode 100644 openair3/MESH/RRM/transact.h
 delete mode 100644 openair3/MESH/cmm_ral_interface.h
 delete mode 100644 openair3/MESH/cmm_rrm_interface.h
 delete mode 100644 openair3/UTILS/COPYING
 delete mode 100644 openair3/UTILS/GPSDRIVE/README.txt
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_27650000_43.847_7.448.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.282_1.989.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.501_2.111.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.502_2.113.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.516_2.087.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.735_7.421.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.883_7.355.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.912_7.516.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.923_7.527.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_47400_41.282_1.989.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/expedia/map_98750_41.516_2.088.gif
 delete mode 100644 openair3/UTILS/GPSDRIVE/maps/map_koord.txt
 delete mode 100755 openair3/UTILS/REMSERIAL-1.4.UDP/Makefile
 delete mode 100755 openair3/UTILS/REMSERIAL-1.4.UDP/README.txt
 delete mode 100755 openair3/UTILS/REMSERIAL-1.4.UDP/remserial.c
 delete mode 100755 openair3/UTILS/REMSERIAL-1.4.UDP/stty.c
 delete mode 100644 openair3/history.txt

diff --git a/openair3/COPYING b/openair3/COPYING
deleted file mode 100644
index 94a9ed024d..0000000000
--- a/openair3/COPYING
+++ /dev/null
@@ -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>.
diff --git a/openair3/DOCS/COPYING b/openair3/DOCS/COPYING
deleted file mode 100644
index 94a9ed024d..0000000000
--- a/openair3/DOCS/COPYING
+++ /dev/null
@@ -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>.
diff --git a/openair3/DOCS/DOXYGEN/Doxyfile b/openair3/DOCS/DOXYGEN/Doxyfile
deleted file mode 100644
index 64c68eed76..0000000000
--- a/openair3/DOCS/DOXYGEN/Doxyfile
+++ /dev/null
@@ -1,217 +0,0 @@
-# Doxyfile 1.3.8
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = OPENAIR
-PROJECT_NUMBER         = 
-OUTPUT_DIRECTORY       = 
-CREATE_SUBDIRS         = NO
-OUTPUT_LANGUAGE        = English
-USE_WINDOWS_ENCODING   = YES
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = 
-ALWAYS_DETAILED_SEC    = NO
-INLINE_INHERITED_MEMB  = NO
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-STRIP_FROM_INC_PATH    = 
-SHORT_NAMES            = NO
-JAVADOC_AUTOBRIEF      = YES
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP         = YES
-INHERIT_DOCS           = NO
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 8
-ALIASES                = 
-OPTIMIZE_OUTPUT_FOR_C  = YES
-OPTIMIZE_OUTPUT_JAVA   = NO
-SUBGROUPING            = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = NO
-EXTRACT_STATIC         = NO
-EXTRACT_LOCAL_CLASSES  = YES
-EXTRACT_LOCAL_METHODS  = YES
-HIDE_UNDOC_MEMBERS     = YES
-HIDE_UNDOC_CLASSES     = YES
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-INTERNAL_DOCS          = NO
-CASE_SENSE_NAMES       = YES
-HIDE_SCOPE_NAMES       = NO
-SHOW_INCLUDE_FILES     = NO
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = NO
-SORT_BRIEF_DOCS        = NO
-SORT_BY_SCOPE_NAME     = NO
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = NO
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 30
-SHOW_USED_FILES        = NO
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_IF_DOC_ERROR      = YES
-WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = $(OPENAIR3_DIR)/MESH/L3_rrc_interface.h \
-			 $(OPENAIR3_DIR)/MESH/L3_rrc_defs.h \
-			 $(OPENAIR3_DIR)/MESH/cmm_rrm_interface.h \
-			 $(OPENAIR3_DIR)/MESH/cmm_ral_interface.h \
-
-FILE_PATTERNS          = *.h
-RECURSIVE              = NO
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = 
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = images
-INPUT_FILTER           = 
-FILTER_PATTERNS        = 
-FILTER_SOURCE_FILES    = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION    = NO
-VERBATIM_HEADERS       = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = html
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = YES
-CHM_FILE               = irs_openair.chm
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = NO
-TOC_EXPAND             = NO
-DISABLE_INDEX          = NO
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = amsmath amssymb
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = YES
-USE_PDFLATEX           = YES
-LATEX_BATCHMODE        = NO
-LATEX_HIDE_INDICES     = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = YES
-RTF_HYPERLINKS         = YES
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
-XML_PROGRAMLISTING     = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = NO
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = NO
-HIDE_UNDOC_RELATIONS   = NO
-HAVE_DOT               = NO
-CLASS_GRAPH            = NO
-COLLABORATION_GRAPH    = NO
-UML_LOOK               = NO
-TEMPLATE_RELATIONS     = NO
-INCLUDE_GRAPH          = NO
-INCLUDED_BY_GRAPH      = NO
-CALL_GRAPH             = NO
-GRAPHICAL_HIERARCHY    = NO 
-DOT_IMAGE_FORMAT       = jpg
-DOT_PATH               = 
-DOTFILE_DIRS           = ../docs/dotfiles
diff --git a/openair3/DOCS/TEMPLATES/CODE/COPYING b/openair3/DOCS/TEMPLATES/CODE/COPYING
deleted file mode 100644
index 623b6258a1..0000000000
--- a/openair3/DOCS/TEMPLATES/CODE/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  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
-this service 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 make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  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.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-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
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the 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 a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE 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.
-
-		     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
-convey 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 2 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, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision 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, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This 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 Library General
-Public License instead of this License.
diff --git a/openair3/DOCS/TEMPLATES/CODE/Doxyfile b/openair3/DOCS/TEMPLATES/CODE/Doxyfile
deleted file mode 100644
index 131b032fb4..0000000000
--- a/openair3/DOCS/TEMPLATES/CODE/Doxyfile
+++ /dev/null
@@ -1,231 +0,0 @@
-# Doxyfile 1.5.3
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-DOXYFILE_ENCODING      = UTF-8
-PROJECT_NAME           = OpenAirInterface 
-PROJECT_NUMBER         = V1.0
-OUTPUT_DIRECTORY       = 
-CREATE_SUBDIRS         = NO
-OUTPUT_LANGUAGE        = English
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = 
-ALWAYS_DETAILED_SEC    = NO
-INLINE_INHERITED_MEMB  = NO
-FULL_PATH_NAMES        = YES
-STRIP_FROM_PATH        = 
-STRIP_FROM_INC_PATH    = 
-SHORT_NAMES            = NO
-JAVADOC_AUTOBRIEF      = NO
-QT_AUTOBRIEF           = NO
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
-SEPARATE_MEMBER_PAGES  = NO
-TAB_SIZE               = 8
-ALIASES                = 
-OPTIMIZE_OUTPUT_FOR_C  = NO
-OPTIMIZE_OUTPUT_JAVA   = NO
-BUILTIN_STL_SUPPORT    = NO
-CPP_CLI_SUPPORT        = NO
-DISTRIBUTE_GROUP_DOC   = NO
-SUBGROUPING            = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL            = NO
-EXTRACT_PRIVATE        = NO
-EXTRACT_STATIC         = NO
-EXTRACT_LOCAL_CLASSES  = YES
-EXTRACT_LOCAL_METHODS  = NO
-EXTRACT_ANON_NSPACES   = NO
-HIDE_UNDOC_MEMBERS     = NO
-HIDE_UNDOC_CLASSES     = NO
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-INTERNAL_DOCS          = NO
-CASE_SENSE_NAMES       = YES
-HIDE_SCOPE_NAMES       = NO
-SHOW_INCLUDE_FILES     = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = YES
-SORT_BRIEF_DOCS        = NO
-SORT_BY_SCOPE_NAME     = NO
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 30
-SHOW_USED_FILES        = YES
-SHOW_DIRECTORIES       = NO
-FILE_VERSION_FILTER    = 
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_IF_DOC_ERROR      = YES
-WARN_NO_PARAMDOC       = NO
-WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = example_doxy.h 
-INPUT_ENCODING         = UTF-8
-FILE_PATTERNS          = 
-RECURSIVE              = NO
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXCLUDE_SYMBOLS        = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = 
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = images/
-INPUT_FILTER           = 
-FILTER_PATTERNS        = 
-FILTER_SOURCE_FILES    = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = YES
-REFERENCES_RELATION    = YES
-REFERENCES_LINK_SOURCE = YES
-USE_HTAGS              = NO
-VERBATIM_HEADERS       = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = html
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-HTML_DYNAMIC_SECTIONS  = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = NO
-TOC_EXPAND             = NO
-DISABLE_INDEX          = NO
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = YES
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-LATEX_HIDE_INDICES     = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
-XML_PROGRAMLISTING     = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = NO
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-MSCGEN_PATH            = 
-HIDE_UNDOC_RELATIONS   = YES
-HAVE_DOT               = NO
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = YES
-GROUP_GRAPHS           = YES
-UML_LOOK               = NO
-TEMPLATE_RELATIONS     = NO
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = YES
-CALL_GRAPH             = NO
-CALLER_GRAPH           = NO
-GRAPHICAL_HIERARCHY    = YES
-DIRECTORY_GRAPH        = YES
-DOT_IMAGE_FORMAT       = png
-DOT_PATH               = /usr/bin/dot
-DOTFILE_DIRS           = 
-DOT_GRAPH_MAX_NODES    = 50
-MAX_DOT_GRAPH_DEPTH    = 0
-DOT_TRANSPARENT        = NO
-DOT_MULTI_TARGETS      = NO
-GENERATE_LEGEND        = YES
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
diff --git a/openair3/DOCS/TEMPLATES/CODE/example_doxy.h b/openair3/DOCS/TEMPLATES/CODE/example_doxy.h
deleted file mode 100644
index 8ced85652f..0000000000
--- a/openair3/DOCS/TEMPLATES/CODE/example_doxy.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
-
-  Eurecom OpenAirInterface 3
-  Copyright(c) 1999 - 2010 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, 2229, route des crêtes, 06560 Valbonne Sophia Antipolis, France
-
-*******************************************************************************/
-
-
-/*! \file doxy_template.h
-* \brief explain how this block is organized, and how it works
-* \author Navid Nikaein
-* \date 2006-2010
-* \version 4.0
-* \company Eurecom
-* \email: navid.nikaein@eurecom.fr
-* \note this a note
-* \bug  this is a bug
-* \warning  this is a warning
-*/
-
-//-----------------------------------begin group-----------------------------
-
-
-/** @defgroup _oai System definitions
-
-
-
-There is different modules:
-- OAI Address
-- OAI Components
-- \ref _frame
-
-The following diagram is based on graphviz (http://www.graphviz.org/), you need to install the package to view the diagram.
-
- * \dot
- * digraph group_frame  {
- *     node [shape=rect, fontname=Helvetica, fontsize=8,style=filled,fillcolor=lightgrey];
- *     a [ label = " address"];
- *     b [ label = " component"];
- *     c [ label = " frame",URL="\ref _frame"];
- *    a->b;
- *    a->c;
- *    b->d;
- *  label="Architecture"
- *
- * }
- * \enddot
-
-\section _doxy Doxygen Help
-You can use the provided Doxyfile as the configuration file or alternatively run "doxygen -g Doxyfile" to generat the file.
-You need at least to set the some variables in the Doxyfile including "PROJECT_NAME","PROJECT_NUMBER","INPUT","IMAGE_PATH".
-Doxygen help and commands can be found at http://www.stack.nl/~dimitri/doxygen/commands.html#cmdprotocol
-
-\section _arch Architecture
-
-You need to set the IMAGE_PATH in your Doxyfile
-
-\image html arch.png "Architecture"
-\image latex arch.eps "Architecture"
-
-\subsection _mac MAC
-thisis the mac
-\subsection _rlc RLC
-this is the rlc
-\subsection _impl Implementation
-what about the implementation
-
-
-*@{*/
-
-/*!\brief OAI protocol verion */
-#define OAI_PROTOCOL_Version  0x00
-/*!\brief Length in bytes of the OAI address */
-#define OAI_ADDR_LEN        6
-
-/*!\brief OAI snode type */
-enum NodeType {
-  /*!\brief mesh routers are */
-  meshrouter = 1,
-  /*!\brief relay nodes are */
-  relaynode = 2,
-  /*!\brief clusterheads are */
-  clusterhead = 3
-};
-
-
-/*@}*/
-
-// --------------------------end group ------------------------------
-
-
-//---------------------------begin group------------------------------
-/** @defgroup _frame Frame Structure
- * @ingroup _oai
-The Frame is composed of ....
-
-
-*@{*/
-/*! \brief the frame structure is ... */
-struct frame {
-  u_short   duration; /*!< \brief Duration in us (2 bytes) */
-  u_char    da[OAI_ADDR_LEN];/*!< \brief Destination MAC@ (OAI_ADDR_LEN bytes) */
-  u_char    sa[OAI_ADDR_LEN];/*!< \brief Source MAC@ (OAI_ADDR_LEN bytes)*/
-  u_char    body[0]; /*!< \brief Body of the frame */
-};
-/*! \brief Broadcast ID is ... */
-#define BROADCAST_ID 15
-
-
-/*@}*/
-
-//--------------------------end group-----------------------
-
-
-//-----------------------begin func proto-------------------
-
-/*! \fn int init(int,int)
-* \brief this function initializes and allocates memories and etc.
-* \param[in] src the memory area to copy frrm
-* \param[out] dst the memory area to copy to
-* \return 0 on success, otherwise -1
-* \note
-* @ingroup  _oai
-*/
-int init(int src, int dst);
-
-//-----------------------end func proto-------------------
diff --git a/openair3/DOCS/TEMPLATES/CODE/images/arch.eps b/openair3/DOCS/TEMPLATES/CODE/images/arch.eps
deleted file mode 100644
index a64e194fdb..0000000000
--- a/openair3/DOCS/TEMPLATES/CODE/images/arch.eps
+++ /dev/null
@@ -1,785 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: /homes/nikaeinn/templates/dev/arch.dia
-%%Creator: Dia v0.95
-%%CreationDate: Fri Dec 11 12:31:01 2009
-%%For: nikaeinn
-%%Orientation: Portrait
-%%Magnification: 1.0000
-%%BoundingBox: 0 0 355 138
-%%BeginSetup
-%%EndSetup
-%%EndComments
-%%BeginProlog
-[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
-/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
-/two /three /four /five /six /seven /eight /nine /colon /semicolon
-/less /equal /greater /question /at /A /B /C /D /E
-/F /G /H /I /J /K /L /M /N /O
-/P /Q /R /S /T /U /V /W /X /Y
-/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
-/d /e /f /g /h /i /j /k /l /m
-/n /o /p /q /r /s /t /u /v /w
-/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
-/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
-/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
-/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
-/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
-/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
-/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
-/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
-/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
-/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
-/cp {closepath} bind def
-/c {curveto} bind def
-/f {fill} bind def
-/a {arc} bind def
-/ef {eofill} bind def
-/ex {exch} bind def
-/gr {grestore} bind def
-/gs {gsave} bind def
-/sa {save} bind def
-/rs {restore} bind def
-/l {lineto} bind def
-/m {moveto} bind def
-/rm {rmoveto} bind def
-/n {newpath} bind def
-/s {stroke} bind def
-/sh {show} bind def
-/slc {setlinecap} bind def
-/slj {setlinejoin} bind def
-/slw {setlinewidth} bind def
-/srgb {setrgbcolor} bind def
-/rot {rotate} bind def
-/sc {scale} bind def
-/sd {setdash} bind def
-/ff {findfont} bind def
-/sf {setfont} bind def
-/scf {scalefont} bind def
-/sw {stringwidth pop} bind def
-/tr {translate} bind def
-
-/ellipsedict 8 dict def
-ellipsedict /mtrx matrix put
-/ellipse
-{ ellipsedict begin
-   /endangle exch def
-   /startangle exch def
-   /yrad exch def
-   /xrad exch def
-   /y exch def
-   /x exch def   /savematrix mtrx currentmatrix def
-   x y tr xrad yrad sc
-   0 0 1 startangle endangle arc
-   savematrix setmatrix
-   end
-} def
-
-/mergeprocs {
-dup length
-3 -1 roll
-dup
-length
-dup
-5 1 roll
-3 -1 roll
-add
-array cvx
-dup
-3 -1 roll
-0 exch
-putinterval
-dup
-4 2 roll
-putinterval
-} bind def
-/dpi_x 300 def
-/dpi_y 300 def
-/conicto {
-    /to_y exch def
-    /to_x exch def
-    /conic_cntrl_y exch def
-    /conic_cntrl_x exch def
-    currentpoint
-    /p0_y exch def
-    /p0_x exch def
-    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
-    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
-    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
-    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
-    p1_x p1_y p2_x p2_y to_x to_y curveto
-} bind def
-/start_ol { gsave 1.1 dpi_x div dup scale} bind def
-/end_ol { closepath fill grestore } bind def
-28.346000 -28.346000 scale
--4.400000 -8.150000 translate
-%%EndProlog
-
-
-1.000000 1.000000 1.000000 srgb
-n 4.450000 3.350000 m 4.450000 8.100000 l 16.850000 8.100000 l 16.850000 3.350000 l f
-0.100000 slw
-[] 0 sd
-[] 0 sd
-0 slj
-0.000000 0.000000 0.000000 srgb
-n 4.450000 3.350000 m 4.450000 8.100000 l 16.850000 8.100000 l 16.850000 3.350000 l cp s
-gsave 8.875000 4.300000 translate 0.035278 -0.035278 scale
-start_ol
-1762 3044 moveto
-1276 3044 990 2673 conicto
-704 2303 704 1663 conicto
-704 1025 990 654 conicto
-1276 284 1762 284 conicto
-2248 284 2532 654 conicto
-2816 1025 2816 1663 conicto
-2816 2303 2532 2673 conicto
-2248 3044 1762 3044 conicto
-1762 3392 moveto
-2446 3392 2855 2922 conicto
-3264 2453 3264 1664 conicto
-3264 876 2855 406 conicto
-2446 -64 1762 -64 conicto
-1077 -64 666 405 conicto
-256 874 256 1664 conicto
-256 2453 666 2922 conicto
-1077 3392 1762 3392 conicto
-end_ol grestore 
-gsave 9.330083 4.300000 translate 0.035278 -0.035278 scale
-start_ol
-1536 2838 moveto
-935 1180 lineto
-2140 1180 lineto
-1536 2838 lineto
-1286 3282 moveto
-1789 3282 lineto
-3038 0 lineto
-2577 0 lineto
-2278 832 lineto
-801 832 lineto
-503 0 lineto
-35 0 lineto
-1286 3282 lineto
-end_ol grestore 
-gsave 9.736483 4.300000 translate 0.035278 -0.035278 scale
-start_ol
-448 3328 moveto
-874 3328 lineto
-874 0 lineto
-448 0 lineto
-448 3328 lineto
-end_ol grestore 
-gsave 9.914283 4.300000 translate 0.035278 -0.035278 scale
-start_ol
-end_ol grestore 
-gsave 10.100550 4.300000 translate 0.035278 -0.035278 scale
-start_ol
-1536 2838 moveto
-935 1180 lineto
-2140 1180 lineto
-1536 2838 lineto
-1286 3282 moveto
-1789 3282 lineto
-3038 0 lineto
-2577 0 lineto
-2278 832 lineto
-801 832 lineto
-503 0 lineto
-35 0 lineto
-1286 3282 lineto
-end_ol grestore 
-gsave 10.506950 4.300000 translate 0.035278 -0.035278 scale
-start_ol
-1842 2133 moveto
-1776 2174 1696 2193 conicto
-1616 2212 1519 2212 conicto
-1177 2212 993 1983 conicto
-810 1755 810 1328 conicto
-810 0 lineto
-384 0 lineto
-384 2496 lineto
-810 2496 lineto
-810 2129 lineto
-937 2347 1141 2453 conicto
-1345 2560 1638 2560 conicto
-1680 2560 1730 2554 conicto
-1781 2548 1842 2536 conicto
-1842 2133 lineto
-end_ol grestore 
-gsave 10.752483 4.300000 translate 0.035278 -0.035278 scale
-start_ol
-2176 2404 moveto
-2176 2020 lineto
-2008 2116 1838 2164 conicto
-1669 2212 1496 2212 conicto
-1109 2212 895 1958 conicto
-682 1705 682 1248 conicto
-682 791 895 537 conicto
-1109 284 1496 284 conicto
-1669 284 1838 332 conicto
-2008 380 2176 476 conicto
-2176 97 lineto
-2009 17 1830 -23 conicto
-1652 -64 1449 -64 conicto
-902 -64 579 291 conicto
-256 646 256 1248 conicto
-256 1859 582 2209 conicto
-909 2560 1476 2560 conicto
-1660 2560 1835 2521 conicto
-2011 2482 2176 2404 conicto
-end_ol grestore 
-gsave 11.074217 4.300000 translate 0.035278 -0.035278 scale
-start_ol
-2474 1509 moveto
-2474 0 lineto
-2048 0 lineto
-2048 1502 lineto
-2048 1858 1913 2035 conicto
-1778 2212 1509 2212 conicto
-1185 2212 997 1999 conicto
-810 1786 810 1419 conicto
-810 0 lineto
-384 0 lineto
-384 3456 lineto
-810 3456 lineto
-810 2120 lineto
-954 2343 1152 2451 conicto
-1350 2560 1609 2560 conicto
-2037 2560 2255 2293 conicto
-2474 2027 2474 1509 conicto
-end_ol grestore 
-1.000000 1.000000 1.000000 srgb
-n 4.900000 6.250000 m 4.900000 7.500000 l 8.250000 7.500000 l 8.250000 6.250000 l f
-0.100000 slw
-[] 0 sd
-[] 0 sd
-0 slj
-0.000000 0.000000 0.000000 srgb
-n 4.900000 6.250000 m 4.900000 7.500000 l 8.250000 7.500000 l 8.250000 6.250000 l cp s
-1.000000 1.000000 1.000000 srgb
-n 8.900000 6.200000 m 8.900000 7.495000 l 12.500000 7.495000 l 12.500000 6.200000 l f
-0.100000 slw
-[] 0 sd
-[] 0 sd
-0 slj
-0.000000 0.000000 0.000000 srgb
-n 8.900000 6.200000 m 8.900000 7.495000 l 12.500000 7.495000 l 12.500000 6.200000 l cp s
-1.000000 1.000000 1.000000 srgb
-n 13.090000 6.195000 m 13.090000 7.495000 l 16.400000 7.495000 l 16.400000 6.195000 l f
-0.100000 slw
-[] 0 sd
-[] 0 sd
-0 slj
-0.000000 0.000000 0.000000 srgb
-n 13.090000 6.195000 m 13.090000 7.495000 l 16.400000 7.495000 l 16.400000 6.195000 l cp s
-gsave 5.400000 7.100000 translate 0.035278 -0.035278 scale
-start_ol
-1536 2838 moveto
-935 1180 lineto
-2140 1180 lineto
-1536 2838 lineto
-1286 3282 moveto
-1789 3282 lineto
-3038 0 lineto
-2577 0 lineto
-2278 832 lineto
-801 832 lineto
-503 0 lineto
-35 0 lineto
-1286 3282 lineto
-end_ol grestore 
-gsave 5.795817 7.100000 translate 0.035278 -0.035278 scale
-start_ol
-2048 2116 moveto
-2048 3456 lineto
-2474 3456 lineto
-2474 0 lineto
-2048 0 lineto
-2048 380 lineto
-1922 154 1727 45 conicto
-1533 -64 1261 -64 conicto
-816 -64 536 297 conicto
-256 659 256 1248 conicto
-256 1837 536 2198 conicto
-816 2560 1260 2560 conicto
-1532 2560 1726 2450 conicto
-1921 2341 2048 2116 conicto
-682 1248 moveto
-682 798 864 541 conicto
-1046 284 1364 284 conicto
-1683 284 1865 541 conicto
-2048 798 2048 1248 conicto
-2048 1699 1865 1955 conicto
-1683 2212 1364 2212 conicto
-1046 2212 864 1955 conicto
-682 1699 682 1248 conicto
-end_ol grestore 
-gsave 6.176817 7.100000 translate 0.035278 -0.035278 scale
-start_ol
-2048 2116 moveto
-2048 3456 lineto
-2474 3456 lineto
-2474 0 lineto
-2048 0 lineto
-2048 380 lineto
-1922 154 1727 45 conicto
-1533 -64 1261 -64 conicto
-816 -64 536 297 conicto
-256 659 256 1248 conicto
-256 1837 536 2198 conicto
-816 2560 1260 2560 conicto
-1532 2560 1726 2450 conicto
-1921 2341 2048 2116 conicto
-682 1248 moveto
-682 798 864 541 conicto
-1046 284 1364 284 conicto
-1683 284 1865 541 conicto
-2048 798 2048 1248 conicto
-2048 1699 1865 1955 conicto
-1683 2212 1364 2212 conicto
-1046 2212 864 1955 conicto
-682 1699 682 1248 conicto
-end_ol grestore 
-gsave 6.557817 7.100000 translate 0.035278 -0.035278 scale
-start_ol
-1842 2133 moveto
-1776 2174 1696 2193 conicto
-1616 2212 1519 2212 conicto
-1177 2212 993 1983 conicto
-810 1755 810 1328 conicto
-810 0 lineto
-384 0 lineto
-384 2496 lineto
-810 2496 lineto
-810 2129 lineto
-937 2347 1141 2453 conicto
-1345 2560 1638 2560 conicto
-1680 2560 1730 2554 conicto
-1781 2548 1842 2536 conicto
-1842 2133 lineto
-end_ol grestore 
-gsave 6.790121 7.100000 translate 0.035278 -0.035278 scale
-start_ol
-2538 1329 moveto
-2538 1124 lineto
-682 1124 lineto
-682 714 908 499 conicto
-1134 284 1537 284 conicto
-1772 284 1991 340 conicto
-2211 396 2432 509 conicto
-2432 128 lineto
-2216 34 1988 -15 conicto
-1760 -64 1526 -64 conicto
-940 -64 598 284 conicto
-256 633 256 1226 conicto
-256 1839 582 2199 conicto
-909 2560 1463 2560 conicto
-1960 2560 2249 2229 conicto
-2538 1898 2538 1329 conicto
-2112 1472 moveto
-2112 1809 1931 2010 conicto
-1751 2212 1453 2212 conicto
-1116 2212 914 2018 conicto
-712 1824 682 1472 conicto
-2112 1472 lineto
-end_ol grestore 
-gsave 7.154187 7.100000 translate 0.035278 -0.035278 scale
-start_ol
-2021 2424 moveto
-2021 2034 lineto
-1818 2123 1638 2167 conicto
-1459 2212 1267 2212 conicto
-975 2212 828 2119 conicto
-682 2026 682 1838 conicto
-682 1696 784 1615 conicto
-887 1535 1196 1461 conicto
-1327 1430 lineto
-1748 1337 1930 1166 conicto
-2112 995 2112 690 conicto
-2112 342 1839 139 conicto
-1566 -64 1089 -64 conicto
-891 -64 675 -25 conicto
-460 14 222 94 conicto
-222 519 lineto
-481 402 692 343 conicto
-903 284 1110 284 conicto
-1387 284 1536 383 conicto
-1686 482 1686 661 conicto
-1686 829 1580 917 conicto
-1475 1006 1118 1088 conicto
-985 1121 lineto
-620 1201 438 1367 conicto
-256 1533 256 1823 conicto
-256 2176 507 2368 conicto
-758 2560 1219 2560 conicto
-1448 2560 1649 2526 conicto
-1851 2492 2021 2424 conicto
-end_ol grestore 
-gsave 7.458988 7.100000 translate 0.035278 -0.035278 scale
-start_ol
-2021 2424 moveto
-2021 2034 lineto
-1818 2123 1638 2167 conicto
-1459 2212 1267 2212 conicto
-975 2212 828 2119 conicto
-682 2026 682 1838 conicto
-682 1696 784 1615 conicto
-887 1535 1196 1461 conicto
-1327 1430 lineto
-1748 1337 1930 1166 conicto
-2112 995 2112 690 conicto
-2112 342 1839 139 conicto
-1566 -64 1089 -64 conicto
-891 -64 675 -25 conicto
-460 14 222 94 conicto
-222 519 lineto
-481 402 692 343 conicto
-903 284 1110 284 conicto
-1387 284 1536 383 conicto
-1686 482 1686 661 conicto
-1686 829 1580 917 conicto
-1475 1006 1118 1088 conicto
-985 1121 lineto
-620 1201 438 1367 conicto
-256 1533 256 1823 conicto
-256 2176 507 2368 conicto
-758 2560 1219 2560 conicto
-1448 2560 1649 2526 conicto
-1851 2492 2021 2424 conicto
-end_ol grestore 
-gsave 9.020000 7.095000 translate 0.035278 -0.035278 scale
-start_ol
-2880 3094 moveto
-2880 2615 lineto
-2656 2831 2402 2937 conicto
-2149 3044 1864 3044 conicto
-1301 3044 1002 2689 conicto
-704 2334 704 1663 conicto
-704 993 1002 638 conicto
-1301 284 1864 284 conicto
-2149 284 2402 390 conicto
-2656 497 2880 713 conicto
-2880 238 lineto
-2649 87 2390 11 conicto
-2132 -64 1845 -64 conicto
-1106 -64 681 399 conicto
-256 863 256 1664 conicto
-256 2466 681 2929 conicto
-1106 3392 1845 3392 conicto
-2137 3392 2395 3317 conicto
-2654 3243 2880 3094 conicto
-end_ol grestore 
-gsave 9.434867 7.095000 translate 0.035278 -0.035278 scale
-start_ol
-1377 2212 moveto
-1055 2212 868 1954 conicto
-682 1696 682 1248 conicto
-682 800 867 542 conicto
-1053 284 1377 284 conicto
-1697 284 1883 543 conicto
-2070 802 2070 1248 conicto
-2070 1692 1883 1952 conicto
-1697 2212 1377 2212 conicto
-1376 2560 moveto
-1899 2560 2197 2212 conicto
-2496 1864 2496 1248 conicto
-2496 635 2197 285 conicto
-1899 -64 1376 -64 conicto
-851 -64 553 285 conicto
-256 635 256 1248 conicto
-256 1864 553 2212 conicto
-851 2560 1376 2560 conicto
-end_ol grestore 
-gsave 9.798933 7.095000 translate 0.035278 -0.035278 scale
-start_ol
-2339 2028 moveto
-2493 2302 2705 2431 conicto
-2918 2560 3204 2560 conicto
-3591 2560 3800 2286 conicto
-4010 2013 4010 1509 conicto
-4010 0 lineto
-3584 0 lineto
-3584 1502 lineto
-3584 1862 3460 2037 conicto
-3336 2212 3082 2212 conicto
-2771 2212 2590 1999 conicto
-2410 1786 2410 1419 conicto
-2410 0 lineto
-1984 0 lineto
-1984 1502 lineto
-1984 1865 1860 2038 conicto
-1736 2212 1477 2212 conicto
-1171 2212 990 1998 conicto
-810 1784 810 1419 conicto
-810 0 lineto
-384 0 lineto
-384 2496 lineto
-810 2496 lineto
-810 2120 lineto
-947 2344 1141 2452 conicto
-1335 2560 1602 2560 conicto
-1871 2560 2060 2423 conicto
-2249 2287 2339 2028 conicto
-end_ol grestore 
-gsave 10.383133 7.095000 translate 0.035278 -0.035278 scale
-start_ol
-810 380 moveto
-810 -960 lineto
-384 -960 lineto
-384 2496 lineto
-810 2496 lineto
-810 2116 lineto
-937 2339 1131 2449 conicto
-1325 2560 1595 2560 conicto
-2042 2560 2322 2198 conicto
-2602 1837 2602 1248 conicto
-2602 659 2322 297 conicto
-2043 -64 1595 -64 conicto
-1325 -64 1131 45 conicto
-938 155 810 380 conicto
-2176 1248 moveto
-2176 1699 1994 1955 conicto
-1812 2212 1493 2212 conicto
-1175 2212 992 1955 conicto
-810 1699 810 1248 conicto
-810 798 992 541 conicto
-1175 284 1493 284 conicto
-1812 284 1994 541 conicto
-2176 798 2176 1248 conicto
-end_ol grestore 
-gsave 10.755667 7.095000 translate 0.035278 -0.035278 scale
-start_ol
-1377 2212 moveto
-1055 2212 868 1954 conicto
-682 1696 682 1248 conicto
-682 800 867 542 conicto
-1053 284 1377 284 conicto
-1697 284 1883 543 conicto
-2070 802 2070 1248 conicto
-2070 1692 1883 1952 conicto
-1697 2212 1377 2212 conicto
-1376 2560 moveto
-1899 2560 2197 2212 conicto
-2496 1864 2496 1248 conicto
-2496 635 2197 285 conicto
-1899 -64 1376 -64 conicto
-851 -64 553 285 conicto
-256 635 256 1248 conicto
-256 1864 553 2212 conicto
-851 2560 1376 2560 conicto
-end_ol grestore 
-gsave 11.119733 7.095000 translate 0.035278 -0.035278 scale
-start_ol
-2474 1509 moveto
-2474 0 lineto
-2048 0 lineto
-2048 1502 lineto
-2048 1858 1913 2035 conicto
-1778 2212 1509 2212 conicto
-1185 2212 997 1999 conicto
-810 1786 810 1419 conicto
-810 0 lineto
-384 0 lineto
-384 2496 lineto
-810 2496 lineto
-810 2120 lineto
-954 2340 1152 2450 conicto
-1350 2560 1609 2560 conicto
-2037 2560 2255 2293 conicto
-2474 2027 2474 1509 conicto
-end_ol grestore 
-gsave 11.500733 7.095000 translate 0.035278 -0.035278 scale
-start_ol
-2538 1329 moveto
-2538 1124 lineto
-682 1124 lineto
-682 714 908 499 conicto
-1134 284 1537 284 conicto
-1772 284 1991 340 conicto
-2211 396 2432 509 conicto
-2432 128 lineto
-2216 34 1988 -15 conicto
-1760 -64 1526 -64 conicto
-940 -64 598 284 conicto
-256 633 256 1226 conicto
-256 1839 582 2199 conicto
-909 2560 1463 2560 conicto
-1960 2560 2249 2229 conicto
-2538 1898 2538 1329 conicto
-2112 1472 moveto
-2112 1809 1931 2010 conicto
-1751 2212 1453 2212 conicto
-1116 2212 914 2018 conicto
-712 1824 682 1472 conicto
-2112 1472 lineto
-end_ol grestore 
-gsave 11.864800 7.095000 translate 0.035278 -0.035278 scale
-start_ol
-2474 1509 moveto
-2474 0 lineto
-2048 0 lineto
-2048 1502 lineto
-2048 1858 1913 2035 conicto
-1778 2212 1509 2212 conicto
-1185 2212 997 1999 conicto
-810 1786 810 1419 conicto
-810 0 lineto
-384 0 lineto
-384 2496 lineto
-810 2496 lineto
-810 2120 lineto
-954 2340 1152 2450 conicto
-1350 2560 1609 2560 conicto
-2037 2560 2255 2293 conicto
-2474 2027 2474 1509 conicto
-end_ol grestore 
-gsave 12.245800 7.095000 translate 0.035278 -0.035278 scale
-start_ol
-832 3213 moveto
-832 2524 lineto
-1664 2524 lineto
-1664 2176 lineto
-832 2176 lineto
-832 826 lineto
-832 521 914 434 conicto
-997 348 1249 348 conicto
-1664 348 lineto
-1664 0 lineto
-1242 0 lineto
-768 0 587 179 conicto
-406 359 406 826 conicto
-406 2176 lineto
-128 2176 lineto
-128 2524 lineto
-406 2524 lineto
-406 3213 lineto
-832 3213 lineto
-end_ol grestore 
-gsave 13.945000 6.995000 translate 0.035278 -0.035278 scale
-start_ol
-448 3328 moveto
-2313 3328 lineto
-2313 2980 lineto
-874 2980 lineto
-874 1948 lineto
-2173 1948 lineto
-2173 1600 lineto
-874 1600 lineto
-874 27 lineto
-448 27 lineto
-448 3328 lineto
-end_ol grestore 
-gsave 14.239614 6.995000 translate 0.035278 -0.035278 scale
-start_ol
-1842 2133 moveto
-1776 2174 1696 2193 conicto
-1616 2212 1519 2212 conicto
-1177 2212 993 1983 conicto
-810 1755 810 1328 conicto
-810 0 lineto
-384 0 lineto
-384 2496 lineto
-810 2496 lineto
-810 2129 lineto
-937 2347 1141 2453 conicto
-1345 2560 1638 2560 conicto
-1680 2560 1730 2554 conicto
-1781 2548 1842 2536 conicto
-1842 2133 lineto
-end_ol grestore 
-gsave 14.485147 6.995000 translate 0.035278 -0.035278 scale
-start_ol
-1528 1252 moveto
-1050 1252 866 1139 conicto
-682 1026 682 754 conicto
-682 538 820 411 conicto
-958 284 1196 284 conicto
-1523 284 1721 523 conicto
-1920 763 1920 1161 conicto
-1920 1252 lineto
-1528 1252 lineto
-2346 1426 moveto
-2346 0 lineto
-1920 0 lineto
-1920 383 lineto
-1785 154 1579 45 conicto
-1374 -64 1076 -64 conicto
-701 -64 478 154 conicto
-256 373 256 739 conicto
-256 1166 543 1383 conicto
-830 1600 1367 1600 conicto
-1920 1600 lineto
-1920 1639 lineto
-1920 1913 1740 2062 conicto
-1561 2212 1238 2212 conicto
-1032 2212 836 2162 conicto
-641 2113 448 2014 conicto
-448 2386 lineto
-670 2473 879 2516 conicto
-1088 2560 1285 2560 conicto
-1819 2560 2082 2279 conicto
-2346 1998 2346 1426 conicto
-end_ol grestore 
-gsave 14.849214 6.995000 translate 0.035278 -0.035278 scale
-start_ol
-2339 2028 moveto
-2493 2302 2705 2431 conicto
-2918 2560 3204 2560 conicto
-3591 2560 3800 2286 conicto
-4010 2013 4010 1509 conicto
-4010 0 lineto
-3584 0 lineto
-3584 1502 lineto
-3584 1862 3460 2037 conicto
-3336 2212 3082 2212 conicto
-2771 2212 2590 1999 conicto
-2410 1786 2410 1419 conicto
-2410 0 lineto
-1984 0 lineto
-1984 1502 lineto
-1984 1865 1860 2038 conicto
-1736 2212 1477 2212 conicto
-1171 2212 990 1998 conicto
-810 1784 810 1419 conicto
-810 0 lineto
-384 0 lineto
-384 2496 lineto
-810 2496 lineto
-810 2120 lineto
-947 2344 1141 2452 conicto
-1335 2560 1602 2560 conicto
-1871 2560 2060 2423 conicto
-2249 2287 2339 2028 conicto
-end_ol grestore 
-gsave 15.433414 6.995000 translate 0.035278 -0.035278 scale
-start_ol
-2538 1329 moveto
-2538 1124 lineto
-682 1124 lineto
-682 714 908 499 conicto
-1134 284 1537 284 conicto
-1772 284 1991 340 conicto
-2211 396 2432 509 conicto
-2432 128 lineto
-2216 34 1988 -15 conicto
-1760 -64 1526 -64 conicto
-940 -64 598 284 conicto
-256 633 256 1226 conicto
-256 1839 582 2199 conicto
-909 2560 1463 2560 conicto
-1960 2560 2249 2229 conicto
-2538 1898 2538 1329 conicto
-2112 1472 moveto
-2112 1809 1931 2010 conicto
-1751 2212 1453 2212 conicto
-1116 2212 914 2018 conicto
-712 1824 682 1472 conicto
-2112 1472 lineto
-end_ol grestore 
-showpage
diff --git a/openair3/DOCS/TEMPLATES/CODE/images/arch.png b/openair3/DOCS/TEMPLATES/CODE/images/arch.png
deleted file mode 100644
index 24741b93ef5d85d47f4bf2691b6572a2b34f4e90..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2893
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

diff --git a/openair3/DOCS/TEMPLATES/README/Readme.doxy b/openair3/DOCS/TEMPLATES/README/Readme.doxy
deleted file mode 100644
index 43e4e3b87a..0000000000
--- a/openair3/DOCS/TEMPLATES/README/Readme.doxy
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
-
-  OPENAIRINTERFACE 0/1/2/3 
-  Copyright(c) 1999 - 2010 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>
-  Mailing List <openair_tech@eurecom.fr>
-  Forums  http://forums.eurecom.fr/openairinterface
-  Eurecom, 2229, route des cretes, 06560 Valbonne Sophia Antipolis, France
-
-*******************************************************************************/
-
-/*! \file Readme.doxy
-* \brief explain how this block is organized, and how it works 
-* \author Navid Nikaein
-* \date 2009
-* \version 0.1 
-* \company Eurecom
-* \note This conde is under GNU GENERAL PUBLIC LICENSE, version 2, June 1991
-* \email: navid.nikaein@eurecom.fr
-* \warning 
-*/ 
-
-/*! \mainpage Table of contents
-
-The content of this readme is the following: 
-
-  -# What is this block about in OpenAirInterface
-  -# Folders and files description
-  -# Organization of the folders and their dependancies
-  -# Makefile targets and how to build
-  -# How to use through a tutorial: run a simple experimentation
-
-
-\section _block What is this block about in OpenAirInterface ?
-     
-
-     It essentially means "the hardware part" located at openair0.
-
-     Explain through the figures: 
-     \image html image.png "caption" width=3cm
-     \image latex image.pdf "caption" 
-
-     More information about ???  can be found on the Twiki:
-     https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/WebHome
-
-
-\section _folders Folders and files description
-
-The structure is the following: 
-<table>
-<tr><td>File/Folder</td> <td> Description </td> </tr>      
-</table>
-
-- Folder1:     Contains this and that      
-- Folder2:     Contains this and that 
-- init.bash:   A simple script file, that any user SHOULD source from its environment personal set-up script (this is typically ~/.bashrc) by adding the following lines to it:
-	          This is my ~/.bashrc file or equivalent export OPENAIRX=path/to/my/openairX/folder source $OPENAIRX/init.bash.  The file includes variable definitions & path settings to access softwares, sources & Makefiles, software distribution in openair, and so on.
-
-
-YOU DEFINETELY NEED TO SOURCE THIS FILE. Description
-
-\section  _organization Organization of the folders and their dependancies
-    
-
-     The 3 folders have the following structures
-
-     - Folder1/subfolder1/:  contains any ressource related to the design
-
-     - Folder2/subfolder2/: contains 
-
-     - Folder2/src/ 
-
-     - Folder2/lib/ 
-
-     - Folder2/bin/ 
-
-      Explain where are the source files.  
-      Explain the relationship with other Blocks.
-
-    
-\section  _makefile Makefile targets and how to build
-     	  
-     Explain whether you are using symbolic links or not,
-     how to backup/archive
-     how to generate the tags
-     how to print the vars
-     how to create the documentation 
-
-\section _howto How to use through a tutorial: run a simple experimentation
-          ...
-
-
-*/
-
diff --git a/openair3/DOCS/TEMPLATES/README/readme.txt b/openair3/DOCS/TEMPLATES/README/readme.txt
deleted file mode 100644
index 12d67a31dc..0000000000
--- a/openair3/DOCS/TEMPLATES/README/readme.txt
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
-
-  OPENAIRINTERFACE 0/1/2/3 
-  Copyright(c) 1999 - 2010 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>
-  Mailing List <openair_tech@eurecom.fr>
-  Forums  http://forums.eurecom.fr/openairinterface
-  Eurecom, 2229, route des cretes, 06560 Valbonne Sophia Antipolis, France
-
-*******************************************************************************/
-/*________________________OEPNAIR/OPENAIR0/________________________
-
- File    : Readme.txt 
- Authors : navid nikaein
- Company : EURECOM
- Emails  : navid.nikaein@eurecom.fr
-________________________________________________________________*/
-
-
--------------------------
-Table of contents
--------------------------
-
-The content of this readme is the following: 
-
-  1) What is this block about in OpenAirInterface
-  2) Folders and files description
-  3) Organization of the folders and their dependancies
-  4) Makefile targets and how to build
-  5) How to use through a tutorial: run a simple experimentation
-
-------------------------------------------------
-1) What is this block about in OpenAirInterface ?
------------------------------------------------
-     
-
-     It essentially means "the hardware part" located at openair0.
-
-     More information about ???  can be found on the Twiki:
-     https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/WebHome
-
------------------------------------------
-2) Folders and files description
------------------------------------------
-
-   File/Folder        Description
-    -----------        -----------
-    
-    - Folder1/       contains 
-    
-    - Folder2/       contains 
-    
-    - init.bash          A simple script file, that any user SHOULD source from 
-    		       its environment personal set-up script (this is typically ~/.bashrc) 
-		       by adding the following lines to it:
-
-                        # This is my ~/.bashrc file or equivalent
-                         export OPENAIRX=path/to/my/openairX/folder
-                         source $OPENAIRX/init.bash
-    
-                       The file includes variable definitions & path settings to
-                       access softwares, sources & Makefiles, software
-                       distribution in openair, and so on.
-
-                       YOU DEFINETELY NEED TO SOURCE THIS FILE.
-
-----------------------------------------------------
-3) Organization of the folders and their dependancies
-----------------------------------------------------
-
-     The 3 folders have the following structures
-
-     - Folder1/subfolder1/  contains any ressource related to the design
-
-     - Folder2/subfolder2/ contains 
-
-     - Folder2/src/ 
-
-     - Folder2/lib/ 
-
-     - Folder2/bin/ 
-
-      Explain where are the source files.  
-      Explain the relationship with other Blocks.
-
-    
------------------------------------------
-4)  Makefile targets and how to build
------------------------------------------
-
-     Explain whether you are using symbolic links or not,
-     how to backup/archive
-     how to generate the tags
-     how to print the vars
-     how to create the documentation 
-
-----------------------------------------------------------------
-6)  How to use through a tutorial: run a simple experimentation
-----------------------------------------------------------------
-
-      ...
-
diff --git a/openair3/MESH/COPYING b/openair3/MESH/COPYING
deleted file mode 100644
index 94a9ed024d..0000000000
--- a/openair3/MESH/COPYING
+++ /dev/null
@@ -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>.
diff --git a/openair3/MESH/L3_rrc_defs.h b/openair3/MESH/L3_rrc_defs.h
deleted file mode 100644
index a6c82a9828..0000000000
--- a/openair3/MESH/L3_rrc_defs.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/** @addtogroup _mesh_layer3_
-  * @{ This page describes the interface between the RRC and RRM/RRCI modules for OpenAirInterface Mesh.
-  */
-
-
-#ifndef __L3_RRC_DEFS_H__
-#define __L3_RRC_DEFS_H__
-
-#define MAX_L3_INFO    16
-#define LENGTH_L2_ID   8
-#define IEEE_ADDR_LEN 6
-
-
-#include "COMMON/mac_rrc_primitives.h"
-
-/*! \brief SENDORA scenario active: flags to set at the beginning of the simulation
-*/
-#define WSN            1  ///if wsn = 0 -> secondary network, else sensor network 
-#define SCEN_1         1
-#define SCEN_2_CENTR   0
-#define SCEN_2_DISTR   0
-#define COLL_CLUST     0  //mod_lor_10_11_04
-
-//mod_lor_10_05_05++
-/*!
-*******************************************************************************
-\brief Id of different CRRM entities in case of multiple entities on same machine
-  */
-#define BTS_ID -1
-#define FC_ID -1
-#define CH_COLL_ID -1
-#define FIRST_SENSOR_ID 0
-#define FIRST_SECOND_CLUSTER_USER_ID 5 //add_lor_11_01_06 AAA: if two clusters on two pcs this parameter should be greater than the number of rrm instances
-#define FIRST_MR_ID 8 //mod_lor_11_02_18: if cluster on more than 1 pc, this is the ID of first MR
-//mod_lor_10_05_05--
-
-/*!
- *******************************************************************************
- \brief Parameters about channels:
- *
-*/
-#define NB_OF_SENSORS 3 //!< Number of units that can perform sensing (if scen2_centr it includes secondary users of both clusters)
-#define CH_NEEDED_FOR_SN 1 //!< Number of channels needed by secondary network//mod_lor_10_05_17
-#define SB_NEEDED_FOR_SN 25 //mod_lor_10_05_26: 
-#define NB_SENS_MAX    4  //!< Maximum number of channels accepted by the system; AAA: should be low (4) in SCEN_2 otherwise overflow at rrc level
-#define MAX_NUM_SB 50//mod_eure_lor
-#define SB_BANDWIDTH   180  //! in khz, bandwidth of each sub-band; AAA -> modify only in relation with NUM_SB and sensing parameters in emul_interface!  //mod_lor_10_05_26
-#define NUM_SB 50//mod_eure_lor
-#define LAMBDA0 -90   //mod_lor_10_05_26: for mu0 that is the averaged value
-#define LAMBDA1 -75   //mod_lor_10_05_26: for mu1 that is the maximum value
-#define MIN_NB_SB_CH 25   //mod_lor_10_05_26: for mu1 that is the maximum value
-#define BG 8 //! sub-bands of protection between channels
-#define MAX_USER_NB 5 //! max number of users //add_lor_10_11_03
-
-/*! \brief Transaction ID descriptor
-*/
-typedef unsigned int Transaction_t;
-
-/*! \brief Instance ID descriptor
- */
-typedef unsigned char Instance_t;
-
-/*!\brief Radio Bearer ID descriptor
- */
-typedef unsigned short RB_ID;
-
-
-typedef unsigned short QOS_CLASS_T;
-
-#define LCHAN_BCCH      0
-#define LCHAN_CCCH      1
-#define LCHAN_DCCH      2
-#define LCHAN_DTCH_B    3
-#define LCHAN_DTCH      4
-#define LCHAN_MRBCH     5
-
-/*!\brief Layer 2 Identifier
- */
-
-typedef struct {
-  unsigned char L2_id[LENGTH_L2_ID];
-} L2_ID;
-
-
-
-/*!\brief Measurement Mode
- */
-typedef enum {
-  PERIODIC=0,   /*!< Periodic measurement*/
-  EVENT_DRIVEN  /*!< Event-driven measurement*/
-} MEAS_MODE;
-
-/*!\brief Sensing measurement descriptor
- */
-typedef struct {
-  unsigned char RSSI_Threshold;    /*!< Threshold (minus in dBm) for neighbour RSSI measurement*/
-  unsigned char RSSI_F_Factor;    /*!< Forgetting factor for RSSI averaging*/
-  unsigned short Rep_interval;  /*!< \brief Reporting interval between successive measurement reports in this process*/
-} SENSING_MEAS_DESC;
-
-/*!\brief Sensing measurement information
- */
-typedef struct {
-  unsigned char Rssi;    /*!< RSSI (minus in dBm) for neighbour*/
-  L2_ID L2_id;           /*!< Layer 2 ID for neighbour*/
-} SENSING_MEAS_T;
-
-/*!
-*******************************************************************************
-\brief Structure of sensing information database
-*/
-typedef struct  Sens_ch_s {
-  unsigned int        Start_f    ; ///< frequence initial du canal //mod_lor_10_03_17: intxflot
-  unsigned int        Final_f    ; ///< frequence final du canal   //mod_lor_10_03_17: intxflot
-  unsigned int        Ch_id      ; ///< ID du canal
-  //mod_eure_lor++
-  char I0[MAX_NUM_SB] ;
-  char mu0[MAX_NUM_SB];
-  char mu1[MAX_NUM_SB];
-
-  //float               meas       ; ///< Sensing results
-  unsigned int        is_free  [MAX_NUM_SB]  ; ///< Decision about the channel //mod_lor_10_05_28 ->char instead of int
-  //mod_eure_lor--
-  struct  Sens_ch_s   *next      ; ///< pointeur sur le prochain canal
-} Sens_ch_t ;
-
-/*!
-*******************************************************************************
-\brief Structure that describes the channels
-*/
-typedef struct {
-  unsigned int        Start_f    ; ///< frequence initial du canal //mod_lor_10_03_17: intxflot
-  unsigned int        Final_f    ; ///< frequence final du canal   //mod_lor_10_03_17: intxflot
-  unsigned int        Ch_id      ; ///< ID du canal               //mod_lor_10_03_17: intxflot
-  QOS_CLASS_T         QoS        ; ///< Max QoS possible on the channel
-} CHANNEL_T ;
-
-/*!\brief cooperation type between CHs
- */
-typedef enum {
-  NO_COOP     = 0, //!< No cooperation
-  AMPL_FORW   = 1, //!< amplify and forward collaboration
-  DECO_FORW   = 2, //!< decode and forward collaboration
-} COOPERATION_T;
-/*!
-*******************************************************************************
-\brief Structure that describes the channels
-*/
-typedef struct {
-  //float               Start_f    ; ///< frequence initial du canal
-  //float               Final_f    ; ///< frequence final du canal
-  int                 Ch_id      ; ///< ID du canal
-  //QOS_CLASS_T         QoS        ; ///< Max QoS possible on the channel
-} MAC_INFO_T ;
-
-
-/*!\brief Layer 3 Info types for RRC messages
- */
-typedef enum {
-  NONE_L3     = 0, //!< No information
-  IPv4_ADDR   = 4, //!< IPv4 Address = size Info
-  IPv6_ADDR   =16, //!< IPv6 Address = size Info
-  MAC_ADDR    = 8  //!< MAC Id       = size Info
-} L3_INFO_T;
-
-/*!\brief Layer 3 Info types for RRC messages
- */
-typedef enum {
-  BROADCAST=0,        /*!< Broadcast bearer*/
-  UNICAST,            /*!< Unicast bearer*/
-  MULTICAST           /*!< Multicast bearer*/
-} RB_TYPE;
-
-
-/*!
-*******************************************************************************
-\brief Entete de la file des messages reçus ou a envoyer
-*/
-typedef struct channels_db_s {
-  double               info_time ; ///< information age
-  unsigned int         is_free   ; ///< channel availability   //mod_lor_10_05_28 ->char instead of int
-  unsigned int         priority  ; ///< channel priority
-  unsigned int         is_ass    ; ///< channel used by secondary network
-  L2_ID                source_id ; ///< SU using channel (source)
-  L2_ID                dest_id   ; ///< SU using channel (dest)
-  CHANNEL_T            channel   ; ///< channel description
-  struct channels_db_s *next     ; ///< next node pointer
-} CHANNELS_DB_T ;
-
-#endif //__L3_RRC_DEFS_H__
-/** @} */
diff --git a/openair3/MESH/L3_rrc_interface.h b/openair3/MESH/L3_rrc_interface.h
deleted file mode 100644
index 967e32097b..0000000000
--- a/openair3/MESH/L3_rrc_interface.h
+++ /dev/null
@@ -1,491 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*! @defgroup _mesh_layer3_ OpenAirInterface MESH L2/L3 Interfaces
- * @{
- */
-
-/*!
-\brief Ask RRC to establish a radio bearer.  Used mainly by CH, except during
-        initialization phase of MR for default bearers (SRB0,SRB1).  Sends
-        CH IPAddr to RRC for attachment signaling (for example during DTCH_B
-        configuration).
- */
-void rrm_rb_establish_req(
-  Instance_t         inst             , //!< Identification de l'instance
-  LCHAN_DESC        *Lchan_desc       , //!< Logical Channel Descriptor Array
-  MAC_RLC_MEAS_DESC *Mac_rlc_meas_desc, //!< MAC/RLC Measurement descriptors for RB
-  L2_ID             *L2_id            , //!< Layer 2 (MAC) IDs for link
-  Transaction_t      Trans_id         , //!< Transaction ID
-  unsigned char     *L3_info          , //!< Optional L3 Information
-  L3_INFO_T          L3_info_t          //!< Type of L3 Information
-);
-/*!
-\brief RRC response to rb_establish_req.  RRC Acknowledgement of reception of
-       rrc_rb_establishment_req.
- */
-void rrc_rb_establish_resp(
-  Instance_t         inst             , //!< Identification de l'instance
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
- \brief RRC confirmation of rb_establish_req.  RRC confirmation of
-         rrc_rb_establishment_req after transactions are complete. Essentially
-         for CH only (except SRB0/1)
- */
-void rrc_rb_establish_cfm(
-  Instance_t         inst             , //!< Identification de l'instance
-  RB_ID              Rb_id            , //!< Radio Bearer ID used by RRC
-  RB_TYPE            RB_type          , //!< Radio Bearer Type
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
-\brief RRC Connection Establishment indication.  Message received by RRM in CH
-       at completion of attachment phase of a new MR (after configuration MR
-       IPAddr). Here L3_info contains MR IPAddr. Message received by RRCI in MR
-       after configuration of initial RBs and reception of CH IPAddr.  Here
-       L3_info contains CH IPAddr.  For MR the RBID's of basic IP services are
-       also required.
-*/
-void rrc_cx_establish_ind(
-  Instance_t         inst             , //!< Identification de l'instance
-  L2_ID              L2_id            , //!< Layer 2 (MAC) ID
-  Transaction_t      Trans_id         , //!< Transaction ID
-  unsigned char     *L3_info          , //!< Optional L3 Information
-  L3_INFO_T          L3_info_t        , //!< Type of L3 Information
-  RB_ID              DTCH_B_id        , //!< RBID of broadcast IP service (MR only)
-  RB_ID              DTCH_id            //!< RBID of default IP service (MR only)
-);
-/*!
-\brief RRCI Connection Establishment response.  Received by RRC in MR at
-       completion of attachment phase and address configuration of a new MR.
-       L3_info contains IPAddr of MR.
-*/
-void rrci_cx_establish_resp(
-  Instance_t         inst             , //!< Identification de l'instance
-  Transaction_t      Trans_id         , //!< Transaction ID
-  unsigned char     *L3_info          , //!< Optional L3 Information
-  L3_INFO_T          L3_info_t          //!< Type of L3 Information
-);
-/*!
-\brief Ask RRC to modify the QoS/Measurements of a radio bearer
- */
-void rrm_rb_modify_req(
-  Instance_t         inst             , //!< Identification de l'instance
-  LCHAN_DESC        *Lchan_desc       , //!< Logical Channel Descriptor Array
-  MAC_RLC_MEAS_DESC *Mac_meas_desc    , //!< MAC/RLC Measurement descriptors for RB
-  RB_ID              Rb_id            , //!< Radio Bearer ID
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
-\brief RRC response to rb_modify_req
- */
-void rrc_rb_modify_resp(
-  Instance_t         inst             , //!< Identification de l'instance
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
-\brief RRC confirmation of rb_modify_req
- */
-void rrc_rb_modify_cfm(
-  Instance_t         inst             , //!< Identification de l'instance
-  RB_ID              Rb_id            , //!< Radio Bearer ID used by RRC
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
-\brief Ask RRC to release a radio bearer
- */
-void rrm_rb_release_req(
-  Instance_t         inst             , //!< Identification de l'instance
-  RB_ID              Rb_id            , //!< Radio Bearer ID
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
-\brief RRC response to rb_release_req
- */
-void rrc_rb_release_resp(
-  Instance_t         inst             , //!< Identification de l'instance
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
-\brief RRC measurement indication
- */
-void rrc_rb_meas_ind(
-  Instance_t         inst             , //!< Identification de l'instance
-  RB_ID              Rb_id            , //!< Radio Bearer ID
-  L2_ID              L2_id            , //!< Layer 2 (MAC) IDs for link
-  MEAS_MODE          Meas_mode        , //!< Measurement mode (periodic or event-driven)
-  MAC_RLC_MEAS_T     Mac_rlc_meas     , //!< MAC/RLC measurements
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-
-/*!
-\brief RRM response to rb_meas_ind
- */
-void rrm_rb_meas_resp(
-  Instance_t         inst             , //!< Identification de l'instance
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
-\brief Configure a sensing measurement
- */
-void rrm_sensing_meas_req(
-  Instance_t         inst             ,  //!< Identification de l'instance
-  L2_ID              L2_id            ,  //!< Layer 2 (MAC) ID
-  SENSING_MEAS_DESC  Sensing_meas_desc,  //!< Sensing Measurement Descriptor
-  Transaction_t      Trans_id            //!< Transaction ID
-);
-/*!
-\brief RRC response to sensing_meas_req
- */
-void rrc_sensing_meas_resp(
-  Instance_t         inst             , //!< Identification de l'instance
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
-\brief RRC sensing measurement indication
- */
-void rrc_sensing_meas_ind(
-  Instance_t         inst             , //!< Identification de l'instance
-  L2_ID              L2_id            , //!< Layer 2 ID (MAC) of sensing node
-  unsigned int       NB_meas          , //!< Layer 2 ID (MAC) of sensing node
-  SENSING_MEAS_T    *Sensing_meas     , //!< Sensing Information
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
-\brief RRM response to sensing_meas_resp
- */
-void rrm_sensing_meas_resp(
-  Instance_t         inst             , //!< Identification de l'instance
-  Transaction_t      Trans_id           //!< Transaction ID
-);
-/*!
-\brief Clusterhead PHY-Synch Indication
- */
-void rrc_phy_synch_to_CH_ind(
-  Instance_t         inst             , //!< Identification de l'instance
-  unsigned int       Ch_index         , //!< Clusterhead index
-  L2_ID              L2_id              //!< Layer 2 ID (MAC) of CH
-);
-/*!
-\brief Mesh router PHY-Synch Indication
- */
-void rrc_phy_synch_to_MR_ind(
-  Instance_t         inst             , //!< Identification de l'instance
-  L2_ID              L2_id              //!< Layer 2 ID (MAC) of MR
-);
-
-/*!
-\brief Clusterhead PHY-Out-of-Synch Indication
- */
-void rrc_phy_out_of_synch_CH_ind(
-  Instance_t          inst             , //!< Identification de l'instance
-  unsigned int        Ch_index           //!< Clusterhead Index
-);
-
-/*!
-\brief MR loss indication
- */
-void rrc_MR_loss_ind(
-  Instance_t          inst             , //!< Identification de l'instance
-  L2_ID               L2_id              //!< Layer 2 (MAC) ID
-);
-/*!
-\brief Release all resources for MR
- */
-void rrm_MR_release_all(
-  Instance_t          inst             , //!< Identification de l'instance
-  L2_ID               L2_id              //!< Layer 2 (MAC) ID
-);
-/*!
-\brief MR attachement indication. Sent by RRC to RRM to indicate the MAC ID of
-       a new MR attached to CH at layer 2
- */
-void rrc_MR_attach_ind(
-  Instance_t         inst              , //!< Identification de l'instance
-  L2_ID              L2_id               //!< Layer 2 (MAC) ID
-);
-/*!
-\brief initialization CH request . Sent by RRM to RRC to create the default
-       Radio bearer : SRB0 and SRB1
- */
-
-void rrm_init_ch_req(
-  Instance_t         inst             , //!< Identification de l'instance
-  Transaction_t      Trans_id         , //!< Transaction ID
-  LCHAN_DESC        *Lchan_desc_srb0  , //!< Logical Channel Descriptor Array for SRB0
-  LCHAN_DESC        *Lchan_desc_srb1  , //!< Logical Channel Descriptor Array for SRB1
-  L2_ID             *L2_id              //!< Layer 2 (MAC) ID
-)  ;
-
-/*!
-\brief initialization MR request . Sent by RRCI to RRC to create the default
-       Radio bearer : SRB0 and SRB1
- */
-void rrci_init_mr_req(
-  Instance_t         inst             , //!< Identification de l'instance
-  Transaction_t      Trans_id         , //!< Transaction ID
-  LCHAN_DESC        *Lchan_desc_srb0  , //!< Logical Channel Descriptor Array for SRB0
-  LCHAN_DESC        *Lchan_desc_srb1  , //!< Logical Channel Descriptor Array for SRB1
-  unsigned char      CH_index         , //!< index to identify the CH
-  L2_ID             *L2_id              //!< Layer 2 (MAC) ID
-);
-
-/*!
-\brief sns and ip sensing measurement indication
- */
-void rrc_update_sens( //mod_lor_10_01_25: RRC function, but also IP function
-  Instance_t         inst             , //!< Identification de l'instance
-  L2_ID              L2_id            , //!< Layer 2 ID (MAC) of sensing node
-  unsigned int       NB_info          , //!< Number of channels info
-  Sens_ch_t          *Sense_meas      , //!< Sensing Information
-  double info_time                      //!< Info time
-);
-
-/*!
-\brief RRC starting sensing request
- */
-void rrc_init_scan_req(
-  Instance_t        inst            , //!< instance ID
-  L2_ID             L2_id           , //!< FC address
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq,
-  Transaction_t     Trans_id          //!< Transaction ID
-);
-
-
-/*!
-\brief RRC ending sensing confirmation
- */
-void rrc_end_scan_conf(
-  Instance_t        inst            , //!< instance ID
-  L2_ID             L2_id           ,
-  Transaction_t     Trans_id          //!< Transaction ID
-
-);
-
-/*!
-\brief RRC ending sensing request (sensors side)
- */
-void rrc_end_scan_req(
-  Instance_t        inst            , //!< instance ID
-  L2_ID             L2_id           ,
-  Transaction_t     Trans_id          //!< Transaction ID
-
-);
-
-/*!
-\brief RRC starting monitoring request
- */
-void rrc_init_mon_req(
-  Instance_t inst           , //!< identification de l'instance
-  L2_ID     L2_id           , //!< FC address
-  unsigned int  *ch_to_scan ,
-  unsigned int  NB_chan     ,
-  unsigned int  interv          , //!< sensing freq.
-  Transaction_t  Trans_id     //!< Transaction ID
-);
-
-
-/*!
-\brief update open frequencies -> correspondent message via IP
-*/
-unsigned int update_open_freq( //mod_lor_10_01_25: IP function; //mod_lor_10_05_18: return unsigned int instead of void
-  Instance_t inst,            //!< instance ID
-  L2_ID L2_id,                //!< L2_id of the FC/CH
-  unsigned int NB_chan,
-  unsigned int *occ_channels  , //!< vector on wich the selected frequencies will be saved //mod_lor_10_05_18
-  CHANNELS_DB_T *fr_channels,
-  Transaction_t Trans_id
-);
-
-/*!
-\brief ask for frequencies   -> correspondent message via IP
- */
-unsigned int open_freq_query( //mod_lor_10_01_25: IP function
-  Instance_t    inst,
-  L2_ID         L2_id           ,
-  QOS_CLASS_T   QoS             ,
-  Transaction_t Trans_id
-);
-
-/*!
-\brief update secondary network frequencies in use  -> correspondent message via IP
- */
-unsigned int update_SN_occ_freq( //mod_lor_10_01_25: IP function
-  Instance_t inst             , //!< instance ID
-  L2_ID L2_id                 , //!< Layer 2 (MAC) ID of BTS
-  unsigned int NB_chan        ,
-  unsigned int *occ_channels  ,
-  Transaction_t Trans_id        //!< Transaction ID
-);
-
-/*!
-\brief RRC cluster scan request from CH1 reported to RRM of CH2
- */
-void rrc_clust_scan_req(
-  Instance_t inst             , //!< instance ID
-  L2_ID L2_id                 , //!< Layer 2 (MAC) ID of CH2
-  float interv                ,
-  COOPERATION_T coop          ,
-  Transaction_t Trans_id
-);
-
-/*!
-\brief RRC starting monitoring request ordered from another CH
- */
-void rrc_clust_mon_req(
-  Instance_t inst           , //!< identification de l'instance
-  L2_ID     L2_id           , //!< CH1 address
-  unsigned int  *ch_to_scan ,
-  unsigned int  NB_chan     ,
-  float     interv          , //!< sensing freq.
-  Transaction_t  Trans_id     //!< Transaction ID
-);
-
-/*!
-\brief RRC reported confirmation about the connection
- */
-void rrc_init_conn_conf(
-  Instance_t    inst      , //!< identification de l'instance
-  L2_ID L2_id             ,
-  unsigned int Session_id ,
-  Transaction_t Trans_id
-);
-
-/*!
-\brief RRC reported confirmation from SU2 on the proposed channels
- */
-void rrc_freq_all_prop_conf(
-  Instance_t    inst              ,
-  L2_ID         L2_id             ,
-  unsigned int Session_id         ,
-  unsigned int NB_free_ch         ,
-  CHANNEL_T   *fr_channels        ,
-  Transaction_t Trans_id
-);
-
-/*!
-\brief RRC reported assignement from CH of a channel (SENDORA scenario 2 distr)
- */
-void rrc_rep_freq_ack(
-  Instance_t    inst              ,
-  L2_ID         L2_id_ch          ,
-  L2_ID         L2_id_source      ,
-  L2_ID         L2_id_dest        ,
-  unsigned int  Session_id        ,
-  CHANNEL_T     all_channel       ,
-  Transaction_t Trans_id
-);
-
-/*!
-\brief RRC init connection request from another SU (SENDORA scenario 2 distr)
- */
-void rrc_init_conn_req(
-  Instance_t    inst            ,
-  L2_ID         L2_id           ,
-  unsigned int Session_id       ,
-  QOS_CLASS_T QoS_class         ,
-  Transaction_t Trans_id
-);
-
-/*!
-\brief RRC reported proposed channels from SU1 in SU2
- */
-void rrc_freq_all_prop(
-  Instance_t    inst              ,
-  L2_ID         L2_id             ,
-  unsigned int Session_id         ,
-  unsigned int NB_free_ch         ,
-  CHANNEL_T   *fr_channels        ,
-  Transaction_t Trans_id
-);
-
-/*!
-\brief RRC reported proposed channels from SU1 in CH
- */
-void rrc_rep_freq_all(
-  Instance_t    inst              ,
-  L2_ID         L2_id_source      ,
-  L2_ID         L2_id_dest        ,
-  unsigned int  Session_id        ,
-  unsigned int  NB_prop_ch        ,
-  CHANNEL_T     *pr_channels      ,
-  Transaction_t Trans_id
-);
-
-/*!
-\brief  IP interface. Updating of the sensing measures -> correspondent message via IP
-*/
-unsigned int update_sens_results(
-  Instance_t inst         , //!< Identification de l'instance
-  L2_ID L2_id             , //!< Adresse L2 of the source of information
-  unsigned int NB_info    , //!< Number of channel info
-  Sens_ch_t *Sens_meas    , //!< Pointer to the sensing information
-  double info_time
-);
-
-/*!
-\brief  Sensing Unit interface. End sensing confirmation
-*/
-void sns_end_scan_conf(
-  Instance_t inst          //!< Identification de l'instance
-);
-
-//mod_lor_10_05_10++
-/*!
-\brief  Updating sensing information received from collaborative Cluster
-*/
-void up_coll_sens_results( //AAA: to add weights for the collaborative cluster information
-  Instance_t inst         , //!< Identification de l'instance
-  L2_ID L2_id             , //!< Adresse L2 of the source of information
-  unsigned int NB_info    , //!< Number of channel info
-  Sens_ch_t *Sens_meas    , //!< Pointer to the sensing information
-  double info_time
-);//mod_lor_10_05_10--
-
-/*!
-\brief  Received request of frequencies from secondary user -> attribute available channels
-*/
-unsigned int ask_freq_to_CH(
-  Instance_t    inst                   , //!< identification de l'instance
-  L2_ID         L2_id[NB_SENS_MAX]     , //!< L2_id of the SU
-  L2_ID         L2_id_dest[NB_SENS_MAX], //!< L2_id of the SU dest
-  unsigned int  N_users                , //!< quality of service required (i.e. number of channels required)
-  Transaction_t Trans_id                 //!< Transaction ID
-);
-
-
-/*! @} */
-
diff --git a/openair3/MESH/RRM/DOC/Doxyfile_rrm b/openair3/MESH/RRM/DOC/Doxyfile_rrm
deleted file mode 100755
index 85eedb8b5c..0000000000
--- a/openair3/MESH/RRM/DOC/Doxyfile_rrm
+++ /dev/null
@@ -1,305 +0,0 @@
-# Doxyfile 1.4.6
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = "Radio Resource Managment (RRM)"
-PROJECT_NUMBER         = 0.0.1
-OUTPUT_DIRECTORY       = /home/burlot/rrm_nl/doc/rrm/
-CREATE_SUBDIRS         = NO
-OUTPUT_LANGUAGE        = English
-USE_WINDOWS_ENCODING   = NO
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = "The $name class" \
-                         "The $name widget" \
-                         "The $name file" \
-                         is \
-                         provides \
-                         specifies \
-                         contains \
-                         represents \
-                         a \
-                         an \
-                         the
-ALWAYS_DETAILED_SEC    = NO
-INLINE_INHERITED_MEMB  = NO
-FULL_PATH_NAMES        = YES
-STRIP_FROM_PATH        = /home/burlot/rrm_nl/
-STRIP_FROM_INC_PATH    = 
-SHORT_NAMES            = NO
-JAVADOC_AUTOBRIEF      = NO
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
-SEPARATE_MEMBER_PAGES  = NO
-TAB_SIZE               = 4
-ALIASES                = 
-OPTIMIZE_OUTPUT_FOR_C  = YES
-OPTIMIZE_OUTPUT_JAVA   = NO
-BUILTIN_STL_SUPPORT    = NO
-DISTRIBUTE_GROUP_DOC   = NO
-SUBGROUPING            = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL            = NO
-EXTRACT_PRIVATE        = NO
-EXTRACT_STATIC         = NO
-EXTRACT_LOCAL_CLASSES  = YES
-EXTRACT_LOCAL_METHODS  = NO
-HIDE_UNDOC_MEMBERS     = YES
-HIDE_UNDOC_CLASSES     = YES
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-INTERNAL_DOCS          = NO
-CASE_SENSE_NAMES       = YES
-HIDE_SCOPE_NAMES       = NO
-SHOW_INCLUDE_FILES     = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = YES
-SORT_BRIEF_DOCS        = NO
-SORT_BY_SCOPE_NAME     = NO
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 30
-SHOW_USED_FILES        = YES
-SHOW_DIRECTORIES       = NO
-FILE_VERSION_FILTER    = 
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_IF_DOC_ERROR      = YES
-WARN_NO_PARAMDOC       = NO
-WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = /home/burlot/rrm_nl/ch_init.c \
-                         /home/burlot/rrm_nl/ch_init.h \
-                         /home/burlot/rrm_nl/cmm_msg.c \
-                         /home/burlot/rrm_nl/cmm_msg.h \
-                         /home/burlot/rrm_nl/debug.h \
-                         /home/burlot/rrm_nl/mr_attach.c \
-                         /home/burlot/rrm_nl/mr_attach.h \
-                         /home/burlot/rrm_nl/msg_mngt.c \
-                         /home/burlot/rrm_nl/msg_mngt.h \
-                         /home/burlot/rrm_nl/neighbor_db.c \
-                         /home/burlot/rrm_nl/neighbor_db.h \
-                         /home/burlot/rrm_nl/pusu_msg.c \
-                         /home/burlot/rrm_nl/pusu_msg.h \
-                         /home/burlot/rrm_nl/rb_db.c \
-                         /home/burlot/rrm_nl/rb_db.h \
-                         /home/burlot/rrm_nl/rb_mngt.c \
-                         /home/burlot/rrm_nl/rb_mngt.h \
-                         /home/burlot/rrm_nl/rrc_msg.c \
-                         /home/burlot/rrm_nl/rrc_msg.h \
-                         /home/burlot/rrm_nl/rrm.c \
-                         /home/burlot/rrm_nl/rrm_constant.c \
-                         /home/burlot/rrm_nl/rrm_constant.h \
-                         /home/burlot/rrm_nl/rrm.h \
-                         /home/burlot/rrm_nl/rrm_sock.c \
-                         /home/burlot/rrm_nl/rrm_sock.h \
-                         /home/burlot/rrm_nl/rrm_util.c \
-                         /home/burlot/rrm_nl/rrm_util.h \
-                         /home/burlot/rrm_nl/interface/cmm_ral_interface.h \
-                         /home/burlot/rrm_nl/interface/cmm_rrm_interface.h \
-                         /home/burlot/rrm_nl/interface/L3_rrc_defs.h \
-                         /home/burlot/rrm_nl/interface/L3_rrc_interface.h \
-                         /home/burlot/rrm_nl/transact.c \
-                         /home/burlot/rrm_nl/transact.h
-FILE_PATTERNS          = *.c \
-                         *.cc \
-                         *.cxx \
-                         *.cpp \
-                         *.c++ \
-                         *.d \
-                         *.java \
-                         *.ii \
-                         *.ixx \
-                         *.ipp \
-                         *.i++ \
-                         *.inl \
-                         *.h \
-                         *.hh \
-                         *.hxx \
-                         *.hpp \
-                         *.h++ \
-                         *.idl \
-                         *.odl \
-                         *.cs \
-                         *.php \
-                         *.php3 \
-                         *.inc \
-                         *.m \
-                         *.mm \
-                         *.dox \
-                         *.py \
-                         *.C \
-                         *.CC \
-                         *.C++ \
-                         *.II \
-                         *.I++ \
-                         *.H \
-                         *.HH \
-                         *.H++ \
-                         *.CS \
-                         *.PHP \
-                         *.PHP3 \
-                         *.M \
-                         *.MM \
-                         *.PY
-RECURSIVE              = NO
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = *
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = 
-INPUT_FILTER           = 
-FILTER_PATTERNS        = 
-FILTER_SOURCE_FILES    = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = YES
-INLINE_SOURCES         = YES
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = YES
-REFERENCES_RELATION    = YES
-USE_HTAGS              = NO
-VERBATIM_HEADERS       = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = html
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = NO
-TOC_EXPAND             = NO
-DISABLE_INDEX          = NO
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = NO
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-LATEX_HIDE_INDICES     = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
-XML_PROGRAMLISTING     = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = NO
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = NO
-HIDE_UNDOC_RELATIONS   = YES
-HAVE_DOT               = YES
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = YES
-GROUP_GRAPHS           = YES
-UML_LOOK               = NO
-TEMPLATE_RELATIONS     = NO
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = YES
-CALL_GRAPH             = YES
-GRAPHICAL_HIERARCHY    = YES
-DIRECTORY_GRAPH        = YES
-DOT_IMAGE_FORMAT       = png
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1024
-MAX_DOT_GRAPH_DEPTH    = 1000
-DOT_TRANSPARENT        = NO
-DOT_MULTI_TARGETS      = NO
-GENERATE_LEGEND        = YES
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
diff --git a/openair3/MESH/RRM/EMUL/.tmp_versions/kemul_nl.mod b/openair3/MESH/RRM/EMUL/.tmp_versions/kemul_nl.mod
deleted file mode 100755
index faa28584d6..0000000000
--- a/openair3/MESH/RRM/EMUL/.tmp_versions/kemul_nl.mod
+++ /dev/null
@@ -1,2 +0,0 @@
-/home/burlot/rrm/emul/kemul_nl.ko
-/home/burlot/rrm/emul/kemul_nl.o
diff --git a/openair3/MESH/RRM/EMUL/Makefile b/openair3/MESH/RRM/EMUL/Makefile
deleted file mode 100755
index 65c2494e26..0000000000
--- a/openair3/MESH/RRM/EMUL/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-obj-m 		+= kemul_nl.o
-
-all:
-	make -C .. 	
-
-modules:
-	@echo "**** module $(obj-m) ******"
-	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
-	
-cleank:
-	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
diff --git a/openair3/MESH/RRM/EMUL/actdiff.c b/openair3/MESH/RRM/EMUL/actdiff.c
deleted file mode 100755
index 54b63f4a0f..0000000000
--- a/openair3/MESH/RRM/EMUL/actdiff.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       actdiff.c
-
-\brief      Gestion des actions differees d'envoi de messages sur les sockets
-            ( emulation du traitement par un retard )
-
-
-\author     BURLOT Pascal
-
-\date       13/08/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <time.h>
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "rrm_util.h"
-#include "rrm_sock.h"
-#include "actdiff.h"
-
-#define DBG_ACTDIFF 0
-
-#if DBG_ACTDIFF==0
-#define PRINT_ACTDIFF(...)
-#else
-#define PRINT_ACTDIFF(...) print_actdiff( __VA_ARGS__ )
-#endif
-
-
-/******************************************************************************
- * \brief   La fonction affiche a l'ecran la liste
- *
- * \return  aucune valeur retournee
- */
-static void print_actdiff( actdiff_t *pEntry )
-{
-  actdiff_t *pCurrentItem = pEntry;
-
-  fprintf(stderr,"actdiff_t=[\n");
-
-  while ( pCurrentItem != NULL) {
-    fprintf(stderr,"  @%p(.tv=%lf, .id=%d,  .sock=%p,  .msg=%p, .next=%p)\n",
-            pCurrentItem, pCurrentItem->tv, pCurrentItem->id, pCurrentItem->sock,
-            pCurrentItem->msg, pCurrentItem->next);
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  fprintf(stderr," ]\n");
-
-}
-
-/******************************************************************************
- * \brief   La fonction ajoute un element en fin de la liste des actions differees
- *          non-cloturees.
- *
- * \return  retourne le pointeur de debut de liste.
- */
-actdiff_t *add_actdiff(
-  actdiff_t **pEntry ,
-  double delai,
-  int   id,
-  sock_rrm_t   *sock,
-  msg_t  *msg
-)
-{
-  actdiff_t *pNewItem = RRM_MALLOC(actdiff_t , 1 ) ;
-
-  PNULL(pNewItem) ;
-
-  if ( pNewItem == NULL )
-    return NULL ;
-
-  pNewItem->id        =  id                   ;
-  pNewItem->msg       =  msg                  ;
-  pNewItem->sock      =  sock                 ;
-
-  pNewItem->tv        =  get_currentclock() + delai ;
-  pNewItem->next      =  NULL         ;
-
-  if ( *pEntry == NULL ) {
-    *pEntry             =  pNewItem             ;
-  } else {
-    actdiff_t *pCurrentItem = *pEntry;
-    actdiff_t *pNextItem    ;
-
-    while ( pCurrentItem != NULL ) {
-      pNextItem =  pCurrentItem->next ;
-
-      if ( pNextItem == NULL ) {
-        pCurrentItem->next = pNewItem ;
-        break ;
-      }
-
-      pCurrentItem = pNextItem ;
-    }
-  }
-
-  PRINT_ACTDIFF(*pEntry) ;
-
-  return pNewItem ;
-}
-
-/******************************************************************************
- * \brief   La fonction detruit l'action no Id de la liste .
- *
- * \return  aucune valeur.
- */
-void del_actdiff( actdiff_t **pEntry , int   id )
-{
-  actdiff_t *pCurrentItem = *pEntry;
-  actdiff_t *pNextItem    ;
-  actdiff_t **ppPrevItem  = pEntry ;
-
-  if ( (pCurrentItem == NULL)  || (pEntry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-
-    if ( pCurrentItem->id == id ) {
-      *ppPrevItem = pNextItem;
-
-      RRM_FREE( pCurrentItem ) ;
-      break ;
-    }
-
-    ppPrevItem   = &(pCurrentItem->next) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  PRINT_ACTDIFF(*pEntry) ;
-}
-
-
-/******************************************************************************
- * \brief   La fonction traite les actions arrivees a echeance.
- *
- * \return  aucune valeur.
- */
-void processing_actdiff( actdiff_t **pEntry )
-{
-  double tv_current ;
-
-  actdiff_t *pCurrentItem = *pEntry;
-  actdiff_t *pNextItem    ;
-
-  if ( (pCurrentItem == NULL)  || (pEntry==NULL))
-    return ;
-
-  tv_current  =  get_currentclock() ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-
-    if ( pCurrentItem->tv <= tv_current ) {
-      send_msg( pCurrentItem->sock, pCurrentItem->msg ) ;
-      //fprintf(stderr,"act diff: %lf \n", tv_current);
-      del_actdiff(pEntry,pCurrentItem->id) ;
-    }
-
-    pCurrentItem = pNextItem ;
-  }
-}
-
-
-
diff --git a/openair3/MESH/RRM/EMUL/actdiff.h b/openair3/MESH/RRM/EMUL/actdiff.h
deleted file mode 100755
index 9cd58c1bd5..0000000000
--- a/openair3/MESH/RRM/EMUL/actdiff.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       actdiff.h
-
-\brief      Fichier d'entête
-
-            Il contient les declarations de type, des defines relatif aux
-            fonctions à la gestion des actions differees.
-
-\author     BURLOT Pascal
-
-\date       13/08/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-
-#ifndef ACTDIFF_H
-#define ACTDIFF_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-///< \brief action differee ( a traiter ulterieurement )
-typedef struct actdiff_s {
-  double            tv   ; ///< date du traitement
-  int               id   ; ///< ID de l'action differee
-  sock_rrm_t       *sock ; ///< socket associe
-  msg_t            *msg  ; ///< message a envoyer
-  struct actdiff_s *next ; ///< pointeur sur la prochaine action differee
-} actdiff_t ;
-
-actdiff_t *add_actdiff(
-  actdiff_t **pEntry ,
-  double delai,
-  int   id,
-  sock_rrm_t *sock,
-  msg_t  *msg
-);
-
-void processing_actdiff( actdiff_t **pEntry ) ;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ACTDIFF_H */
diff --git a/openair3/MESH/RRM/EMUL/emul_interface.c b/openair3/MESH/RRM/EMUL/emul_interface.c
deleted file mode 100755
index bef08e8df8..0000000000
--- a/openair3/MESH/RRM/EMUL/emul_interface.c
+++ /dev/null
@@ -1,1124 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       emul_interface.c
-
-\brief      Emulation des interfaces du RRM (Radio Ressource Manager )
-
-            Cette application d'envoyer des stimuli sur les interfaces RRM:
-                - RRC -> RRM
-                - CMM -> RRM
-
-\author     BURLOT Pascal
-
-\date       10/07/08
-
-
-\par     Historique:
-            L.IACOBELLI 2009-10-19
-                + new messages
-            L.IACOBELLI 2010-04-15
-                + add sensing unit emulation
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-#include <time.h>
-
-#include "debug.h"
-
-#include "L3_rrc_defs.h"
-#include "cmm_rrm_interface.h"
-
-#include "rrm_sock.h"
-#include "cmm_msg.h"
-#include "rrc_rrm_msg.h"
-#include "ip_msg.h" //mod_lor_10_04_27
-#include "pusu_msg.h"
-#include "sensing_rrm_msg.h"
-
-#include "transact.h"
-#include "actdiff.h"
-#include "rrm_util.h"
-#include "rrm_constant.h"
-
-#define NUM_SCENARIO  14
-#define SENSORS_NB 3 //mod_lor_10_03_03
-#define PUSU_EMUL
-/*#define BTS_ID 1
-#define FC_ID 0
-#define CH_COLL_ID 0*/
-
-
-#ifdef RRC_EMUL
-
-extern msg_t *msg_rrc_rb_meas_ind(Instance_t inst, RB_ID Rb_id, L2_ID L2_id, MEAS_MODE Meas_mode, MAC_RLC_MEAS_T *Mac_rlc_meas_t, Transaction_t Trans_id );
-extern msg_t *msg_rrc_sensing_meas_ind( Instance_t inst, L2_ID L2_id, unsigned int NB_meas, SENSING_MEAS_T *Sensing_meas, Transaction_t Trans_id );
-extern msg_t *msg_rrc_sensing_meas_resp( Instance_t inst, Transaction_t Trans_id )  ;
-extern msg_t *msg_rrc_cx_establish_ind( Instance_t inst, L2_ID L2_id, Transaction_t Trans_id,unsigned char *L3_info, L3_INFO_T L3_info_t,
-                                        RB_ID DTCH_B_id, RB_ID DTCH_id );
-extern msg_t *msg_rrc_phy_synch_to_MR_ind( Instance_t inst, L2_ID L2_id);
-extern msg_t *msg_rrc_phy_synch_to_CH_ind( Instance_t inst, unsigned int Ch_index,L2_ID L2_id );
-extern msg_t *msg_rrc_rb_establish_resp( Instance_t inst, Transaction_t Trans_id  );
-extern msg_t *msg_rrc_rb_establish_cfm( Instance_t inst, RB_ID Rb_id, RB_TYPE RB_type, Transaction_t Trans_id );
-extern msg_t *msg_rrc_rb_modify_resp( Instance_t inst, Transaction_t Trans_id );
-extern msg_t *msg_rrc_rb_modify_cfm(Instance_t inst, RB_ID Rb_id, Transaction_t Trans_id  );
-extern msg_t *msg_rrc_rb_release_resp( Instance_t inst, Transaction_t Trans_id );
-extern msg_t *msg_rrc_MR_attach_ind( Instance_t inst, L2_ID L2_id );
-extern msg_t *msg_rrc_update_sens( Instance_t inst,  /*double info_time,*/ L2_ID L2_id, unsigned int NB_info, Sens_ch_t *Sens_meas, Transaction_t Trans_id);
-#endif
-
-#ifdef SNS_EMUL
-extern msg_t *msg_sensing_end_scan_conf ( Instance_t inst);
-#endif
-
-typedef struct {
-  L2_ID               L2_id               ; ///< identification de niveau L2
-  L3_INFO_T           L3_info_t           ; ///< type de l'identification de niveau L3
-  unsigned char       L3_info[MAX_L3_INFO]; ///< identification de niveau L3
-} node_info_t ;
-
-static char c; //mod_lor_10_04_27
-
-/*node_info_t node_info[10] = {
- { .L2_id={{0x00,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv6_ADDR, .L3_info={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11} },
- { .L2_id={{0x01,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv6_ADDR, .L3_info={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11} },
- { .L2_id={{0x02,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv6_ADDR, .L3_info={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11} },
- { .L2_id={{0x03,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv6_ADDR, .L3_info={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11} },
- { .L2_id={{0x04,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv6_ADDR, .L3_info={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11} },
- { .L2_id={{0x05,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv6_ADDR, .L3_info={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11} },
- { .L2_id={{0x06,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv6_ADDR, .L3_info={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11} },
- { .L2_id={{0x07,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv6_ADDR, .L3_info={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11} },
- { .L2_id={{0x08,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv6_ADDR, .L3_info={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11} },
- { .L2_id={{0x09,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv6_ADDR, .L3_info={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11} }
-} ;*/
-//mod_lor_10_01_25++
-node_info_t node_info[10] = {
-  { .L2_id={{0x00,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv4_ADDR, .L3_info={0xC0,0xA8,0x0C,0x43} },
-  { .L2_id={{0x01,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv4_ADDR, .L3_info={0xC0,0xA8,0x0C,0x14} },
-  { .L2_id={{0x02,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv4_ADDR, .L3_info={0x0A,0x00,0x03,0x03} },
-  { .L2_id={{0x03,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv4_ADDR, .L3_info={0x0A,0x00,0x04,0x04} },
-  { .L2_id={{0x04,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv4_ADDR, .L3_info={0x0A,0x00,0x05,0x05} },
-  { .L2_id={{0x05,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv4_ADDR, .L3_info={0x0A,0x00,0x06,0x06} },
-  { .L2_id={{0x06,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv4_ADDR, .L3_info={0x0A,0x00,0x07,0x07} },
-  { .L2_id={{0x07,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv4_ADDR, .L3_info={0x0A,0x00,0x08,0x08} },
-  { .L2_id={{0x08,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv4_ADDR, .L3_info={0x0A,0x00,0x09,0x09} },
-  { .L2_id={{0x09,0x00,0xAA,0xCC,0x33,0x55,0x00,0x11}}, .L3_info_t=IPv4_ADDR, .L3_info={0x0A,0x00,0x10,0x10} }
-} ;
-//mod_lor_10_01_25--*/
-/*****************************************************************************
- * \brief  Sensing Parameters
- */
-unsigned int     Start_fr   = 2420000; //!< Low frequency limit KHz
-unsigned int     Stop_fr    = 2438000; //!< High frequency limit KHz
-unsigned int     Meas_band  =   9000;  //!< Channel bandwidth KHz
-unsigned int     Meas_tpf   = 2;    //!< Misuration time per frequency
-unsigned int     Overlap    = 5;    //!< Overlap
-unsigned int     Sampl_freq = 10;   //!< Sample frequency
-
-
-//void print_pusu_msg( neighbor_entry_RRM_to_CMM_t *pEntry );
-
-static int flag_not_exit = 1 ;
-int attached_sensors = 0;//mod_lor_10_01_25
-
-static pthread_t        pthread_rrc_hnd,
-       pthread_sns_hnd,
-       pthread_cmm_hnd ,
-       pthread_pusu_hnd , // Publish Subscribe : -> routing CH
-       pthread_action_differe_hnd;
-
-pthread_mutex_t         cmm_transact_exclu,
-                        rrc_transact_exclu,
-                        sns_transact_exclu;
-
-unsigned int            cmm_transaction=512,
-                        rrc_transaction=256,
-                        sns_transaction=128 ;
-
-transact_t              *cmm_transact_list=NULL,
-                         *rrc_transact_list=NULL,
-                          *sns_transact_list=NULL ;
-
-static RB_ID rb_id      =4 ;
-
-pthread_mutex_t actdiff_exclu;
-actdiff_t       *list_actdiff   = NULL ;
-unsigned int    cnt_actdiff     = 512;
-
-
-extern void scenario(  int num , sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm, sock_rrm_t *s_sns) ;
-
-/*****************************************************************************
- * \brief  thread d'emulation de l'interface du Publish/subcribe (routingCH).
- * \return NULL
- */
-#ifdef PUSU_EMUL
-static void *fn_pusu (
-  void * p_data /**< parametre du pthread */
-)
-{
-  sock_rrm_t *s = (sock_rrm_t *) p_data ;
-  msg_head_t  *header ;
-
-#ifdef TRACE
-  FILE *fd = fopen( "VCD/rrm2pusu.txt", "w") ;
-  PNULL(fd) ;
-#endif
-
-  fprintf(stderr,"PUSU interfaces :starting ...\n");
-
-  while (flag_not_exit) {
-    header = (msg_head_t *) recv_msg(s) ;
-
-    if (header == NULL ) {
-      fprintf(stderr,"Server closed connection\n");
-      //flag_not_exit = 0; //mod_lor_10_04_27
-    } else {
-      char *msg = NULL ;
-
-      if ( header->size > 0 ) {
-        msg = (char *) (header +1) ;
-      }
-
-#ifdef TRACE
-
-      if ( header->msg_type < NB_MSG_RRM_PUSU )
-        fprintf(fd,"%lf RRM->PUSU %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_pusu_rrm[header->msg_type],header->msg_type,header->Trans_id);
-      else
-        fprintf(fd,"%lf RRM->PUSU %-30s %d %d\n",get_currentclock(), "inconnu", header->msg_type,header->Trans_id);
-
-      fflush(fd);
-#endif
-
-      switch ( header->msg_type ) {
-      case RRM_PUBLISH_IND: {
-        //               msg_fct( "[RRM]>[PUSU]:%d:RRM_PUBLISH_IND\n",header->inst);
-        send_msg( s, msg_pusu_resp( header->inst, PUSU_PUBLISH_RESP, header->Trans_id )) ;
-      }
-      break ;
-
-      case RRM_UNPUBLISH_IND: {
-        //                 msg_fct( "[RRM]>[PUSU]:%d:RRM_UNPUBLISH_IND\n",header->inst);
-        send_msg( s, msg_pusu_resp( header->inst, PUSU_UNPUBLISH_RESP, header->Trans_id )) ;
-      }
-      break ;
-
-      case RRM_LINK_INFO_IND: {
-        msg_fct( "[RRM]>[PUSU]:%d:RRM_LINK_INFO_IND\n",header->inst);
-        send_msg( s, msg_pusu_resp( header->inst, PUSU_LINK_INFO_RESP, header->Trans_id )) ;
-      }
-      break ;
-
-      case RRM_SENSING_INFO_IND: {
-        //            msg_fct( "[RRM]>[PUSU]:%d:RRM_SENSING_INFO_IND\n",header->inst);
-        send_msg( s, msg_pusu_resp( header->inst, PUSU_SENSING_INFO_RESP, header->Trans_id )) ;
-      }
-      break ;
-
-      case RRM_CH_LOAD_IND: {
-        //           msg_fct( "[RRM]>[PUSU]:%d:RRM_CH_LOAD_IND\n",header->inst);
-        send_msg( s, msg_pusu_resp( header->inst, PUSU_CH_LOAD_RESP, header->Trans_id )) ;
-      }
-      break ;
-
-      default:
-        fprintf(stderr, "[RRM]>[PUSU]: msg unknown %d\n", header->msg_type) ;
-        //printHex(msg,n,1);
-      }
-
-      RRM_FREE(header);
-    }
-  }
-
-  fprintf(stderr,"... stopped PUSU interfaces\n");
-#ifdef TRACE
-  fclose(fd) ;
-#endif
-
-  return NULL;
-}
-#endif /* PUSU_EMUL */
-
-#ifdef RRC_EMUL
-
-/*****************************************************************************
- * \brief  thread d'emulation de l'interface du rrc.
- * \return NULL
- */
-static void * fn_rrc (
-  void * p_data /**< parametre du pthread */
-)
-{
-  sock_rrm_t *s = (sock_rrm_t *) p_data ;
-  msg_head_t *header ;
-
-#ifdef TRACE
-  FILE *fd = fopen( "VCD/rrm2rrc.txt", "w") ;
-  PNULL(fd) ;
-#endif
-
-  fprintf(stderr,"RRC interfaces :starting ...\n");
-  fprintf(stderr,"prova\n"); //dbg
-
-  while (flag_not_exit) {
-    header = (msg_head_t *) recv_msg(s) ;
-
-    if (header == NULL ) {
-      fprintf(stderr,"Server closed connection\n");
-      //flag_not_exit = 0;//mod_lor_10_04_27
-    } else {
-      char *msg = NULL ;
-
-      if ( header->size > 0 ) {
-        msg = (char *) (header +1) ;
-      }
-
-#ifdef TRACE
-
-      if ( header->msg_type < NB_MSG_RRC_RRM )
-        fprintf(fd,"%lf RRM->RRC %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_rrc_rrm[header->msg_type],header->msg_type,header->Trans_id);
-      else
-        fprintf(fd,"%lf RRM->RRC %-30s %d %d\n",get_currentclock(), "inconnu", header->msg_type,header->Trans_id);
-
-      fflush(fd);
-#endif
-
-      switch ( header->msg_type ) {
-      case RRM_RB_ESTABLISH_REQ: {
-        //rrm_rb_establish_req_t *p = (rrm_rb_establish_req_t *) msg ;
-        msg_fct( "[RRM]>[RRC]:%d:RRM_RB_ESTABLISH_REQ\n",header->inst);
-
-        send_msg( s, msg_rrc_rb_establish_resp( header->inst, header->Trans_id )) ;
-
-        pthread_mutex_lock( &actdiff_exclu  ) ;
-        add_actdiff(&list_actdiff,0.05, cnt_actdiff++,  s,
-                    msg_rrc_rb_establish_cfm( header->inst, rb_id++, UNICAST,header->Trans_id) ) ;
-
-        pthread_mutex_unlock( &actdiff_exclu ) ;
-      }
-      break ;
-
-      case RRM_RB_MODIFY_REQ: {
-        rrm_rb_modify_req_t *p = (rrm_rb_modify_req_t *) msg ;
-        msg_fct( "[RRM]>[RRC]:%d:RRM_RB_MODIFY_REQ\n",header->inst);
-
-        send_msg( s, msg_rrc_rb_modify_resp( header->inst,header->Trans_id )) ;
-
-        pthread_mutex_lock( &actdiff_exclu  ) ;
-
-        add_actdiff(&list_actdiff,0.05, cnt_actdiff++,  s,
-                    msg_rrc_rb_modify_cfm( header->inst, p->Rb_id, header->Trans_id) ) ;
-
-        pthread_mutex_unlock( &actdiff_exclu ) ;
-
-      }
-      break ;
-
-      case RRM_RB_RELEASE_REQ: {
-        //rrm_rb_release_req_t *p = (rrm_rb_release_req_t *) msg ;
-        msg_fct( "[RRM]>[RRC]:%d:RRM_RB_RELEASE_REQ\n",header->inst);
-
-        send_msg( s, msg_rrc_rb_release_resp( header->inst,header->Trans_id )) ;
-      }
-      break ;
-
-      case RRM_SENSING_MEAS_REQ: {
-        //rrm_sensing_meas_req_t *p = (rrm_sensing_meas_req_t *) msg ;
-        msg_fct( "[RRM]>[RRC]:%d:RRM_SENSING_MEAS_REQ\n",header->inst);
-
-        send_msg( s, msg_rrc_sensing_meas_resp( header->inst, header->Trans_id ) );
-      }
-      break ;
-
-      case RRCI_CX_ESTABLISH_RESP: {
-        rrci_cx_establish_resp_t *p = (rrci_cx_establish_resp_t *) msg ;
-        msg_fct( "[RRCI]>[RRC]:%d:RRCI_CX_ESTABLISH_RESP\n",header->inst);
-
-        fprintf(stderr,"L3_id: ");
-        print_L3_id(p->L3_info_t, p->L3_info );
-        fprintf(stderr,"\n");
-
-      }
-      break ;
-
-      case RRM_SENSING_MEAS_RESP: {
-        msg_fct( "[RRM]>[RRC]:%d:RRM_SENSING_MEAS_RESP\n",header->inst);
-      }
-      break ;
-
-      case RRM_RB_MEAS_RESP: {
-        msg_fct( "[RRM]>[RRC]:%d:RRM_RB_MEAS_RESP\n",header->inst);
-      }
-      break ;
-
-      case RRM_INIT_CH_REQ: {
-        msg_fct( "[RRM]>[RRC]:%d:RRM_INIT_CH_REQ\n",header->inst);
-      }
-      break ;
-
-      case RRCI_INIT_MR_REQ: {
-        msg_fct( "[RRM]>[RRC]:%d:RRM_INIT_MR_REQ\n",header->inst);
-      }
-      break ;
-
-      case RRM_INIT_MON_REQ: {
-        rrm_init_mon_req_t *p = (rrm_init_mon_req_t *) msg ;
-        msg_fct( "[RRM]>[RRC]:%d:RRM_INIT_MON_REQ on channels: ",header->inst);
-        fprintf(stdout,"chan nb: %d\n", p->NB_chan); //dbg
-
-        for ( int i=0; i<p->NB_chan; i++)
-          msg_fct("%d ", p->ch_to_scan[i]);
-
-        msg_fct( "\n");
-
-      }
-      break ;
-
-      case RRM_INIT_SCAN_REQ: {
-        msg_fct( "[RRM]>[RRC]:%d:RRM_INIT_SCAN_REQ\n",header->inst);
-
-      }
-      break ;
-
-      case RRM_END_SCAN_REQ: {
-        rrm_end_scan_req_t *p = (rrm_end_scan_req_t *) msg ;
-        msg_fct( "[RRM]>[RRC]:%d:RRM_END_SCAN_REQ on sensor",header->inst);
-
-        for ( int i=0; i<8; i++)
-          msg_fct("%02X", p->L2_id.L2_id[i]);
-
-        msg_fct( "\n");
-
-
-      }
-      break ;
-
-      case RRM_END_SCAN_ORD: {
-        msg_fct( "[RRM]>[RRC]:%d:RRM_END_SCAN_ORD\n",header->inst);
-
-      }
-      break ;
-
-      case RRM_UP_FREQ_ASS : {
-        msg_fct( "[RRM]>[RRC]:%d:RRM_UP_FREQ_ASS\n",header->inst);
-      }
-      break ;
-
-      default :
-        fprintf(stderr, "RRC: msg unknown %d\n", header->msg_type) ;
-        //printHex(msg,n,1);
-      }
-
-      RRM_FREE(header);
-    }
-
-  }
-
-  fprintf(stderr,"... stopped RRC interfaces\n");
-
-#ifdef TRACE
-  fclose(fd) ;
-#endif
-
-  return NULL;
-}
-
-#endif /* RRC_EMUL */
-
-/*****************************************************************************
- * \brief  thread d'emulation de l'interface du cmm.
- * \return NULL
- */
-static void * fn_cmm (
-  void * p_data /**< parametre du pthread */
-)
-{
-  sock_rrm_t *s = (sock_rrm_t *) p_data ;
-  msg_head_t *header ;
-
-#ifdef TRACE
-  FILE *fd = fopen( "VCD/rrm2cmm.txt", "w") ;
-  PNULL(fd) ;
-#endif
-
-  fprintf(stderr,"CMM interfaces :starting ...\n");
-
-  while (flag_not_exit) {
-    header = (msg_head_t *) recv_msg(s) ;
-
-    if (header == NULL ) {
-      fprintf(stderr,"Server closed connection\n");
-      //flag_not_exit = 0;//mod_lor_10_04_27
-    } else {
-      char *msg = NULL ;
-
-      if ( header->size > 0 ) {
-        msg = (char *) (header +1) ;
-      }
-
-#ifdef TRACE
-
-      if ( header->msg_type < NB_MSG_CMM_RRM )
-        fprintf(fd,"%lf RRM->CMM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_cmm_rrm[header->msg_type],header->msg_type,header->Trans_id);
-      else
-        fprintf(fd,"%lf RRM->CMM %-30s %d %d\n",get_currentclock(),"inconnu",header->msg_type,header->Trans_id);
-
-      fflush(fd);
-#endif
-
-      switch ( header->msg_type ) {
-      case RRM_CX_SETUP_CNF : {
-        // rrm_cx_setup_cnf_t *p = (rrm_cx_setup_cnf_t *) msg ;
-        //             msg_fct( "[RRM]>[CMM]:%d:RRM_CX_SETUP_CNF\n",header->inst);
-
-        pthread_mutex_lock( &cmm_transact_exclu ) ;
-        del_item_transact( &cmm_transact_list, header->Trans_id );
-        pthread_mutex_unlock( &cmm_transact_exclu ) ;
-      }
-      break ;
-
-      case RRM_CX_MODIFY_CNF : {
-        //rrm_cx_modify_cnf_t *p = (rrm_cx_modify_cnf_t *) msg ;
-        //          msg_fct( "[RRM]>[CMM]:%d:RRM_CX_MODIFY_CNF\n",header->inst);
-      }
-      break ;
-
-      case RRM_CX_RELEASE_CNF : {
-        //rrm_cx_release_cnf_t *p = (rrm_cx_release_cnf_t *) msg ;
-        //          msg_fct( "[RRM]>[CMM]:%d:RRM_CX_RELEASE_CNF\n",header->inst);
-      }
-      break ;
-
-      case RRM_CX_RELEASE_ALL_CNF : {
-        //rrm_cx_release_all_cnf_t *p = (rrm_cx_release_all_cnf_t *) msg ;
-        //         msg_fct( "[RRM]>[CMM]:%d:RRM_CX_RELEASE_ALL_CNF\n",header->inst);
-      }
-      break ;
-
-      case RRCI_ATTACH_REQ : {
-#ifndef PHY_EMUL
-        float delai = 0.05 ;
-#else
-        float delai = 0.00 ;
-#endif
-        rrci_attach_req_t *p = (rrci_attach_req_t *) msg ;
-
-        //         msg_fct( "[RRM]>[CMM]:%d:RRCI_ATTACH_REQ \n",header->inst);
-        //MSG_L2ID(p->L2_id);
-        //add_lor_11_01_07++
-        if (SCEN_2_CENTR)
-          sleep(2);
-
-        //add_lor_11_01_07--
-        pthread_mutex_lock( &actdiff_exclu  ) ;
-
-
-        add_actdiff(&list_actdiff,delai, cnt_actdiff++, s,
-                    msg_cmm_attach_cnf(header->inst,p->L2_id,node_info[header->inst].L3_info_t,node_info[header->inst].L3_info,header->Trans_id ) ) ;
-
-        pthread_mutex_unlock( &actdiff_exclu ) ;
-      }
-      break ;
-
-      case RRM_ATTACH_IND : {
-        //mod_lor: 10_02_09++
-        if (WSN && header->inst == 0) //inst_to_change: remove header->inst == 0 in case WSN and SN not on the same machine
-          attached_sensors ++;//mod_lor: 10_01_25
-
-        //msg_fct( "attached_sensors %d \n\n",attached_sensors); //dbg
-#ifndef PHY_EMUL
-        float delai = 0.05 ;
-#else
-        float delai = 0.00 ;
-#endif
-        //         msg_fct( "[RRM]>[CMM]:%d:RRM_ATTACH_IND\n",header->inst);
-
-        /*   //mod_lor_10_04_27++
-        //if (WSN && attached_sensors==SENSORS_NB && header->inst == 0){ //AAA inst_to_change: remove header->inst == 0 in case WSN and SN not on the same machine
-           //mod_lor_10_03_12++
-           unsigned int     Start_fr   = 1000;
-           unsigned int     Stop_fr    = 2000;
-           unsigned int     Meas_band  = 200;
-           unsigned int     Meas_tpf   = 2;
-           unsigned int     Nb_channels= (Stop_fr-Start_fr)/Meas_band;
-           unsigned int     Overlap    = 5;
-           unsigned int     Sampl_freq = 10;
-
-
-           scanf("%c",&c); //mod_lor_10_04_27
-           if (c == 's'){//mod_lor_10_04_27
-
-               pthread_mutex_lock( &actdiff_exclu  ) ;
-               add_actdiff(&list_actdiff,5, cnt_actdiff++, s,
-                       msg_cmm_init_sensing(header->inst,Start_fr,Stop_fr,Meas_band,Meas_tpf,
-                       Nb_channels,Overlap, Sampl_freq) );
-
-               pthread_mutex_unlock( &actdiff_exclu ) ;  //mod_lor: 10_02_09--
-               scanf("%c",&c); //mod_lor_10_04_27
-           }
-
-           if (c == 'e'){//mod_lor_10_04_27
-               pthread_mutex_lock( &actdiff_exclu  ) ;
-               add_actdiff(&list_actdiff,5, cnt_actdiff++, s,
-                       msg_cmm_stop_sensing(0) );
-
-               pthread_mutex_unlock( &actdiff_exclu ) ;  //mod_lor: 10_02_09--
-           }
-
-        } //mod_lor_10_03_12++
-        //mod_lor_10_04_27--*/
-      }
-      break ;
-
-      case RRM_MR_ATTACH_IND : {
-        L2_ID L2_id_mr;
-#ifndef PHY_EMUL
-        float delai = 0.05 ;
-#else
-        float delai = 0.00 ;
-#endif
-        rrm_MR_attach_ind_t *p = (rrm_MR_attach_ind_t *) msg ;
-
-        //        msg_fct( "[RRM]>[CMM]:%d:RRM_MR_ATTACH_IND\n",header->inst);
-        memcpy( L2_id_mr.L2_id, p->L2_id.L2_id, sizeof(L2_ID));
-
-        //add_lor_11_01_07++
-        if (SCEN_2_CENTR)
-          sleep(2);
-
-        //add_lor_11_01_07--
-        pthread_mutex_lock( &actdiff_exclu  ) ;
-
-        cmm_transaction++;
-        add_actdiff(&list_actdiff,delai, cnt_actdiff++, s,
-                    msg_cmm_cx_setup_req(header->inst,node_info[header->inst].L2_id,L2_id_mr, QOS_DTCH_D, cmm_transaction ) ) ;
-
-        pthread_mutex_unlock( &actdiff_exclu ) ;
-
-        pthread_mutex_lock( &cmm_transact_exclu ) ;
-        add_item_transact( &cmm_transact_list, cmm_transaction, INT_CMM,CMM_CX_SETUP_REQ,0,NO_PARENT);
-        pthread_mutex_unlock( &cmm_transact_exclu ) ;
-      }
-      break ;
-
-      case ROUTER_IS_CH_IND : {
-#ifndef PHY_EMUL
-        float delai  = 0.05 ; //mod_lor_10_04_22: 5 instead of 0.05
-        float delai2 = 0.08 ;
-#else
-        float delai  = 0.00 ;
-        float delai2 = 0.00 ;
-#endif
-        router_is_CH_ind_t *p =(router_is_CH_ind_t *)msg ;
-        //         msg_fct( "[RRM]>[CMM]:%d:ROUTER_IS_CH_IND\n",header->inst);
-
-        memcpy( node_info[header->inst].L2_id.L2_id, p->L2_id.L2_id, sizeof(L2_ID));
-        //print_L2_id(&L2_id_ch ); printf("=>L2_id_ch\n");
-
-        pthread_mutex_lock( &actdiff_exclu  ) ;
-
-        add_actdiff(&list_actdiff,delai, cnt_actdiff++,  s,
-                    msg_cmm_init_ch_req( header->inst,node_info[header->inst].L3_info_t,node_info[header->inst].L3_info )) ;
-
-        cmm_transaction++;
-        add_actdiff(&list_actdiff,delai2, cnt_actdiff++, s,
-                    msg_cmm_cx_setup_req(header->inst,node_info[header->inst].L2_id,node_info[header->inst].L2_id, QOS_DTCH_B, cmm_transaction ) ) ;
-
-        pthread_mutex_unlock( &actdiff_exclu ) ;
-
-        pthread_mutex_lock( &cmm_transact_exclu ) ;
-        add_item_transact( &cmm_transact_list, cmm_transaction, INT_CMM, CMM_CX_SETUP_REQ,0,NO_PARENT);
-        pthread_mutex_unlock( &cmm_transact_exclu ) ;
-
-        /*//mod_lor_10_04_27++
-        if (header->inst==1){
-            //scanf("%c",&c); //mod_lor_10_04_27
-            //if (c == 'a'){//mod_lor_10_04_27
-                pthread_mutex_lock( &actdiff_exclu  ) ;
-                add_actdiff(&list_actdiff,20, cnt_actdiff++, s, msg_cmm_ask_freq(header->inst) );
-                pthread_mutex_unlock( &actdiff_exclu ) ;
-            //}
-        }//mod_lor_10_04_27--*/
-      }
-      break ;
-
-      case RRCI_CH_SYNCH_IND : {
-        //            msg_fct( "[RRM]>[CMM]:%d:RRCI_CH_SYNCH_IND\n",header->inst);
-      }
-      break ;
-
-      case RRM_MR_SYNCH_IND : {
-        //                msg_fct( "[RRM]>[CMM]:%d:RRM_MR_SYNCH_IND\n",header->inst);
-      }
-      break ;
-
-      case RRM_NO_SYNCH_IND: {
-        //                msg_fct( "[RRM]>[CMM]:%d:RRM_NO_SYNCH_IND\n",header->inst);
-      }
-      break ;
-
-      default :
-        fprintf(stderr, "CMM:unknown msg %d\n", header->msg_type) ;
-        //printHex(msg,n,1);
-      }
-
-      RRM_FREE(header);
-    }
-  }
-
-  fprintf(stderr,"... stopped CMM interfaces\n");
-
-#ifdef TRACE
-  fclose(fd) ;
-#endif
-
-  return NULL;
-}
-//mod_lor_10_04_15++ -> emulation sensing
-/*****************************************************************************
- * \brief  thread d'emulation de l'interface du Publish/subcribe (routingCH).
- * \return NULL
- */
-#ifdef SNS_EMUL
-static void *fn_sns (
-  void * p_data /**< parametre du pthread */
-)
-{
-  sock_rrm_t *s = (sock_rrm_t *) p_data ;
-  msg_head_t  *header ;
-
-#ifdef TRACE
-  FILE *fd = fopen( "VCD/rrm2sns.txt", "w") ;
-  PNULL(fd) ;
-#endif
-
-  fprintf(stderr,"SNS interfaces :starting ...\n");
-
-  while (flag_not_exit) {
-    header = (msg_head_t *) recv_msg(s) ;
-
-    if (header == NULL ) {
-      fprintf(stderr,"Server closed connection\n");
-      //flag_not_exit = 0; //mod_lor_10_04_27
-    } else {
-      char *msg = NULL ;
-
-      if ( header->size > 0 ) {
-        msg = (char *) (header +1) ;
-      }
-
-#ifdef TRACE
-
-      if ( header->msg_type < NB_MSG_SNS_RRM  )
-        fprintf(fd,"%lf RRM->SENSING %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_sns_rrm[header->msg_type],header->msg_type,header->Trans_id);
-      else
-        fprintf(fd,"%lf RRM->SENSING %-30s %d %d\n",get_currentclock(), "inconnu", header->msg_type,header->Trans_id);
-
-      fflush(fd);
-#endif
-
-      switch ( header->msg_type ) {
-      case RRM_SCAN_ORD: {
-        rrm_scan_ord_t *p  = (rrm_scan_ord_t *) msg ;
-        msg_fct( "[RRM]>[SENSING]:%d:RRM_SCAN_ORD\n",header->inst);
-
-        /*fprintf(stderr,"NB_chan = %d;\nMeas_tpf: %d;\nOverlap: %d;\nSampl_freq: %d;\n",p->NB_chan, p->Meas_tpf, p->Overlap,p->Sampl_freq);//dbg
-        fprintf(stderr,"Channels ids:   ");//dbg
-        for ( int i=0; i<p->NB_chan; i++)//dbg
-            fprintf(stderr," %d     ",p->ch_to_scan[i].Ch_id);//dbg
-        fprintf(stderr," \n\n");//dbg*/
-
-      }
-      break ;
-
-      case RRM_END_SCAN_ORD: {
-        msg_fct( "[RRM]>[SENSING]:%d:RRM_END_SCAN_ORD\n",header->inst);
-        send_msg( s, msg_sensing_end_scan_conf( header->inst)) ;
-
-      }
-      break ;
-
-
-      default:
-        fprintf(stderr, "[RRM]>[SENSING]: msg unknown %d\n", header->msg_type) ;
-        //printHex(msg,n,1);
-      }
-
-      RRM_FREE(header);
-    }
-  }
-
-  fprintf(stderr,"... stopped SENSING interfaces\n");
-#ifdef TRACE
-  fclose(fd) ;
-#endif
-
-  return NULL;
-}
-#endif /* SNS_EMUL */
-
-//mod_lor_10_04_15--
-
-/*****************************************************************************
- * \brief  thread d'emulation de l'interface du cmm.
- * \return NULL
- */
-static void * fn_action_differe (
-  void * p_data /**< parametre du pthread */
-)
-{
-  fprintf(stderr,"thread action differe :starting ...\n");
-
-  while (flag_not_exit) {
-    usleep( 10*1000 ) ;
-
-    //  traitement de liste d'actions differees
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    processing_actdiff(&list_actdiff ) ;
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  }
-
-  fprintf(stderr,"... stopped thread action differe\n");
-  return NULL;
-}
-
-int main( int argc , char **argv )
-{
-  int ret = 0;
-  int tr, rec;
-#ifdef RRC_EMUL
-  sock_rrm_t s_rrc ;
-#endif /* RRC_EMUL */
-#ifdef SNS_EMUL
-  sock_rrm_t s_sns ;
-#endif /* SNS_EMUL */
-  sock_rrm_t s_cmm ;
-  sock_rrm_t s_pusu ;
-
-  /* ***** MUTEX ***** */
-  pthread_attr_t attr ;
-
-  // initialise les attributs des threads
-  pthread_attr_init( &attr ) ;
-  pthread_attr_setschedpolicy( &attr, SCHED_RR ) ;
-
-  pthread_mutex_init( &actdiff_exclu      , NULL ) ;
-  pthread_mutex_init( &cmm_transact_exclu , NULL ) ;
-  pthread_mutex_init( &rrc_transact_exclu , NULL ) ;
-  pthread_mutex_init( &sns_transact_exclu , NULL ) ;
-
-  fprintf(stderr,"Emulation des interfaces\n");
-
-#ifdef RRC_EMUL
-  fprintf(stderr,"Trying to connect... RRM-RRC\n");
-  open_socket(&s_rrc, RRC_RRM_SOCK_PATH, RRM_RRC_SOCK_PATH,0) ;
-
-  if (s_rrc.s  == -1)
-    exit(1);
-
-  fprintf(stderr,"Connected... RRM-RRC (s=%d)\n",s_rrc.s);
-#endif /* RRC_EMUL */
-
-#ifdef SNS_EMUL
-  fprintf(stderr,"Trying to connect... RRM-SNS\n");
-  open_socket(&s_sns, SENSING_RRM_SOCK_PATH, RRM_SENSING_SOCK_PATH,0) ;
-
-  if (s_sns.s  == -1)
-    exit(1);
-
-  fprintf(stderr,"Connected... RRM-SNS (s=%d)\n",s_sns.s);
-#endif /* SNS_EMUL */
-
-
-  fprintf(stderr,"Trying to connect... CRRM-CMM\n");
-  open_socket(&s_cmm,CMM_RRM_SOCK_PATH,RRM_CMM_SOCK_PATH,0) ;
-
-  if (s_cmm.s  == -1)
-    exit(1);
-
-  fprintf(stderr,"Connected... CRRM-CMM (s=%d)\n",s_cmm.s);
-
-#ifdef PUSU_EMUL
-  fprintf(stderr,"Trying to connect... CRRM-PUSU\n");
-  open_socket(&s_pusu,PUSU_RRM_SOCK_PATH,RRM_PUSU_SOCK_PATH,0) ;
-
-  if (s_pusu.s  == -1)
-    exit(1);
-
-  fprintf(stderr,"Connected... CRRM-PUSU (s=%d)\n",s_pusu.s);
-#endif
-
-#ifdef RRC_EMUL
-  /* Creation du thread RRC */
-  fprintf(stderr,"Creation du thread RRC \n");
-  ret = pthread_create ( &pthread_rrc_hnd, NULL, fn_rrc, &s_rrc );
-
-  if (ret) {
-    fprintf(stderr, "%s", strerror (ret));
-  }
-
-#endif /* RRC_EMUL */
-
-#ifdef SNS_EMUL
-  /* Creation du thread SENSING */
-  fprintf(stderr,"Creation du thread SNS \n");
-  ret = pthread_create ( &pthread_sns_hnd, NULL, fn_sns, &s_sns );
-
-  if (ret) {
-    fprintf(stderr, "%s", strerror (ret));
-  }
-
-#endif /* SNS_EMUL */
-
-  /* Creation du thread CMM */
-  ret = pthread_create(&pthread_cmm_hnd , NULL, fn_cmm, &s_cmm );
-
-  if (ret) {
-    fprintf(stderr, "%s", strerror (ret));
-  }
-
-#ifdef PUSU_EMUL
-  /* Creation du thread Publish Subscribe (Routing CH) */
-  ret = pthread_create (&pthread_pusu_hnd , NULL, fn_pusu, &s_pusu );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-  }
-
-#endif /*PUSU_EMUL */
-
-  /* Creation du thread action_differe */
-  ret = pthread_create (&pthread_action_differe_hnd , NULL, fn_action_differe, NULL );
-
-  if (ret) {
-    fprintf(stderr, "%s", strerror (ret));
-  }
-
-#ifdef RRC_EMUL
-  usleep(100000);
-  scenario( NUM_SCENARIO, &s_rrc, &s_cmm, &s_sns );
-#endif /* RRC_EMUL */
-  sleep(5);
-  //mod_lor_11_02_15 ++: reorganization
-  printf("\n\n\nCommands: \n    'q' to exit\n" );
-
-  if(SCEN_2_CENTR || (SCEN_1 && FC_ID>=0)) {
-    printf("    's' to start sensing\n    'e' to end sensing\n" );
-
-    if (SCEN_1)
-      printf("\n\n" );
-  }
-
-  if (SCEN_1 && BTS_ID>=0)
-    printf("    'a' to active BTS request\n\n\n" );
-
-  if (SCEN_2_CENTR)
-    printf("    'c' to active collaborative sensing\n    'a' to active a secondary user\n    'l' to remove a link between two secondary users\n    'd' to disconnect a secondary user\n\n\n" );
-
-  //mod_lor_11_02_15 --
-
-  //getchar() ;//mod_lor_10_04_27
-  while (flag_not_exit) {
-    scanf("%c",&c);
-
-    if (c == 'q')
-      flag_not_exit = 0;//mod_lor_10_04_27
-    else if (c == 's') { //mod_lor_10_04_27
-      printf("Starting sensing ... \n\n");
-      unsigned int     Nb_channels= (Stop_fr-Start_fr)/Meas_band;
-
-      if (Nb_channels>NB_SENS_MAX) {
-        printf("ERROR! too many channels! Maximum number of channels is %d",NB_SENS_MAX);
-        break;
-      }
-
-      pthread_mutex_lock( &actdiff_exclu  ) ;
-      add_actdiff(&list_actdiff,0, cnt_actdiff++, &s_cmm,
-                  msg_cmm_init_sensing(FC_ID,Start_fr,Stop_fr,Meas_band,Meas_tpf,
-                                       Nb_channels,Overlap, Sampl_freq) );
-      pthread_mutex_unlock( &actdiff_exclu ) ;  //mod_lor: 10_02_09--
-    } else if (c == 'd') { //add_lor_10_11_09
-      printf("Select user to disconnect (from 1 to 3)  ... \n");
-      scanf("%d",&tr);
-
-      while (tr<1||tr>3) {
-        printf(" User id not valid!\nSelect user (from 1 to 3)  ... \n");
-        scanf("%d",&tr);
-      }
-
-      //mod_lor_10_12_07++
-      tr = tr+FIRST_SENSOR_ID-1;
-      //mod_lor_10_12_07--
-      pthread_mutex_lock( &actdiff_exclu  ) ;
-      add_actdiff(&list_actdiff,0, cnt_actdiff++, &s_cmm, msg_cmm_user_disc(tr) );
-      pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    } else if (c == 'l') { //add_lor_10_11_09
-      printf("Digit id of users involved in the link to remove (from 1 to 3)  ... \n");
-      scanf("%d",&tr);
-
-      while (tr<1||tr>3) {
-        printf(" User id not valid!\nSelect user (from 1 to 3)  ... \n");
-        scanf("%d",&tr);
-      }
-
-      scanf("%d",&rec);
-
-      while (rec<1||rec>3||rec==tr) {
-        if (rec==tr)
-          printf(" A user cannot have a link with itself!\n");
-        else
-          printf(" User id not valid!\n");
-
-        printf("Select user (from 1 to 3)  ... \n");
-        scanf("%d",&rec);
-      }
-
-      //mod_lor_10_12_07++
-      tr = tr+FIRST_SENSOR_ID-1;
-      rec = rec+FIRST_SENSOR_ID-1;
-      //mod_lor_10_12_07--
-
-      pthread_mutex_lock( &actdiff_exclu  ) ;
-      add_actdiff(&list_actdiff,0, cnt_actdiff++, &s_cmm, msg_cmm_link_disc(tr,rec) );
-      pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    } else if (c == 'c') { //add_lor_10_11_08
-      printf("Starting collaborative sensing ... \n\n");
-      unsigned int     Nb_channels= (Stop_fr-Start_fr)/Meas_band;
-
-      if (Nb_channels>NB_SENS_MAX) {
-        printf("ERROR! too many channels! Maximum number of channels is %d",NB_SENS_MAX);
-        break;
-      }
-
-      pthread_mutex_lock( &actdiff_exclu  ) ;
-      add_actdiff(&list_actdiff,0, cnt_actdiff++, &s_cmm,
-                  msg_cmm_init_coll_sensing(FC_ID,Start_fr,Stop_fr,Meas_band,Meas_tpf,
-                                            Nb_channels,Overlap, Sampl_freq) );
-      pthread_mutex_unlock( &actdiff_exclu ) ;
-    } else if (c == 'e') { //mod_lor_10_04_27
-      printf("Ending sensing ... \n\n");
-      pthread_mutex_lock( &actdiff_exclu  ) ;
-      add_actdiff(&list_actdiff,0, cnt_actdiff++, &s_cmm,
-                  msg_cmm_stop_sensing(FC_ID) );
-
-      pthread_mutex_unlock( &actdiff_exclu ) ;  //mod_lor: 10_02_09--*/
-    } else if (c == 'a') {
-      if (BTS_ID>=0) {
-        printf("Activating BTS to ask for frequencies  ... \n\n");
-        pthread_mutex_lock( &actdiff_exclu  ) ;
-        add_actdiff(&list_actdiff,0, cnt_actdiff++, &s_cmm, msg_cmm_ask_freq(BTS_ID) );
-        pthread_mutex_unlock( &actdiff_exclu ) ;
-      }
-      //mod_lor_10_10_28++
-      //mod_lor_10_10_28--
-      else if (SCEN_2_CENTR) {
-        printf("Select user that wants to transmit (from 1 to 3)  ... \n");
-        scanf("%d",&tr);
-
-        while (tr<1||tr>3) {
-          printf(" User id not valid!\nSelect user that wants to transmit (from 1 to 3)  ... \n");
-          scanf("%d",&tr);
-        }
-
-        printf("Select user destination of the transmission(from 1 to 3)  ... \n");
-        scanf("%d",&rec);
-
-        while (rec<1||rec>3||rec==tr) {
-          if (rec==tr)
-            printf(" Receiver could not be equal to transmitter!\n");
-          else
-            printf(" User id not valid!\n");
-
-          printf("Select user destination (from 1 to 3)  ... \n");
-          scanf("%d",&rec);
-        }
-
-        //mod_lor_10_12_07++
-        tr = tr+FIRST_SENSOR_ID-1;
-        rec = rec+FIRST_SENSOR_ID-1;
-        //mod_lor_10_12_07--
-
-        pthread_mutex_lock( &actdiff_exclu  ) ;
-        add_actdiff(&list_actdiff,0, cnt_actdiff++, &s_cmm, msg_cmm_need_to_tx(tr,rec,1) );
-        pthread_mutex_unlock( &actdiff_exclu ) ;
-      } else
-        printf("BTS not connected  ... \n\n");
-    }
-
-  }
-
-  //mod_lor_10_04_27--*/
-
-
-#ifdef RRC_EMUL
-  close_socket(&s_rrc);
-#endif /* RRC_EMUL */
-
-#ifdef SNS_EMUL
-  close_socket(&s_sns);
-#endif /* SNS_EMUL */
-
-  close_socket(&s_cmm);
-
-#ifdef PUSU_EMUL
-  close_socket(&s_pusu);
-#endif /*PUSU_EMUL */
-
-  /* Attente de la fin des threads. */
-  pthread_join (pthread_cmm_hnd, NULL);
-#ifdef PUSU_EMUL
-  pthread_join (pthread_pusu_hnd, NULL);
-#endif /*PUSU_EMUL */
-#ifdef RRC_EMUL
-  pthread_join (pthread_rrc_hnd, NULL);
-#endif /* RRC_EMUL */
-#ifdef SNS_EMUL
-  pthread_join (pthread_sns_hnd, NULL);
-#endif /* SNS_EMUL */
-  pthread_join (pthread_action_differe_hnd, NULL);
-
-  return 0 ;
-}
diff --git a/openair3/MESH/RRM/EMUL/emul_interface.h b/openair3/MESH/RRM/EMUL/emul_interface.h
deleted file mode 100755
index c8eac108e2..0000000000
--- a/openair3/MESH/RRM/EMUL/emul_interface.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       emul_interface.h
-
-\brief      Fichier d'entête
-
-            Il contient les declarations de type, des defines relatif aux
-            fonctions d'emulation  des interfaces du RRM (Radio Resource
-            Management ).
-
-\author     BURLOT Pascal
-
-\date       15/07/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-
-
-#ifndef EMUL_INTERFACE_H
-#define EMUL_INTERFACE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern pthread_mutex_t   cmm_transact_exclu;
-extern pthread_mutex_t   rrc_transact_exclu;
-
-extern unsigned int      cmm_transaction;
-extern unsigned int      rrc_transaction;
-
-extern pthread_mutex_t   actdiff_exclu;
-extern actdiff_t        *list_actdiff;
-extern unsigned int      cnt_actdiff;
-
-extern transact_t       *cmm_transact_list;
-extern transact_t       *rrc_transact_list;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* EMUL_INTERFACE_H */
diff --git a/openair3/MESH/RRM/EMUL/scenario.c b/openair3/MESH/RRM/EMUL/scenario.c
deleted file mode 100755
index e396038766..0000000000
--- a/openair3/MESH/RRM/EMUL/scenario.c
+++ /dev/null
@@ -1,1292 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       scenario.c
-
-\brief      Emulation d'un scenario de test  sur les interfaces du RRM
-
-            Cette application d'envoyer des stimuli sur les interfaces RRM:
-                - RRC -> RRM
-                - CMM -> RRM
-
-\author     BURLOT Pascal
-
-\date       10/07/08
-
-
-\par     Historique:
-            IACOBELLI Lorenzo 15/04/2010
-            - scenarios from 14 that include sensing unit emulation
-
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-#include <time.h>
-
-#include "debug.h"
-
-#include "L3_rrc_defs.h"
-#include "cmm_rrm_interface.h"
-
-#include "rrm_sock.h"
-#include "cmm_msg.h"
-#include "rrc_rrm_msg.h"
-#include "ip_msg.h" //mod_lor_10_04_27
-#include "pusu_msg.h"
-#include "sensing_rrm_msg.h" //mod_lor_10_04_15
-
-#include "transact.h"
-#include "actdiff.h"
-#include "rrm_util.h"
-#include "rrm_constant.h"
-#include "emul_interface.h"
-
-extern msg_t *msg_rrc_rb_meas_ind(Instance_t inst, RB_ID Rb_id, L2_ID L2_id, MEAS_MODE Meas_mode, MAC_RLC_MEAS_T *Mac_rlc_meas_t, Transaction_t Trans_id );
-extern msg_t *msg_rrc_sensing_meas_ind( Instance_t inst, L2_ID L2_id, unsigned int NB_meas, SENSING_MEAS_T *Sensing_meas, Transaction_t Trans_id );
-extern msg_t *msg_rrc_sensing_meas_resp( Instance_t inst, Transaction_t Trans_id )  ;
-extern msg_t *msg_rrc_cx_establish_ind( Instance_t inst, L2_ID L2_id, Transaction_t Trans_id,unsigned char *L3_info, L3_INFO_T L3_info_t,
-                                        RB_ID DTCH_B_id, RB_ID DTCH_id );
-extern msg_t *msg_rrc_phy_synch_to_MR_ind( Instance_t inst, L2_ID L2_id);
-extern msg_t *msg_rrc_phy_synch_to_CH_ind( Instance_t inst, unsigned int Ch_index,L2_ID L2_id );
-extern msg_t *msg_rrc_rb_establish_resp( Instance_t inst, Transaction_t Trans_id  );
-extern msg_t *msg_rrc_rb_establish_cfm( Instance_t inst, RB_ID Rb_id, RB_TYPE RB_type, Transaction_t Trans_id );
-extern msg_t *msg_rrc_rb_modify_resp( Instance_t inst, Transaction_t Trans_id );
-extern msg_t *msg_rrc_rb_modify_cfm(Instance_t inst, RB_ID Rb_id, Transaction_t Trans_id  );
-extern msg_t *msg_rrc_rb_release_resp( Instance_t inst, Transaction_t Trans_id );
-extern msg_t *msg_rrc_MR_attach_ind( Instance_t inst, L2_ID L2_id );
-extern msg_t *msg_rrc_update_sens( Instance_t inst, L2_ID L2_id, unsigned int NB_info, Sens_ch_t *Sens_meas, Transaction_t Trans_id);
-extern msg_t *msg_rrc_init_scan_req(Instance_t inst, L2_ID L2_id, unsigned int  Start_fr, unsigned int  Stop_fr,unsigned int Meas_band,
-                                    unsigned int Meas_tpf, unsigned int Nb_channels,unsigned int Overlap, unsigned int Sampl_freq, Transaction_t Trans_id );
-extern msg_t *msg_rrc_end_scan_conf(Instance_t inst, L2_ID L2_id, Transaction_t Trans_id );
-extern msg_t *msg_rrc_end_scan_req( Instance_t inst, L2_ID L2_id, Transaction_t Trans_id );
-extern msg_t *msg_rrc_init_mon_req(Instance_t inst, L2_ID L2_id, unsigned int *ch_to_scan, unsigned int NB_chan, float interval, Transaction_t Trans_id );
-extern msg_t *msg_rrc_open_freq( Instance_t inst, L2_ID L2_id,unsigned int NB_chan, CHANNEL_T *fr_channels, Transaction_t Trans_id);
-extern msg_t *msg_rrc_ask_for_freq( Instance_t inst, L2_ID L2_id, QOS_CLASS_T QoS, Transaction_t Trans_id );
-extern msg_t *msg_rrc_update_SN_freq( Instance_t inst, L2_ID L2_id, unsigned int NB_chan, unsigned int *occ_channels, Transaction_t Trans_id);
-extern msg_t *msg_rrc_clust_scan_req( Instance_t inst, L2_ID L2_id, float interv, COOPERATION_T coop, Transaction_t Trans_id);
-extern msg_t *msg_rrc_clust_mon_req(Instance_t inst, L2_ID L2_id, unsigned int *ch_to_scan, unsigned int NB_chan, float interval, Transaction_t Trans_id );
-extern msg_t *msg_rrc_init_conn_conf( Instance_t inst, L2_ID L2_id, unsigned int Session_id, Transaction_t Trans_id );
-extern msg_t *msg_rrc_freq_all_prop_conf( Instance_t inst, L2_ID L2_id, unsigned int Session_id, unsigned int NB_free_ch, CHANNEL_T *fr_channels, Transaction_t Trans_id);
-extern msg_t *msg_rrc_rep_freq_ack( Instance_t inst, L2_ID L2_id_ch, L2_ID L2_id_source, L2_ID L2_id_dest, unsigned int Session_id, CHANNEL_T all_channel, Transaction_t Trans_id);
-extern msg_t *msg_rrc_init_conn_req( Instance_t inst, L2_ID L2_id , unsigned int Session_id, QOS_CLASS_T QoS_class, Transaction_t Trans_id );
-extern msg_t *msg_rrc_freq_all_prop( Instance_t inst, L2_ID L2_id, unsigned int Session_id, unsigned int NB_free_ch, CHANNEL_T *fr_channels, Transaction_t Trans_id);
-extern msg_t *msg_rrc_rep_freq_all( Instance_t inst, L2_ID L2_id_source,L2_ID L2_id_dest, unsigned int Session_id, unsigned int NB_prop_ch, CHANNEL_T *pr_channels, Transaction_t Trans_id);
-
-
-L2_ID L2_id_ch  = {{0xAA,0xCC,0x33,0x55,0x00,0x11,0x00,0x00}};
-L2_ID L2_id_fc  = {{0xAA,0xCC,0x33,0x55,0x00,0x11,0x00,0x00}};
-L2_ID L2_id_mr  = {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x22,0x00}};
-L2_ID L2_id_mr2 = {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x33,0x00}};
-L2_ID L2_id_mr3 = {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x44,0x00}};
-L2_ID L2_id_bts = {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x00,0x11}};
-L2_ID L2_id_ch2 = {{0xAA,0xCC,0x33,0x55,0x00,0x22,0x00,0x00}};
-
-unsigned char L3_info_mr3[MAX_L3_INFO] = { 0x0A, 0x00, 3, 3 } ;
-unsigned char L3_info_mr2[MAX_L3_INFO] = { 0x0A, 0x00, 2, 2 } ;
-unsigned char L3_info_mr[MAX_L3_INFO]  = { 0x0A, 0x00, 1, 1 } ;
-unsigned char L3_info_ch[MAX_L3_INFO]  = { 0x0A, 0x00, 0, 0 } ;
-
-//mod_lor_10_03_12++ : init sensing global parameters
-unsigned int     Start_fr   = 1000;
-unsigned int     Stop_fr    = 2000;
-unsigned int     Meas_band  = 200;
-unsigned int     Meas_tpf   = 2;
-unsigned int     Nb_channels= 5;
-unsigned int     Overlap    = 5;
-unsigned int     Sampl_freq = 10;
-//mod_lor_10_03_12--
-
-static void prg_opening_RB( sock_rrm_t *s_cmm, double date, L2_ID *src, L2_ID *dst, QOS_CLASS_T qos )
-{
-  cmm_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_cmm,
-              msg_cmm_cx_setup_req(0,*src,*dst, qos, cmm_transaction ) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &cmm_transact_exclu ) ;
-  add_item_transact( &cmm_transact_list, cmm_transaction, INT_CMM,CMM_CX_SETUP_REQ,0,NO_PARENT);
-  pthread_mutex_unlock( &cmm_transact_exclu ) ;
-}
-
-static void prg_modifying_RB( sock_rrm_t *s_cmm, double date, RB_ID Rb_id, QOS_CLASS_T qos )
-{
-  cmm_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_cmm,
-              msg_cmm_cx_modify_req(0,Rb_id, qos, cmm_transaction ) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &cmm_transact_exclu ) ;
-  add_item_transact( &cmm_transact_list, cmm_transaction, INT_CMM,CMM_CX_MODIFY_REQ,0,NO_PARENT);
-  pthread_mutex_unlock( &cmm_transact_exclu ) ;
-}
-
-static void prg_releasing_RB( sock_rrm_t *s_cmm, double date, RB_ID Rb_id )
-{
-  cmm_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_cmm,
-              msg_cmm_cx_release_req(0,Rb_id, cmm_transaction ) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &cmm_transact_exclu ) ;
-  add_item_transact( &cmm_transact_list, cmm_transaction, INT_CMM,CMM_CX_RELEASE_REQ,0,NO_PARENT);
-  pthread_mutex_unlock( &cmm_transact_exclu ) ;
-}
-
-static void prg_phy_synch_to_MR( sock_rrm_t *s_rrc, double date )
-{
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_phy_synch_to_MR_ind(0, L2_id_ch) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC,RRC_PHY_SYNCH_TO_MR_IND,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-}
-
-static void prg_rrc_MR_attach_ind( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_mr  )
-{
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc,
-              msg_rrc_MR_attach_ind(0,*L2_id_mr ) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC,RRC_MR_ATTACH_IND,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-}
-
-static void prg_rrc_cx_establish_ind(
-  sock_rrm_t *s_rrc, double date,
-  L2_ID *L2_id,
-  unsigned char *L3_info,
-  L3_INFO_T L3_info_t,
-  RB_ID dtch_b_id,
-  RB_ID dtch_id
-)
-{
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc,
-              msg_rrc_cx_establish_ind(0,*L2_id,rrc_transaction, L3_info, L3_info_t, dtch_b_id, dtch_id ) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC,RRC_CX_ESTABLISH_IND,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-}
-
-static void prg_rrc_sensing_meas_ind( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_mr,
-                                      int nb_meas, SENSING_MEAS_T *Sensing_meas )
-{
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc,
-              msg_rrc_sensing_meas_ind(0,*L2_id_mr,nb_meas,Sensing_meas, rrc_transaction ) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC,RRC_SENSING_MEAS_IND,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-}
-
-static void prg_rrc_rb_meas_ind( sock_rrm_t *s_rrc, double date, RB_ID Rb_id, L2_ID *L2_id,MEAS_MODE Meas_mode,
-                                 MAC_RLC_MEAS_T *Mac_rlc_meas )
-{
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc,
-              msg_rrc_rb_meas_ind(0, Rb_id, *L2_id, Meas_mode, Mac_rlc_meas,  rrc_transaction ) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC,RRC_RB_MEAS_IND,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-}
-
-static void prg_cmm_init_sensing( sock_rrm_t *s_cmm, double date, unsigned int Start_fr,unsigned int Stop_fr,unsigned int Meas_band,unsigned int Meas_tpf,
-                                  unsigned int Nb_channels,unsigned int Overlap,unsigned int Sampl_freq )
-{
-  cmm_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_cmm, msg_cmm_init_sensing ( 0, Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq));
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &cmm_transact_exclu ) ;
-  add_item_transact( &cmm_transact_list, cmm_transaction, INT_CMM, CMM_INIT_SENSING,0,NO_PARENT);
-  pthread_mutex_unlock( &cmm_transact_exclu ) ;
-
-}
-static void prg_rrc_update_sens( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_mr,
-                                 unsigned int NB_info, Sens_ch_t *Sens_meas )
-{
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_update_sens ( 0, *L2_id_mr, NB_info, Sens_meas, rrc_transaction));
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_UPDATE_SENS,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-static void prg_rrc_init_scan_req( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_fc,
-                                   unsigned int Start_fr,unsigned int Stop_fr,unsigned int Meas_band,unsigned int Meas_tpf,
-                                   unsigned int Nb_channels,unsigned int Overlap,unsigned int Sampl_freq )
-{
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_init_scan_req ( 0, *L2_id_fc, Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq, rrc_transaction));
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_INIT_SCAN_REQ,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_cmm_stop_sensing( sock_rrm_t *s_cmm, double date)
-{
-  cmm_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_cmm, msg_cmm_stop_sensing ( 0 ));
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &cmm_transact_exclu ) ;
-  add_item_transact( &cmm_transact_list, cmm_transaction, INT_CMM, CMM_STOP_SENSING,0,NO_PARENT);
-  pthread_mutex_unlock( &cmm_transact_exclu ) ;
-
-}
-
-static void prg_rrc_end_scan_conf( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_mr )
-{
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_end_scan_conf ( 0, *L2_id_mr, rrc_transaction));
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_END_SCAN_CONF,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_rrc_end_scan_req( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_fc )
-{
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_end_scan_req ( 0, *L2_id_fc, rrc_transaction));
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_END_SCAN_REQ,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_rrc_init_mon_req( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_fc, unsigned int *ch_to_scan, unsigned int NB_chan, float interv )
-{
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_init_mon_req ( 0, *L2_id_fc, ch_to_scan, NB_chan, interv, rrc_transaction));
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_INIT_MON_REQ,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-
-/*
-static void prg_cmm_ask_freq( sock_rrm_t *s_cmm, double date)
-{
-    cmm_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_cmm, msg_cmm_ask_freq ( 0 ));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &cmm_transact_exclu ) ;
-    add_item_transact( &cmm_transact_list, cmm_transaction, INT_CMM, CMM_ASK_FREQ,0,NO_PARENT);
-    pthread_mutex_unlock( &cmm_transact_exclu ) ;
-
-}
-
-static void prg_rrc_open_freq( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_fc,
-                                    unsigned int NB_chan, CHANNEL_T *fr_channels)
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_open_freq ( 0, *L2_id_fc, NB_chan, fr_channels, rrc_transaction ));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_OPEN_FREQ,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-
-static void prg_rrc_ask_for_freq( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_bts,
-                                   QOS_CLASS_T QoS)
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_ask_for_freq ( 0, *L2_id_bts, QoS, rrc_transaction ));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_ASK_FOR_FREQ,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-
-static void prg_rrc_update_SN_freq( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_bts,
-                                   unsigned int NB_chan, unsigned int *occ_channels)
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_update_SN_freq ( 0, *L2_id_bts, NB_chan, occ_channels, rrc_transaction ));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_UPDATE_SN_FREQ,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_cmm_need_to_tx( sock_rrm_t *s_cmm, double date, QOS_CLASS_T QoS_class)
-{
-    cmm_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_cmm, msg_cmm_need_to_tx ( 0, QoS_class ));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &cmm_transact_exclu ) ;
-    add_item_transact( &cmm_transact_list, cmm_transaction, INT_CMM, CMM_NEED_TO_TX,0,NO_PARENT);
-    pthread_mutex_unlock( &cmm_transact_exclu ) ;
-
-}
-
-static void prg_rrc_clust_scan_req( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_ch2,
-                                   float interv, COOPERATION_T coop)
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_clust_scan_req ( 0, *L2_id_ch2, interv, coop, rrc_transaction ));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_CLUST_SCAN_REQ,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_rrc_clust_mon_req( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_fc, unsigned int *ch_to_scan, unsigned int NB_chan, float interv )
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_clust_mon_req ( 0, *L2_id_fc, ch_to_scan, NB_chan, interv, rrc_transaction));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_CLUST_MON_REQ,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_cmm_init_trans_req( sock_rrm_t *s_cmm, double date, L2_ID *L2_id_mr2, unsigned int Session_id, QOS_CLASS_T QoS_class)
-{
-    cmm_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_cmm, msg_cmm_init_trans_req ( 0, *L2_id_mr2, Session_id,  QoS_class, cmm_transaction));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &cmm_transact_exclu ) ;
-    add_item_transact( &cmm_transact_list, cmm_transaction, INT_CMM, CMM_INIT_TRANS_REQ,0,NO_PARENT);
-    pthread_mutex_unlock( &cmm_transact_exclu ) ;
-
-}
-
-static void prg_rrc_init_conn_conf ( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_mr2, unsigned int Session_id )
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_init_conn_conf ( 0, *L2_id_mr2, Session_id, rrc_transaction));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_INIT_CONN_CONF,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_rrc_freq_all_prop_conf ( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_mr2,
-            unsigned int Session_id, unsigned int NB_free_ch, CHANNEL_T *fr_channels   )
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_freq_all_prop_conf ( 0, *L2_id_mr2, Session_id, NB_free_ch, fr_channels, rrc_transaction));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_FREQ_ALL_PROP_CONF,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_rrc_init_conn_req( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_mr2, unsigned int Session_id, QOS_CLASS_T QoS_class)
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_init_conn_req ( 0, *L2_id_mr2, Session_id, QoS_class, rrc_transaction));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_INIT_CONN_REQ,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_rrc_freq_all_prop ( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_mr2,
-            unsigned int Session_id, unsigned int NB_free_ch, CHANNEL_T *fr_channels   )
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_freq_all_prop ( 0, *L2_id_mr2, Session_id, NB_free_ch, fr_channels, rrc_transaction));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_FREQ_ALL_PROP,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_rrc_rep_freq_all ( sock_rrm_t *s_rrc, double date, L2_ID *L2_id_mr, L2_ID *L2_id_mr2,
-            unsigned int Session_id, unsigned int NB_prop_ch, CHANNEL_T *pr_channels   )
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_rep_freq_all ( 0,  *L2_id_mr, *L2_id_mr2, Session_id, NB_prop_ch, pr_channels, rrc_transaction));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_REP_FREQ_ALL,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}
-
-static void prg_rrc_rep_freq_ack ( sock_rrm_t *s_rrc, double date,  L2_ID *L2_id_ch, L2_ID *L2_id_mr, L2_ID *L2_id_mr2,
-            unsigned int Session_id, CHANNEL_T all_channel   )
-{
-    rrc_transaction++;
-    pthread_mutex_lock( &actdiff_exclu  ) ;
-    add_actdiff(&list_actdiff,date, cnt_actdiff++, s_rrc, msg_rrc_rep_freq_ack ( 0,  *L2_id_ch, *L2_id_mr, *L2_id_mr2, Session_id, all_channel, rrc_transaction));
-    pthread_mutex_unlock( &actdiff_exclu ) ;
-
-    pthread_mutex_lock( &rrc_transact_exclu ) ;
-    add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC, RRC_REP_FREQ_ACK,0,NO_PARENT);
-    pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-}*/
-
-
-
-/* =========================================================================== *
- *                              SCENARII                                       *
- * =========================================================================== */
-
-/**
- * \brief Cette fonction simule le passage de IN en CH (TIMEOUT) ,
- *        ensuite  l'ouverture d'un RB, la modification et finalement la
- *        libération.
- */
-static void scenario0(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm )
-{
-  printf("\nSCENARIO 0: ...\n\n" ) ;
-  // ========================= ISOLATED NODE to CLUSTERHEAD
-  prg_phy_synch_to_MR( s_rrc, 0.1 );
-
-  // ========================= Ouverture d'un RB
-  prg_opening_RB( s_cmm, 2.0, &L2_id_ch,&L2_id_mr,QOS_DTCH_USER1 );
-  // ========================= Modification d'un RB
-  prg_modifying_RB( s_cmm, 2.2 , 5, QOS_DTCH_USER2 );
-  // ========================= Fermeture d'un RB
-  prg_releasing_RB( s_cmm, 2.5, 5 );
-}
-
-/**
- * \brief Cette fonction simule le passage de IN en CH par la reception du
- *        SYNCH d'un MR, et ensuite  l'ouverture d'un RB
- */
-static void scenario1(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm )
-{
-  printf("\nSCENARIO 1: ...\n\n" ) ;
-  // ========================= ISOLATED NODE to CLUSTERHEAD : RRC_PHY_SYNCH_TO_MR_IND
-  prg_phy_synch_to_MR( s_rrc, 0.2 );
-
-  // ========================= Ouverture d'un RB
-  prg_opening_RB( s_cmm, 2.0, &L2_id_ch,&L2_id_mr,QOS_DTCH_USER1 );
-}
-
-/**
- * \brief Cette fonction simule le passage de IN en CH ,
- *        puis l'attachement d'un MR et finalement l'ouverture d'un RB.
- */
-static void scenario2(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  printf("\nSCENARIO 2: ...\n\n" ) ;
-  // ========================= ISOLATED NODE to CLUSTERHEAD
-  prg_phy_synch_to_MR( s_rrc, 0.1 );
-
-  // ========================= Attachement d'un MR
-  prg_rrc_MR_attach_ind( s_rrc, 2.0, &L2_id_mr );
-  prg_rrc_MR_attach_ind( s_rrc, 3.0, &L2_id_mr2 );
-  prg_rrc_MR_attach_ind( s_rrc, 4.0, &L2_id_mr3 );
-
-  // ========================= Indicateur d'une connexion établie
-  prg_rrc_cx_establish_ind( s_rrc, 5.0, &L2_id_mr, L3_info_mr,IPv4_ADDR,0,0);
-  prg_rrc_cx_establish_ind( s_rrc, 6.0, &L2_id_mr2, L3_info_mr2,IPv4_ADDR,0,0);
-  prg_rrc_cx_establish_ind( s_rrc, 7.0, &L2_id_mr3, L3_info_mr3,IPv4_ADDR,0,0);
-}
-
-/**
- * \brief Cette fonction simule le passage de IN en MR par la reception du
- *        SYNCH d'un CH
- */
-static void scenario3(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  printf("\nSCENARIO 3: ...\n\n" ) ;
-
-  // ========================= Attachement d'un MR
-
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,0.2, cnt_actdiff++, s_rrc,msg_rrc_phy_synch_to_CH_ind(0, 1, L2_id_mr ) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC,RRC_PHY_SYNCH_TO_CH_IND,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-  // ========================= Connexion etablit du MR au CH
-  prg_rrc_cx_establish_ind( s_rrc, 1.0, &L2_id_ch, L3_info_ch,IPv4_ADDR, 10, 20 ) ;
-}
-
-/**
- * \brief Cette fonction simule le passage de IN en CH (TIMEOUT),
- *        puis l'attachement d'un MR ,
- *        puis l'ouverture d'un RB.
- *        puis la remontee de mesures du MR au CH.
- */
-static void scenario4(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  SENSING_MEAS_T Sensing_meas[3]= {
-    { 15, {{0xAA,0xCC,0x33,0x55,0x11,0x00,0x22,0x00}} },
-    { 20, {{0xAA,0xCC,0x33,0x55,0x22,0x00,0x22,0x00}} },
-    { 10, {{0xAA,0xCC,0x33,0x55,0x33,0x00,0x22,0x00}} }
-  };
-  printf("\nSCENARIO 4: ...\n\n" ) ;
-  // ========================= ISOLATED NODE to CLUSTERHEAD
-  prg_phy_synch_to_MR( s_rrc, 0.1 );
-
-  // ========================= Attachement d'un MR
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr  ) ;
-
-  // ========================= Indicateur d'une connexion établie
-  prg_rrc_cx_establish_ind( s_rrc, 5.0, &L2_id_mr, L3_info_mr, IPv4_ADDR, 0, 0 ) ;
-
-  // ========================= Remontée de mesure par le RRC
-
-  // Meas 1
-  prg_rrc_sensing_meas_ind( s_rrc, 5.00, &L2_id_mr, 1, Sensing_meas );
-
-  // Meas 2
-  prg_rrc_sensing_meas_ind( s_rrc, 5.25, &L2_id_mr, 3, Sensing_meas );
-
-  // Meas 3
-  prg_rrc_sensing_meas_ind( s_rrc, 5.50, &L2_id_mr, 2, Sensing_meas );
-
-  // Meas 4
-  prg_rrc_sensing_meas_ind( s_rrc, 5.75, &L2_id_mr, 0, Sensing_meas );
-}
-
-/**
- * \brief Cette fonction simule le passage de IN en CH (TIMEOUT),
- *        puis l'attachement de 3 MR ,
- *        puis l'ouverture d'un RB.
- *        puis la remontee de mesures du MR au CH.
- */
-static void scenario5(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  static SENSING_MEAS_T Sensing_meas[3]= {
-    { 15, {{0xAA,0xCC,0x33,0x55,0x00,0x11,0x00,0x00}} },
-    { 20, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x44,0x00}} },
-    { 10, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x33,0x00}} }
-  };
-  static SENSING_MEAS_T Sensing_meas2[3]= {
-    { 16, {{0xAA,0xCC,0x33,0x55,0x00,0x11,0x00,0x00}} },
-    { 25, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x22,0x00}} },
-    { 30, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x44,0x00}} }
-  };
-  static SENSING_MEAS_T Sensing_meas3[3]= {
-    { 14, {{0xAA,0xCC,0x33,0x55,0x00,0x11,0x00,0x00}} },
-    { 17, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x22,0x00}} },
-    { 29, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x33,0x00}} }
-  };
-
-  printf("\nSCENARIO 5: ...\n\n" ) ;
-  // ========================= ISOLATED NODE to CLUSTERHEAD :
-  prg_phy_synch_to_MR( s_rrc, 0.1 );
-
-  // ========================= Attachement d'un MR
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr  ) ;
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr2  ) ;
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr3  ) ;
-
-  // =========================  Indicateur d'une connexion établie
-  prg_rrc_cx_establish_ind( s_rrc, 5.0, &L2_id_mr, L3_info_mr, IPv6_ADDR, 0, 0 ) ;
-  prg_rrc_cx_establish_ind( s_rrc, 5.0, &L2_id_mr2, L3_info_mr, IPv6_ADDR, 0, 0 ) ;
-  prg_rrc_cx_establish_ind( s_rrc, 5.0, &L2_id_mr3, L3_info_mr, IPv6_ADDR, 0, 0 ) ;
-
-  // ========================= Remontée de mesure par le RRC
-
-  // Meas 1
-  prg_rrc_sensing_meas_ind( s_rrc, 5.10, &L2_id_mr, 1, Sensing_meas );
-  prg_rrc_sensing_meas_ind( s_rrc, 5.10, &L2_id_mr2, 1, Sensing_meas2 );
-  prg_rrc_sensing_meas_ind( s_rrc, 5.10, &L2_id_mr3, 1, Sensing_meas3 );
-
-  // Meas 2
-  prg_rrc_sensing_meas_ind( s_rrc, 5.25, &L2_id_mr, 2, Sensing_meas );
-  prg_rrc_sensing_meas_ind( s_rrc, 5.25, &L2_id_mr2, 2, Sensing_meas2 );
-  prg_rrc_sensing_meas_ind( s_rrc, 5.25, &L2_id_mr3, 2, Sensing_meas3 );
-
-  // Meas 3
-  prg_rrc_sensing_meas_ind( s_rrc, 5.50, &L2_id_mr, 3, Sensing_meas );
-  prg_rrc_sensing_meas_ind( s_rrc, 5.50, &L2_id_mr2, 3, Sensing_meas2 );
-  prg_rrc_sensing_meas_ind( s_rrc, 5.50, &L2_id_mr3, 3, Sensing_meas3 );
-
-}
-
-/**
- * \brief Cette fonction simule le passage de IN en CH (TIMEOUT) ,
- *        ensuite  l'ouverture d'un RB, la modification et finalement la
- *        libération.
- */
-static void scenario6(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm )
-{
-
-  static MAC_RLC_MEAS_T Meas1_CH= { .Rssi=25 , .Sinr={ 1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16}, .Harq_delay =45,
-                                    .Bler=1234,  .rlc_sdu_buffer_occ=13,.rlc_sdu_loss_indicator=25000
-                                  };
-  static MAC_RLC_MEAS_T Meas2_CH= { .Rssi=15 , .Sinr={ 1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16}, .Harq_delay =35,
-                                    .Bler=4,  .rlc_sdu_buffer_occ=13,.rlc_sdu_loss_indicator=35000
-                                  };
-
-  static MAC_RLC_MEAS_T Meas1_MR= { .Rssi=35 , .Sinr={ 11,12,13,14, 15,16,17,18, 19,20,21,22, 23,24,25,26}, .Harq_delay =55,
-                                    .Bler=2134,  .rlc_sdu_buffer_occ=23,.rlc_sdu_loss_indicator=15000
-                                  };
-
-  static MAC_RLC_MEAS_T Meas2_MR= { .Rssi=45 , .Sinr={ 11,12,13,14, 15,16,17,18, 19,20,21,22, 23,24,25,26}, .Harq_delay =25,
-                                    .Bler=3000,  .rlc_sdu_buffer_occ=11,.rlc_sdu_loss_indicator=300
-                                  };
-  printf("\nSCENARIO 6: ...\n\n" ) ;
-  // ========================= ISOLATED NODE to CLUSTERHEAD
-  prg_phy_synch_to_MR( s_rrc, 0.1 );
-
-  // ========================= Ouverture d'un RB
-  prg_opening_RB( s_cmm, 2.0, &L2_id_ch,&L2_id_mr,QOS_DTCH_USER1 );
-
-
-  prg_rrc_rb_meas_ind( s_rrc, 2.5, 4 , &L2_id_mr,PERIODIC,&Meas1_MR )  ;
-  prg_rrc_rb_meas_ind( s_rrc, 2.5, 4 , &L2_id_ch,PERIODIC,&Meas1_CH )  ;
-
-  prg_rrc_rb_meas_ind( s_rrc, 2.7, 4 , &L2_id_ch,PERIODIC,&Meas2_CH )  ;
-  prg_rrc_rb_meas_ind( s_rrc, 2.7, 4 , &L2_id_mr,PERIODIC,&Meas2_MR )  ;
-
-}
-
-/**
- * \brief Cette fonction simule la phase de sensing du point de vue du FC,
- *        - l'attachement de 3 sensors,
- *        - le comancement du processus de sensing,
- *        - la remontee de mesures des sensors.
- */
-static void scenario7(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  static Sens_ch_t Sensing_meas[3]= {
-    { 100.1, 200, 1, 13.5, 0, NULL },
-    { 200.1, 300, 2,  7.4, 1, NULL },
-    { 300.1, 400, 3,  8.5, 1, NULL }
-
-  };
-
-  static Sens_ch_t Sensing_meas2[3]= {
-    { 100.1, 200, 1, 23.5, 0, NULL },
-    { 200.1, 300, 2, 27.4, 0, NULL },
-    { 300.1, 400, 3, 28.5, 0, NULL }
-
-  };
-
-  unsigned int occ_channels [2]= {1, 3};
-  printf("\nSCENARIO 7: ...\n\n" ) ;
-
-  // ========================= ISOLATED NODE to CLUSTERHEAD :
-  prg_phy_synch_to_MR( s_rrc, 0.1 );
-
-  // ========================= Attachement d'un MR
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr  ) ;
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr2  ) ;
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr3  ) ;
-
-  // ========================= Starting sensing operation
-
-  prg_cmm_init_sensing( s_cmm,  1, Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq);
-  // ========================= Remontée de mesure par le RRC
-
-  prg_rrc_update_sens( s_rrc, 5.10, &L2_id_mr,3, Sensing_meas );
-  prg_rrc_update_sens( s_rrc, 5.20, &L2_id_mr2,3, Sensing_meas );
-  prg_rrc_update_sens( s_rrc, 5.30, &L2_id_mr3,3, Sensing_meas );
-  //prg_rrc_update_sens( s_rrc, 5.50, &L2_id_mr,2, Sensing_meas2 ); // answer to mon request
-
-  // ========================= Frequency query
-  //prg_rrc_ask_for_freq( s_rrc, 5.80, &L2_id_bts, 0);
-
-  //prg_rrc_update_SN_freq( s_rrc, 6, &L2_id_bts, 2, occ_channels);
-  // ========================= End sensing operation
-
-  prg_cmm_stop_sensing( s_cmm, 5.60);
-  //prg_rrc_end_scan_conf( s_rrc, 5.80, &L2_id_mr);
-  //prg_rrc_end_scan_conf( s_rrc, 5.90, &L2_id_mr2);
-  //prg_rrc_end_scan_conf( s_rrc, 6.0,  &L2_id_mr3);
-
-}
-
-
-/**
- * \brief Cette fonction simule la phase de sensing du point de vue du sensor,
- *        - l'attachement de 3 sensors,
- *        - le comancement du processus de sensing,
- *        - la remontee de mesures des sensors.
- */
-static void scenario8(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  static Sens_ch_t Sensing_meas[3]= {
-    { 100, 200, 1, 13.5, 0, NULL },
-    { 200, 300, 2,  7.4, 0, NULL },
-    { 300, 400, 3,  8.5, 0, NULL }
-
-  };
-  static Sens_ch_t Sensing_meas2[3]= {
-    { 100, 200, 1, 23.5, 0, NULL },
-    { 200, 300, 2, 27.4, 0, NULL },
-    { 300, 400, 3, 28.5, 0, NULL }
-
-  };
-
-  /*static SENSING_MEAS_T Sensing_meas2[3]={
-      { 16, {{0xAA,0xCC,0x33,0x55,0x00,0x11,0x00,0x00}} },
-      { 25, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x22,0x00}} },
-      { 30, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x44,0x00}} }
-  };
-  static SENSING_MEAS_T Sensing_meas3[3]={
-      { 14, {{0xAA,0xCC,0x33,0x55,0x00,0x11,0x00,0x00}} },
-      { 17, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x22,0x00}} },
-      { 29, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x33,0x00}} }
-  };*/
-
-  printf("\nSCENARIO 8: ...\n\n" ) ;
-
-  // ========================= Attachement d'un senseur
-
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,0.2, cnt_actdiff++, s_rrc,msg_rrc_phy_synch_to_CH_ind(0, 1, L2_id_ch ) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC,RRC_PHY_SYNCH_TO_CH_IND,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-  // ========================= Connexion etablit du MR au CH
-  prg_rrc_cx_establish_ind( s_rrc, 1.0, &L2_id_ch, L3_info_ch,IPv4_ADDR, 10, 20 ) ;
-
-  // ========================= Starting sensing operation
-  unsigned int interv= 1;
-  float date = 1.5;
-  prg_rrc_init_scan_req( s_rrc, date, &L2_id_ch,Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq);
-  //prg_cmm_init_sensing( s_cmm, 5.0, Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq );
-  // ========================= Remontée de mesure par le RRC
-  /*for (int i=0; i<3;i++){
-      date+=interv;
-      prg_rrc_update_sens( s_rrc, date, &L2_id_mr,3, Sensing_meas );
-  }*/
-  // ========================= Monitoring
-  /*unsigned int ch_to_scan[3]={1,2};
-  unsigned int NB_chan= 2;
-  date+=interv;
-  prg_rrc_init_mon_req( s_rrc, date, &L2_id_ch, ch_to_scan, NB_chan, interv );
-  date+=interv;
-  prg_rrc_update_sens( s_rrc, date, &L2_id_mr,NB_chan, Sensing_meas2 );*/
-
-  // ========================= End of sensing
-  date+=interv;
-  prg_rrc_end_scan_req( s_rrc, date, &L2_id_ch );
-
-
-}
-
-
-/**
- * \brief BTS actions in SENDORA first scenario,
- *
- */
-static void scenario9(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  static Sens_ch_t Sensing_meas[3]= {
-    { 100.1, 200, 1, 13.5, 0, NULL },
-    { 200.1, 300, 2,  7.4, 0, NULL },
-    { 300.1, 400, 3,  8.5, 0, NULL }
-
-  };
-
-  /*static CHANNEL_T Free_frequencies[3]={
-      { 100, 200, 1, 1 },
-      { 200, 300, 2, 2 },
-      { 300, 400, 3, 3 }
-
-  };*/
-
-
-  printf("\nSCENARIO 9: ...\n\n" ) ;
-  // ========================= ISOLATED NODE to CLUSTERHEAD (FC) :
-  prg_phy_synch_to_MR( s_rrc, 0.1 );
-
-  //  ========================= Attachement d'un senseur
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr  ) ;
-
-  // ========================= Attachement de la BTS
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_bts  ) ;
-
-  // ========================= Starting frequency query
-  /*if (SCEN_1)
-      prg_cmm_ask_freq ( s_cmm, 2.5 );
-  if (SCEN_2_CENTR)
-      prg_cmm_need_to_tx( s_cmm, 2.5, 1);
-  prg_rrc_open_freq ( s_rrc, 4.0, &L2_id_fc, 3, Free_frequencies );
-  */
-}
-
-/**
- * \brief CH actions in SENDORA second scenario centralized
- */
-static void scenario10(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  static Sens_ch_t Sensing_meas[3]= {
-    { 100.1, 200, 1, 13.5, 0, NULL },
-    { 200.1, 300, 2,  7.4, 1, NULL },
-    { 300.1, 400, 3,  8.5, 1, NULL }
-
-  };
-
-  static Sens_ch_t Sensing_meas2[3]= {
-    { 100.1, 200, 1, 23.5, 0, NULL },
-    { 200.1, 300, 2, 27.4, 0, NULL },
-    { 300.1, 400, 3, 28.5, 0, NULL }
-
-  };
-
-  unsigned int occ_channels [2]= {1, 3};
-  printf("\nSCENARIO 7: ...\n\n" ) ;
-  // ========================= ISOLATED NODE to CLUSTERHEAD :
-  prg_phy_synch_to_MR( s_rrc, 0.1 );
-
-  // ========================= Attachement d'un MR
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr  ) ;
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr2  ) ;
-  //prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr3  ) ;
-
-  // ========================= Starting sensing operation
-  //prg_rrc_clust_scan_req(s_rrc, 5.0, &L2_id_ch, 0.5, 1);
-
-  // ========================= Remontée de mesure par le RRC
-
-  prg_rrc_update_sens( s_rrc, 7.10, &L2_id_mr,3, Sensing_meas );
-  prg_rrc_update_sens( s_rrc, 7.20, &L2_id_mr2,3, Sensing_meas );
-  //prg_rrc_update_sens( s_rrc, 5.30, &L2_id_mr3,3, Sensing_meas );
-
-  // ========================= Monitoring
-  unsigned int ch_to_scan[3]= {1,2};
-  unsigned int NB_chan= 2;
-  unsigned int interv = 0.5;
-  unsigned int date = 8.0;
-  //date+=interv;
-  //prg_rrc_clust_mon_req( s_rrc, date, &L2_id_ch, ch_to_scan, NB_chan, interv );
-  date+=(interv*4);
-  prg_rrc_update_sens( s_rrc, date, &L2_id_mr,NB_chan, Sensing_meas2 );
-  date+=interv;
-  prg_rrc_update_sens( s_rrc, date, &L2_id_mr2,NB_chan, Sensing_meas2 );
-
-
-  // ========================= End sensing operation
-  prg_rrc_end_scan_req( s_rrc, 8.0, &L2_id_ch );
-  //prg_cmm_stop_sensing( s_cmm, 5.60);
-  //prg_rrc_end_scan_conf( s_rrc, 9.80, &L2_id_mr);
-  //prg_rrc_end_scan_conf( s_rrc, 9.90, &L2_id_mr2);
-  //prg_rrc_end_scan_conf( s_rrc, 6.0,  &L2_id_mr3);
-
-}
-
-
-/**
- * \brief This function simulate the connection of two SUs from the first SU point of view
- *
- */
-static void scenario11(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  static Sens_ch_t Sensing_meas[4]= {
-    { 100.1, 200, 1,  3.5, 1, NULL },
-    { 200.1, 300, 2,  7.4, 1, NULL },
-    { 300.1, 400, 3,  8.5, 0, NULL },
-    { 400.1, 500, 4,  2.5, 1, NULL }
-
-  };
-  static Sens_ch_t Sensing_meas2[3]= {
-    { 100.1, 200, 1, 23.5, 0, NULL },
-    { 200.1, 300, 2, 27.4, 0, NULL },
-    { 300.1, 400, 3, 28.5, 0, NULL }
-
-  };
-  /*static CHANNEL_T Free_frequencies[3]={
-      { 100.1, 200, 1, 0 },
-      { 200.1, 300, 2, 0 },
-      { 400.1, 500, 4, 0 }
-
-  };*/
-
-  printf("\nSCENARIO 11: ...\n\n" ) ;
-
-  // ========================= Starting sensing operation
-  unsigned int interv= 1;
-  float date = 1.5;
-  unsigned int Session_id = 7;
-  prg_rrc_init_scan_req( s_rrc, date, &L2_id_ch,Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq);
-
-  //prg_cmm_init_sensing( s_cmm, 5.0, Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq );
-  // ========================= Remontée de mesure par le RRC
-  for (int i=0; i<3; i++) {
-    date+=interv;
-    prg_rrc_update_sens( s_rrc, date, &L2_id_mr,4, Sensing_meas );
-  }
-
-  // ========================= Transaction
-  /* date+=interv;
-   prg_cmm_init_trans_req( s_cmm, date, &L2_id_mr2, Session_id, 1);
-   date+=interv;
-   prg_rrc_init_conn_conf ( s_rrc, date, &L2_id_mr2, Session_id );
-   date+=interv;
-   prg_rrc_freq_all_prop_conf ( s_rrc, date, &L2_id_mr2, Session_id, 3, Free_frequencies);
-  */
-  // ========================= End of sensing
-  date+=interv;
-  prg_rrc_end_scan_req( s_rrc, date, &L2_id_ch );
-
-
-}
-
-/**
- * \brief This function simulate the connection of two SUs from the second SU point of view
- *
- */
-static void scenario12(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  static Sens_ch_t Sensing_meas[4]= {
-    { 100.1, 200, 1,  3.5, 1, NULL },
-    { 200.1, 300, 2,  7.4, 0, NULL },
-    { 300.1, 400, 3,  8.5, 0, NULL },
-    { 400.1, 500, 4,  2.5, 1, NULL }
-
-  };
-
-  /*static CHANNEL_T Free_frequencies[3]={
-       { 100.1, 200, 1, 0 },
-       { 200.1, 300, 2, 0 },
-       { 400.1, 500, 4, 0 }
-
-   };*/
-
-  printf("\nSCENARIO 12: ...\n\n" ) ;
-
-  // ========================= Starting sensing operation
-  unsigned int interv= 1;
-  float date = 1.5;
-  unsigned int Session_id = 7;
-  prg_rrc_init_scan_req( s_rrc, date, &L2_id_ch,Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq);
-
-  //prg_cmm_init_sensing( s_cmm, 5.0, Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq );
-  // ========================= Remontée de mesure par le RRC
-  for (int i=0; i<3; i++) {
-    date+=interv;
-    prg_rrc_update_sens( s_rrc, date, &L2_id_mr,4, Sensing_meas );
-  }
-
-  // ========================= Transaction
-  /*date+=interv;
-  prg_rrc_init_conn_req( s_rrc, date, &L2_id_mr2, Session_id, 1);
-  date+=interv;
-  prg_rrc_freq_all_prop ( s_rrc, date, &L2_id_mr2, Session_id, 3, Free_frequencies);
-  date+=interv;
-  prg_rrc_rep_freq_ack ( s_rrc, date,  &L2_id_ch, &L2_id_mr2, &L2_id_mr,
-          Session_id, Free_frequencies[2]   );
-  */
-  // ========================= End of sensing
-  date+=interv;
-  prg_rrc_end_scan_req( s_rrc, date, &L2_id_ch );
-
-
-}
-
-/**
- * \brief This function simulate the connection of two SUs from the CH point of view
- *
- */
-static void scenario13(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm)
-{
-  static Sens_ch_t Sensing_meas[4]= {
-    { 100.1, 200, 1,  3.5, 0, NULL },
-    { 200.1, 300, 2,  7.4, 1, NULL },
-    { 300.1, 400, 3,  8.5, 0, NULL },
-    { 400.1, 500, 4,  2.5, 1, NULL }
-
-  };
-
-  /*static CHANNEL_T Free_frequencies[3]={
-      { 100.1, 200, 1, 0 },
-      { 200.1, 300, 2, 0 },
-      { 400.1, 500, 4, 0 }
-
-  };*/
-
-  printf("\nSCENARIO 13: ...\n\n" ) ;
-
-  // ========================= ISOLATED NODE to CLUSTERHEAD :
-  prg_phy_synch_to_MR( s_rrc, 0.1 );
-
-  // ========================= Attachement d'un MR
-  prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr  ) ;
-  //prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr2  ) ;
-  //prg_rrc_MR_attach_ind( s_rrc, 2.0 , &L2_id_mr3  ) ;
-  // ========================= Starting sensing operation
-  unsigned int interv= 1;
-  float date = 1.5;
-  unsigned int Session_id = 7;
-  prg_rrc_init_scan_req( s_rrc, date, &L2_id_ch,Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq);
-
-  //prg_cmm_init_sensing( s_cmm, 5.0, Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq );
-  // ========================= Remontée de mesure par le RRC
-  for (int i=0; i<3; i++) {
-    date+=interv;
-    prg_rrc_update_sens( s_rrc, date, &L2_id_mr,4, Sensing_meas );
-  }
-
-  // ========================= Transaction
-  /* date+=interv;
-   prg_rrc_rep_freq_all ( s_rrc, date, &L2_id_mr, &L2_id_mr2,
-           Session_id, 3, Free_frequencies   );
-   */
-  // ========================= End of sensing
-  //date+=interv;
-  //prg_rrc_end_scan_req( s_rrc, date, &L2_id_ch );
-
-
-}
-
-/**
- * \brief Sensor node simulation:
- *      - the node is connected to FC
- *      - the node receives the init scan request order
- *      - the node receive the end scan order
- */
-static void scenario14(sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm, sock_rrm_t *s_sns)
-{
-  static Sens_ch_t Sensing_meas[3]= {
-    { 100, 200, 1, 13.5, 0, NULL },
-    { 200, 300, 2,  7.4, 0, NULL },
-    { 300, 400, 3,  8.5, 0, NULL }
-
-  };
-  static Sens_ch_t Sensing_meas2[3]= {
-    { 100, 200, 1, 23.5, 0, NULL },
-    { 200, 300, 2, 27.4, 0, NULL },
-    { 300, 400, 3, 28.5, 0, NULL }
-
-  };
-
-  /*static SENSING_MEAS_T Sensing_meas2[3]={
-      { 16, {{0xAA,0xCC,0x33,0x55,0x00,0x11,0x00,0x00}} },
-      { 25, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x22,0x00}} },
-      { 30, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x44,0x00}} }
-  };
-  static SENSING_MEAS_T Sensing_meas3[3]={
-      { 14, {{0xAA,0xCC,0x33,0x55,0x00,0x11,0x00,0x00}} },
-      { 17, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x22,0x00}} },
-      { 29, {{0xAA,0xCC,0x33,0x55,0x00,0x00,0x33,0x00}} }
-  };*/
-
-  printf("\nSCENARIO 14: ...\n\n" ) ;
-
-  // ========================= Attachement d'un senseur
-
-  rrc_transaction++;
-  pthread_mutex_lock( &actdiff_exclu  ) ;
-  add_actdiff(&list_actdiff,0.2, cnt_actdiff++, s_rrc,msg_rrc_phy_synch_to_CH_ind(0, 1, L2_id_ch ) ) ;
-  pthread_mutex_unlock( &actdiff_exclu ) ;
-
-  pthread_mutex_lock( &rrc_transact_exclu ) ;
-  add_item_transact( &rrc_transact_list, rrc_transaction, INT_RRC,RRC_PHY_SYNCH_TO_CH_IND,0,NO_PARENT);
-  pthread_mutex_unlock( &rrc_transact_exclu ) ;
-
-  // ========================= Connexion etablit du MR au CH
-  prg_rrc_cx_establish_ind( s_rrc, 1.0, &L2_id_ch, L3_info_ch,IPv4_ADDR, 10, 20 ) ;
-
-  // ========================= Starting sensing operation
-  unsigned int interv= 1;
-  float date = 1.5;
-  prg_rrc_init_scan_req( s_rrc, date, &L2_id_ch,Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq);
-  //prg_cmm_init_sensing( s_cmm, 5.0, Start_fr,Stop_fr,Meas_band,Meas_tpf,Nb_channels,Overlap,Sampl_freq );
-  // ========================= Remontée de mesure par le RRC
-  /*for (int i=0; i<3;i++){
-      date+=interv;
-      prg_rrc_update_sens( s_rrc, date, &L2_id_mr,3, Sensing_meas );
-  }*/
-  // ========================= Monitoring
-  /*unsigned int ch_to_scan[3]={1,2};
-  unsigned int NB_chan= 2;
-  date+=interv;
-  prg_rrc_init_mon_req( s_rrc, date, &L2_id_ch, ch_to_scan, NB_chan, interv );
-  date+=interv;
-  prg_rrc_update_sens( s_rrc, date, &L2_id_mr,NB_chan, Sensing_meas2 );*/
-
-  // ========================= End of sensing
-  date+=interv;
-  printf( "prima sns socket -> %d\n" , s_sns->s ) ;//dbg
-  prg_rrc_end_scan_req( s_rrc, date, &L2_id_ch );
-  printf( "dopo sns socket -> %d\n" , s_sns->s ) ;//dbg
-
-}
-
-
-
-void scenario(int num , sock_rrm_t *s_rrc,  sock_rrm_t *s_cmm,  sock_rrm_t *s_sns )
-{
-  switch ( num ) {
-  case 0 :
-    scenario0(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 1 :
-    scenario1(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 2 :
-    scenario2(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 3 :
-    scenario3(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 4 :
-    scenario4(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 5 :
-    scenario5(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 6 :
-    scenario6(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 7 :
-    scenario7(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 8 :
-    scenario8(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 9 :
-    scenario9(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 10 :
-    scenario10(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 11 :
-    scenario11(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 12 :
-    scenario12(s_rrc,  s_cmm ) ;
-    break ;
-
-  case 13 :
-    scenario13(s_rrc,  s_cmm ) ;
-    break ;
-
-    //mod_lor_10_04_15 -> from here scenarios with sensing unit included
-  case 14 :
-    scenario14(s_rrc,  s_cmm, s_sns ) ;
-    break ;
-
-  default:
-    fprintf( stderr,"Erreur : '%d' => Numero de test inconnu\n" , num ) ;
-  }
-}
diff --git a/openair3/MESH/RRM/GRAPH/Makefile b/openair3/MESH/RRM/GRAPH/Makefile
deleted file mode 100755
index 069b1c714a..0000000000
--- a/openair3/MESH/RRM/GRAPH/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-CCC = gcc
-
-
-OPENAIR3_DIR = ../../../openair3
-OPENAIR2_DIR = ../../../openair2
-
-OPENAIR3_MESH_RRM_GRAPH = $(OPENAIR3_DIR)/MESH/RRM/GRAPH
-OPENAIR3_MESH_RRM = $(OPENAIR3_DIR)/MESH/RRM
-OPENAIR3_MESH = $(OPENAIR3_DIR)/MESH
- 
-GRAPH_OBJS = graph_sock.o
-
-OBJ += $(GRAPH_OBJS)
-
-CFLAGS += -DOPENAIR2_IN -DUSER_MODE
-
-all: graph
-$(OBJ) : %.o : %.c  
-	$(CC) -c $(CFLAGS) -I$(OPENAIR2_DIR) -I$(OPENAIR3_MESH) -I$(OPENAIR3_MESH_RRM) -I$(OPENAIR3_MESH_RRM_GRAPH) -o $@ $< 
-
-graph : $(OBJ) graph_int.c 
-	$(CC) graph_int.c -o graph -I$(OPENAIR2_DIR) -I$(OPENAIR3_MESH) -I$(OPENAIR3_MESH_RRM) -I$(OPENAIR3_MESH_RRM_GRAPH) $(CFLAGS) $(OBJ) 
-clean : 
-	rm -rf *.o 
-
-
-
-
-
-
-
diff --git a/openair3/MESH/RRM/GRAPH/graph b/openair3/MESH/RRM/GRAPH/graph
deleted file mode 100755
index 08b1c62f6d573ff9800c5104e965bc22bbb2d948..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 22641
zcmeHveRy2Ob@%LQWiLipwsD97H>`+648iLU46zL%l2=!jg0vF)02|}1SJFzmu-X;-
zVOta@GHZj?ML|#FQqm@=2~I+QrcNM)ymg9*{US(cqwu=aq>z|mh!i`)O;zH8g8KW-
z+`D`4UCB64|LXJR+M}5>=gc{0&YU?jbMM{zIjz3N;cy7!a*85B=-9n3_bTKk*DK5_
z;Sp}JM3jp%F$-11t?CC2l5BuR#i(;36%hw`)lT4%&Iimy9C<Uzi*1o^T`L3=+lzS$
zU-Bs-N`B&UGi^bG)Ept@67K|=2Y3%~OrwCAs2620)uK%;WHWgHGa0xW-%ND^EVzvJ
z&A^-GPk@q%?Wy~+Xrz5vv~y`R5=(FQCga|f3J29Be!ag9C8Z~MmLknZT8#7|BwiOG
zEkL>e>0%^avyncG<VK>sc%6f^2x%b_?Rut*cA4p-ZO=oZ{^ufHh{XO-H|ou6E>Z~+
zb*0`gxx6Ts^lU4~$aC4HM6iy!KYqg-!)tz<UHrsXf5$FauB%NDk$2c&@-!|F3QY!p
zob>nG;Lq6LXKe5%ZSYTR@Z~o6HXD4W4Zhh1*V*7lZE(m2f5iqrY=i&O27l8Af7=FE
z+u-ln;N>=$em1$^<>pw=$7t_C-al%<i^NXAyG*bM1iE|Tu|P5vOr!z<0ax#!i(exG
zb&aU)jKl)zWT;al;~lq$QX;fHk`l?@L?o8#61|~BBAyVv=~PmrW0)Sdi;iG48t)Lv
zR3aLRiJnkT5{=p;u};w)O2vE8Hk?j%#<xjaM{l1%T`<v&2AyCglA%~<PqJHdZA(N_
zArVZ)BcdZ3PliO7E;AVog?dFI)UlOxfdCcOweJZ=VxlV%3W@dgb?bbAm0nuMDdPwK
zp4~r(q;tUgIZv2)&5J}Zot)xj1&ULML$feZXxm~Koi;7z<Ul?fPVQok3F>AJx)SCX
zlzGfCsTMNFq+7%sfnYIn1Og9p1c7qqn2<}DV*+2v9Fui9b7-=PIVSLG=9tviF^961
z%rT*>nPWoLGDmQ!XO5uK#2i7Xl{tdZ2IdGtw=zfIX&ZR6C3Dg>#%^xfdFXlgfA$NL
zQ&UsBUrH5^U60za%h9c|&X1t&rWX!PU40ssn5vk>U$&X5pasG#jvqs_sR~*mOx*aW
zglUm5%{o3TVOl24kT-rn!n9D>LwKKrX{qoM!b1|K#lp)8_e+?T3$G^JD`8qNTuFF~
zglWleE#W2!)1u)f!j%%HWy2c?FPAVa9Nt3MBVk%P%npsulQ1nF?j<ZFOv{J26F&7m
zDk?Yv;eNu$B+QWr?;$)YVU9?6i14t4IWpk~2_KL!M<~3H@IDE1q{5F79+EIeEPQ})
zzl1q*;in1r0$%a!&kVetIex0CwK-ggI1p~apBrxqUoqfvk39o|i6P6Sk9Yqk_kfK^
zS7twS9|}(|!f-BKh(FJsb`EZsTJy8yC4)~vh8SGuc$gGZ3wIN($k+TV@yq9m$-$91
z?Ao;X(BM`vc<^JS2mj1T_d|<8yL&jbfO-lP&KYr)vu<kig+oJ<W(jJ<*P!HIK}nRk
z2#x&)<*eo&s4g!VsV;Y43OsU`%w6UCAaLwlIB(|kRQj9|?Ig$J#JY!A&#DiB%}TOd
zPnJ6RqY@2{ZpGLIqSYk2R1s0ZtakE+Lxc6@E*Ns^j!Ecu<Ia=2fEZ}lJEC!GAV#!P
zQrcx%Z6b3zl3wu8E=V14m5;sq`>Ck`?bL}9Fec^LMly!HZIF^}+nZhIf^-*4PSW2d
z=_fKfCZ^Kg8PUctvB3Q}7xxkE7(xNES2rNb>^P;m$vwr13vwWr_Y<?xKh{Haa)<0Y
z*{KFFM|ls+-$psBoubS?qe{8~lZ((VZ8WoERFv-84<1=<G+XKF8qnVD%ItVoq|QM_
zX1HWPdl7}wrz(p|pBf&}4(q^mMcZKd=OJ30*pTTt?8@vo?D-t4xYVD}P*sMiMY4*W
zI<XQ}7ouv8tl~JIxWvR+Y5y2Cz8`^Se7;oa`2lSxvt!6ny6Z|XVJQI~L(bA&uOQl?
zR8+cau^W@%Ac9=B?eIX`eVHBiiBu{60`++)GyWp}Kv1^Qy_9iXx6_N1Q~^m@?Zp9Y
zIIF#CHed-59LTSOs8<plH=}?39@`CPo7^MXp8wa-J};~7`Q5(_j6ORyODC&g%jYDS
zh4B-p0^?5;{SAq>Fy3o0E;%FPo<hdAD8{X1>@Q?|t<Jb|wOPT6LOu%=pFZ;0s>=N=
z-&RQa%Xej84ibHXBAsCQQ<Bu;kOx6JzEgSSqHloa;zD*0Dt6UGPoiw|={~Z!UOKbx
zj-y%aFnZ%2XqBG7iw#>ywFp%7$I^R$hBX&d&mMDT`$wNf;5nvT&PiuhF83sxEoQUV
z<v^3U34M&{-~SiTKb#Kjegx>B6aDaX=;cH|L-elc(5*!8BRVu4`Yxh(5?wPLdOy+a
zM1O2L^eE9jqTSP>PZM2E^tc=gTfdil6X;^1e>5F>1JQ4t2Kuq-(EUV@5PcueaQOYK
zxD4!U6YXKp0R24Cvw=q0^(e~ksrqu3-$vQy3{kRPp;%Xw=Esu8GSzBjmC>!tutOj4
z6zM-+$a4{Sz6M92x}@1w$aCU%5<N=v2B1M&@)*kXs$9=<rEF$#{~w^)_}yS#;C*+o
z#aD>#kZ8oBg9SwUNYn?SERa}7OLvVReA+CzQK|N0(l$t1OJrHAH?QQf%7sEksB&3r
zG248_=XLTaF68suca$2HC1yUa%32Gb7f=N;GLS5ld@Lq;6zK7|bcka*C%JU}xoS2}
z@$X2kmS#ydTP>TxR8JR}N<5Bse)7<c!bW2Jhcfyf&9*&_#VlKWH})f?yZ)und>1LX
z%h`Uelxs2Hd;iI9A01o>vp=1!9<o^R=Mrh@{f|+F-b*V!BheOik1KYL;lU=yGz<p|
z8Q!TFN^>fC7Q1W$di<rrZuwL*KfCn_$<?AqxvZL@TeBt7(yfV!e7D9>&T1BR|17JH
z&eW}^B-+C8VZ~5(OUbizYZuTN?I>)-5zIEb){K_ky%gJ+@m12Lre6u7>}?&Ij?V=Z
z_Z+47X0W9)R)W^=tCavA^km+H@)6=oY=2InvhVx{d(550;E=#Z(Au^YE0LO7&$Imt
zAchCb`&*QMARAgt^{A|R@`JVz8A)a_S+8O&w-B9$jBhj;pLq*$MIqx4E5@s-@t;bx
zWh_qr76$!+^ocR^j6H^WbhMYvstdV3tI&Iiu22$Av3y~nga;^ro-Frd2eR4$>_~SH
zr_*^u>w-V_EpX@txh)8`%Blmfs;NnSU~1WHxl-r=%X=lgrJM6nHU4tp;Q!aZ%Wl5J
zW}6j@w^_ciki|cNbo>jF1zhZLlPbzTO8yS*z6m0m_75l#%ZYwhq913tPnTykON@*u
zx)kYNLV0{Xf*gimKP#R!8fL~E1KQCOHMTjrg7~(hS?E<i1T!5SY=Rz-%a~T5cVV)c
z1=38<Q74ikv*W1f!)&p*;+vQRkUL4@I$dt1OBdWnt|Bv5G@u<h(VlHPk{6k6dt8sk
zYo1N}Yzhv^nRR5a$(d^a03pDx<MIO#+Yagzb22?giZVNnh`tANy6&{;x<=_5W}`1l
z5td=U2vy_1kYkB4dnAkhJh9FhDIUTJ5B5d$u(<vB+Z;b*d!hT~)8zgWiLn^!AgW-f
z<3xLuBA0&~<%LoaDJp#d2sBnskywg_R2&1<LdIL5wk~xkt{rT2ixg@JG3!~yk$%L!
zU@euz77Z^_yta|o+(KUO{YDSOc7C5_gV%ty>GmU3p+gy>z2KLN;*Vq(Fo>_fIhvYP
zu7;J@8|GeV^YmSc%RX`$D-;q^=%YlxAkmgFtwGiJx$sLU;{Fb3z9wmGV^&Yh#S&w&
zh#OUCm?Ao=%1^VrMUq+sz4mJe`l=jD8}pNF@ee@T%<~wkz<k~lK$j}!wJaAEGVdpI
z-gmG$U|4ds$-9e8{DtzaRq`Go`fnuK(t*XO8h>35JG_6tP15_g#ZutvV`Oz)Vk~C+
zDXP%3MNa~KwUlIW%J0Y)`#)&i%N8=;t{BU8FDlU%#v2XBXI}SK7Bap>F_uT?^9vaZ
zow4=k{HqfMWBM<sLeJ%1=32$`R$5`1WMHxP;~*WsLyom=0EgIOu#owkvdTt$fW%vr
z*wZW@mQ)r|Rj3-DB}HLq_Z5ueN4|@8i)A~@IG!V`_GN2VXVJ>Cpw^d{;LL68c2<+Y
zzy3=0T`KXZLM09YJ-$<V1G|8GNw&lL9x{1=RGUDBE!)D<dw+;qKE{@<U*EFX4DckI
z1=y@S$J}&yKT32Z(Z$oDCy6d2`Yky`Hs+qEfOZl+G99{>=r_g-++Y+{a03}|R-v^~
zUV^gi82dGlj^8#N^Dvp;L-Y;Pq3<KQo9HVg+A?yDCIy~A*(P+kLVt@a_DZy+^?ZeX
zk?6E4%di)bq!!nDYYYlJCP&+5x>IaD0<<mcJ&7vVqvU%)FH+1`vs|LeTxQ2kDVpu9
zpO7ppLhnG;_%((8x=}TgX8%E9v$e9yrsjUi@JNis2InbWqeN34RGwrxq{>pwI#phc
zyGmmXDBG<3qhCVJ`{j^RXraf4*>FFpB4?m_kW`-~l~1{ny!*Wa8tgpGThkji4+bZ5
z_tJ4Q40VDx%jJz^SGiR6H*fLY^kino<WzbQ`f>!5Y3%!`)bEauF98|ui)V&iyki~H
zS&$WP8^=KjY}ZJo%R#cirde5SA$B|^S*-+_yg7diJO>t*kNx&dNt_v;#imcHri9ei
z_f3laR=yTA{eUvV&H?Row(Ydi!iX+eZIWC*PYV6c{@Y~mdk8V^?8jx3#B_>3rF4Pf
z30?72PVsqm#n%{$r*u^(D5;35wqct*Ie_ix<bZY(<NU%Q^?U=8vpHi^(PG6TE6sKq
zfKFLEqD|78Bid;`dC%-95os(_FY;N!_;J+0klD%-?1V~LYI0?@(}ON)5=}k=VJls&
z{+~jv>!ct>$(Dw}Fu3;-zZiHts~{~{4QLa}NZ5&EJIV1K#1jGSRXk~+gW$OX{vsP=
z#$L^%ISCAEM<|ygyWuz<2M+hGL|>>k$OfBWPnf_Y{r5E5KY<dO%>O?qH=`^KhsOvn
z>gL#xHwR@<E`(vzLC2*+wB;*r7)~qFD<0~{CLD@LW5|aiIwizZP|RObq;`<(bZ^F3
z9pgSmJ8ty-@QC)j>iaP~)fmx6Ro{=Wk-p2e_5HBX_q)IzW1rb^Qhe?@i!yi^D_ubH
za+NQmGIRAlqZb|Mg`pRp{vjS>lvg0jen{_=oIcm19gX}3=yk7Ol5cuqgEZkOJjcO_
zSU#1(h)$Tz_2|D*!_%1^r$y>Q;GntmTG)vm09D+1*8d1%=@+=ycu*gdMbgbVpXF#*
z;~qL5(&-oc9gp`?mzkdL-F#EaSR;D0^UxPR4wpVzGWNaKr=|w~ei3|QFvGu>k32i&
z+&z^lU-3>>lk-i*3n;`#W>b5gAXVl$$C~#OKhGR4+4Pyf=0n-V<&X+_d>;J}-wVRb
zPo4kwEOiZKPPnE<vqcOB6B+r;F-I$X7tgLspv~A~^mQYiQ}ZzspX_h)H8(c|Hq=!4
zw9TGKERynchCI=a;dO>kqAS=D@`z=rp5A4NL{C6}<DnxGj0>?o5$p{|@OFczE=TH%
z$6}$5RH)PI^?JzH6YuiG;$T?O>50cYiUEK*BC=Loyy>dd*Is>XMQ0CG5e-#!e$N@1
z3XLyUlzG}>x5x0lgr_HzOa{BjyR57XZwBD`e2eC9sq?Sje7)?|=Cy52)m5!pK(7uo
zYb|Z{tu3Bdx~Dyqpi*;0ODL9%#JbV-u6Uv+n2JD8yi5^_Yz=jKx)Sjo4_?8L6loeK
z*d9-(P#?M@9g1~CLP<#@z)CdK-suU(P+)1!Iuy4>I#XfVAQ%fq`|bq8WV*c_h~!$2
zxS>|QYSY%+387E`WOz{o_B7<7KG+^ihCJIM-~yebO04z3zU*&nBAD!nB$Lz`%~Ro!
zCl=af=}Iatt83Dd$QR;RiJOBFDH1(KgYBuD$TXD+N%jS{)cn;sL;4#1HFeDmRjqZ6
ze&_)k;<cD=Pe(k~6)}tmg_3x|rI)?dEeK^SiWvRa)Z%a1d~;Q^A7i)HgV$I*X?=`g
z*Ce{%5eAoFQhE;LaddsTL9Xar3oy{UE}*rvR;{bAYpLZ(H(_wkiq==t0MeOwHZ)e(
z)ojc&`~W&Io0(U$R<BjHXgOxn@@i-fRJFEN`Dz1o{^~RI!EovZu*`9s!8X1PCfg{s
z)5>nD-56-u=!fjq#sCxnDO}A<Ek2lDX?#X{i_T}z17j(>rCY!%8-v{3nsdcw?Z!5Y
zyJ$?{eJKw-Ouo34bGcwgDzY__>a)#hiyMk65~-<AuQktiIn&JZ#lR*)$#gW8RCC4R
zkNJtx5~%XE*4<Rsx-npxF_<q&Og%WaK4X${l42Hd8XFP})$RT?Eq}udW;?`t3wWK;
z48j-h>0tzuR-CSNDiMq!;-nDbC6UQeoNHz~Sz<w99F=ypjw>f|oxiR%(9r0IL*F=^
z@9P1*Mt0ZltJ7fOmX^Bpeyw_r@P&g|f1=b3Z|JR6(VKCWHNqeFbSQ$PC%82ji3Z!F
zA-i9nfj>OX2bB<Wl?i0bju||4Va;;om==|bMQ0!AWDIU>rlTMz7A$9+B5loDgXV8N
z+jUHN-4eCX=+R!ShHD|^a?Er3CiOS`d-?@Wu6A?GYnS1*xm61*j$~t7wl=N90xWye
z*rfRb=8?oiZr<pDos<<B@}UM6+9X$8ti)X4k|B6jXE4!+l`FL^p19pZh8SRO3M55t
zaM38gOe?3zuT_BA(7f!cu1?z=TZ^{bFjTeNVAfmt=}bE3^@UF+JRikaLUcH|HH6;j
z4#}Dh%suQdI=KGI1-~WN(KfxIT+iy`@!M%wuHAW64bSGZ^2cML9OsD1*@<ikZe?pj
zux?&C8!;DZd=^Kuj}R5e_46z(r$){iZ!r}MRhK==ciOLyE<_5mpBb9x{7l!~BQKvG
z0;IdZ)cWMtOJ-xRFD;=cwyXN?$?PmNZeA6`(WIoak&~2s;lGlPUyd8*mE0rglMZp-
zERb&$d)oU<LXG~zH7v%<?U{1($k^oi1C2gkTT`7@ZT3zIm-Y+UVn5p#PVN~M$q$0B
zw#x6<>OI(6SFNjR(L8HKi{H~3>BLr_TS?j!JKjFS$;31!lbhvKTyRbaM(gQ&58XYU
zrPq7(VNGJXl2}^G?+GTb--XD$FF|TgJP|6BV{5l}yf+lH7+ntm%7L!<A75NcYCS8|
z43Z0(ud%*fZdBxQru!rYq}d$Qg6KjRk)b1+PGWPeVnGzEQ#`>~fF2v66&*ko+%;+H
zpMmTRCW1X7Fu+~{n;^NvNOFInPGtH%C8u9YYhx2OCAxlUlJZ=Z(~V59eU}lnBW~!!
zxiY;*hJVXOhEnm|rff!i$Xl7rs*>C>ne_7IbwKF!>Bg!J1<!61CC4T&s|}s6Z);K8
zNba8HxiCLMGt3#2AxugX&LT20<{iVWX;+tvTZQYRbVTz))7GLj2de8@uzB=r*hw}b
zl;p!w8<z#lpKZYy_MsRrd1g<fdod$m(+Da%(uo9)e5S>P-s5FVFvd%dM`+GQR_;m5
zvgfOB#M!03&VPeyZ>+-wddS}=SY;ZqKn*CSu+$tv^&<ATbxmh|1l;6nXfPlD00wZx
zY0+9SuGkt<zZqz9$2k(sK$AbFf#?HhsxX73#OdhtbDYm#Gd&-*+ijN7VJ4kbAmNFY
z8)AzT%RvZT&hP!@(Sgy!n1~7Ej)t8BqJVxVg94^Alxg>$4?Fo4B=0}@Db8qN$TQ9^
zGshzHS-}!B%m)W`yt3*ncVCS-B;Qn3SC8YqW?k+4A*>~~)s@R|GPj+g%OyRumoW#7
zO(vS<*AjiBA!pV!E3jGrX&RY#M`~WvXU~4?FE+`0VS(+u2lt1xd-=~@?m2@l_vJ_|
z*COxM%l9DvnqEGP{0$`M=UwhHB+^#uc|gxuXHK8h>zCf|a=(J|9^?l88+!SrA(wmM
z7hLX!y)O5*zi_!f{+D>8>_PnQ;)~GfuUzi`i~R3^`{G~YH&|c7&liyX^lx15xAeUD
z%L*>nbK;nMHh7;2eg@^ABL%+Vavwp$K6<-;vr$weD>{Wb?^Gn`s9#=H^F%=?cSG_@
z-1Ri-)Gw~qnwhLi<346O8l5AW)^QT>r&fV<Y>tq>_cGP2^(^0Bv3%ur&gMT}f3(0K
zE$~MR{O_><o;giXTO((gPw(*CAo;s!&pj?TerhRR)qhVL#&662^ZluK`Q7-fC+T+K
zH=xLy05bv}L*kFI*q*<|;>G7q6L@09r|`o__;r%}y)}NdCbsN$x$)yAQHz|veZ~*5
z<nO@wycKUY$CscUy2Ysz-ujB4f;<%e;ETVRHyU-JPg{}hL3#k`>qt)_J%{u%(pyOH
zAkDhh<-P#vGNfyeYLIS1>O$IzbPv)4NMA>K3h6ndmyrxP)LE?e`PO=tw6&*WskCR6
z_bTsIORr8#Xw~Hk{{Nc>CgL{&=o{+S`RY3imr7XuDM#iMzs}+5lf=^}jc*2!QqhHA
zb{9cW4?316bl;Vg_)~`D6kG6j5Gjph`<*vx#H~oWQgR&maR}!gm)q-Imh4M*hI*6B
zB3G@xW?3lOwM;&L@V1C$?deFgQ~m8+*3F+~FJ0+fv#cYT7WhDdr>e!X(z{}fcZG2D
z4@mx;3i2VpaCD)_Hyd0K!nBD54)+FT&e=R$I$g7GP+5({&ALV6ikBcOauwq&D4g!%
zepb3?S21%H??&cw&2~Cw1yL$qi9e1D@8#d(BK}5x7N1&+6p~W}@Ym(In-#cb>Wu8;
z(iDDTE)9S$LbP|Vhs!z=smLE_gnGzv%I_n%99P239?Ipj=Z=o;cdS_vYxE{()MGlM
zI_8Ucv*tS%IEvgCyDQx1GeSA$J1XX$e{Rv-i{}zE57Ek5F3vsodQ`z~dJ&Trzi?zN
zth7oL&0Tx$wddBI|EUruqS~y>L>(PXvTvJZVGe<onwvrA6w=O)_vW4_@SzcOj4{<Q
zjq3<u_zsCgv6F6AG%Orfm96?@#id1yJR5H*yY$vgPW%?%@lnb8Psq*ATJSNxw}U*y
z*O8n8&+7}x{?IWMCY8HGu}~rc5&AeoVG8ZS9|)FHrP#@-Sv1#Cwyf-vx0H2vFI(m;
zh8B4Ls@TcdT69wAIOi<XH%Uz|n^seJ0Yv59K(`O)bkQY_va&L167c2hE?Sza;XL!{
zfpw<t(sh#Icp}C7C-%u7jpOc({FBCGk?t7ImZZu7I3y+vb1Nn}6zTHK3CYV?TWOqi
zNVLS;ND7-@d)c=pB=+dE2`{|Kz8<_7fIO8@dDtjHNGQ=Oyttzn@>Z>@Tbc@X3vYKU
z?F|Q$Vd3rUi=nZ~QwfFHio-B&3R!>vaEVZq^s3MsO$jdtSa?%-UqE;{&_Km`H%oX!
z;XoJfJ_>I~DxOF}fXZ&`03$F7_P|xV-ElO;AFt%5TDB)a%|{=&O9j$Ud%8P-8=0~0
z5V=UOH{A{fd6*|_0~c&>PlUD_5Wcqo6;vyj#3<_Q3<IA<&d*lR#puWK8$JNcYm0P0
z;5Y|o>vZy4J3x2<8<$#ngt!_Nj6USYJyRHTd?AZ<yhz8i0tr8`i<6Ffs&W*rMA=Sv
zE$X<hA|3ZyO(+b5C!(3uo4mN^@*x!=k&b(_c|aUP*|^X|UR+4HuOc1yRHs0<8f8N+
z>zTOxa397p_hL&x;6d3e7og}y;;U$+<6f>7bll4s{HPxt9+Nsp$GzVc5DcS^baM4W
zPP#rM>Pk7BHy#w0qikH{$BR?UpyS+W0^N|&N#IDw^f?n9W9%^u;v_d7`bFFE+KpuJ
z<2-$}T<uRJ5`PT2S)Gpk<y<`tx-G_r*F^UP6Ws>9*0y17o(E7leqYw<ICgxyi{E0(
z1qc(}eiI!(KCy5Hy2ng({K&*&&>6Y|l`9`WnKq_e`E4oCjp}vCBpvnmJ`(LhI)3-%
z)HM9a{~t_r-1AR>E{ZziA`R0BlEH5aUT54=sm34G@-lS&M?jQMxqL-1T8RQ3O}{*P
z{t|N2unW?8Och4)Uu|?lRmvxIHaVOB%0?&F2~lAXnQ-r#%0yRy?z@IC6K)pjOx5CN
zKD;K#2Kr^-7TV}GSEJts60}B<ePh{}6R&APeBNND(-Hr1oz6h@)(BB)0LTp=;~9)L
zHm(DpTSEr=WfYk^jY{PAHDLb2fj)}z8YGSz=Msm=%&)!`wlM}3ID;RG1sCHlE7e!o
z5KnTjlFWFj@Ja&Xrh=6K#zzG+s;D@qV0yZWcM3)jz{R+xV42DIrC{Y~j8h6$_xKo(
z6wHW>c$|Y7!PNPMd6E43m^!B@7#mJp#@b#azeI)@i@2chw49p%3g)Qbyo`CIV4jc>
zk8-eDp^UR_kvv(e`KjntK;k@9Fu%Me1m~NAc>-7SO2LfS`Kw5N?aT~clm}2M%6-L6
zRTs&VT%M#zaIc!biUhywlD~??C3yg)BH^+4g-iVVlvGrwB5Yoh36mq^B}p8(tH8C>
zu$Kd0Q$x7T*~@_yeLdiLI9(xwAD<^SBbOiTLGHkc#aP8}`_PjJ--*1}L~oaW5AgF$
z@)_@q@#NRD9s+EP7v=vg-~(7MkV*OW{v9Ghzu3Q@pd8NW^I`ECVEzWv(C?Q9F>=yR
zAUDR_;k-c1!9+9cBb@Wa#WvUr*zg~RbD{VIV8cH=_%h!*z{W-IYXe*f{W-H1z<xY!
zb3G*u;i!$i-voO=bH5FK7%=Ap`@?UwJqnoXE<o^`D-M|GDW6|3xbq>GyA(O)@wN4V
zue#iSp~J5rH!jkjw88J&;EPScjPy$ZPnz_(&W5iC+ywbofR^$%0ygY55BBP^(QmiG
ze+HQAnCkB$@g*DnTQ+#u2EPQj6Ybf@`OXiEUjXKZsua9HoCM6zUEQMVH)(4>7a{W)
zo~`ui_PWRvq}l%~Z17qee1i?%Y=e6NM|J(?!5{Ae{1NEG$U%GUw$VQTcpvDG0Y4w}
z?JI!$Us3&G`-g4xPuSq+0Q0L;hCPo0Hp~A7VE*uf3my3%2fP>a`2k&@{{U=U?0*p$
zJ!<%$^E`18V1763y9k}s{}RAP{9nKwIgdy<|1#5$!Z;r%Q|YcQ)CK~+Ry?=F`^l~N
zu3#WgZGk@RGod=;f$nI$Js1thlT;v>-Y#%T>W$(Bk52D3*IaeAAR-Xy+)n5dLLR>Y
zo#~#QK0^*)6Q!7%=BfrQU_caOl=D*Lu}w<p=4<@{93-J|S2Wliz*#aNzj4^&56Gvw
zA)#pa?2NryU*EW{sy@(IQ-kO40lt8(Q7mnMqg*1`7r+BGYlXbcAp+GK{Z$QhKEb1)
z`eLE+A;rqd{09s5FB;;Q9+0O_gHr!&qLtM0>BhjPw+5O+-4VW4<BJB9NgN^rUA=+u
zHe@`&;%$3888mai^Xtw4AMUYtf=~Jg305OFQ>rgHnrjL^y=X?NFGHGZY_}QlHdx4v
zmM>8lKe-45%r=rAo;1^{FG-qf)Yl`;HP9Ddmo(R?Pg0s|)F&&=H4vPP2k=r|C*GCS
zUDj|P`JqV;3x`^$uTh%Y@_j3#1N`8n8OQHfnqk>nbA|ferKP4&LLh+q2ZlfBBPZnd
zFwG5H0@7iH^h17{(~Q&~=9;V22RO|&fsnjgv97JAM(~F)@}a!yHm8P#G!VIF^)+6M
WNT9bPkP7364BqzbLVk%;wfJvL2|XqN

diff --git a/openair3/MESH/RRM/GRAPH/graph_enum.h b/openair3/MESH/RRM/GRAPH/graph_enum.h
deleted file mode 100644
index 1a61b4842a..0000000000
--- a/openair3/MESH/RRM/GRAPH/graph_enum.h
+++ /dev/null
@@ -1,196 +0,0 @@
-
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       graph_enum.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-et des fonctions relatives aux messages RRC-RRM ou RRC-RRCI.
-
-
-
-\author     IACOBELLI Lorenzo
-
-\date       20/04/10
-
-\par     Historique:
-
-
-*******************************************************************************
-*/
-
-#ifndef __GRAPH_ENUM_H
-#define __GRAPH_ENUM_H
-
-//mod_lor_10_05_12++
-
-/*! \brief SENDORA scenario active: flags to set at the beginning of the simulation
-*/
-#define WSN            1  ///if wsn = 0 -> secondary network, else sensor network 
-#define SCEN_1         1
-#define SCEN_2_CENTR   0
-#define SCEN_2_DISTR   0
-#define COLL_CLUST     0  //mod_lor_10_11_04
-
-//mod_lor_10_05_12--*/
-
-#define BTS_ID -1  //put -1 in case we are not in SCEN_1
-#define FC_ID -1
-#define CH_COLL_ID -1
-#define NB_SENS_MAX 4
-#define FIRST_SENSOR_ID 0
-#define FIRST_SECOND_CLUSTER_USER_ID 5 //add_lor_11_01_06
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-/*!
-*******************************************************************************
-\brief  Enumeration des messages entre RRM/RRCI et le RRC
-*/
-typedef enum {
-  SNS_UPDATE_SENS             , ///< Message SENSING->RRM : update of the sensing information measured by the nodes
-  RRM_SCAN_ORD                , ///< Message RRM->SENSING : order to scann indicated channels
-  RRM_END_SCAN_ORD            , ///< Message RRM->SENSING : end of a scanning process in sensors
-  SNS_END_SCAN_CONF           , ///< Message SENSING->RRC : end of a scanning process in sensors
-  NB_MSG_SNS_RRM                ///< Nombre de message RRM-SENSING
-}
-MSG_SENSING_RRM_T ;
-
-
-/*!
-*******************************************************************************
-\brief  Enumeration des messages entre RRM/RRCI et le RRC
-*/
-typedef enum {
-  RRM_RB_ESTABLISH_REQ = 0    , ///< Message RRM->RRC : requete d'etablissement d'un RB
-  RRC_RB_ESTABLISH_RESP       , ///< Message RRC->RRM : reponse d'etablissement d'un RB
-  RRC_RB_ESTABLISH_CFM        , ///< Message RRC->RRM : confirmation d'etablissement d'un RB
-  RRM_RB_MODIFY_REQ           , ///< Message RRM->RRC : requete de modification d'un RB
-  RRC_RB_MODIFY_RESP          , ///< Message RRC->RRM : reponse de modification d'un RB
-  RRC_RB_MODIFY_CFM           , ///< Message RRC->RRM : confirmation de modification d'un RB
-  RRM_RB_RELEASE_REQ          , ///< Message RRM->RRC : requete de liberation d'un RB
-  RRC_RB_RELEASE_RESP         , ///< Message RRC->RRM : reponse de liberation d'un RB
-  RRC_MR_ATTACH_IND           , ///< Message RRC->RRM : indication d'attachement d'un MR
-  RRM_SENSING_MEAS_REQ        , ///< Message RRM->RRC : requete de configuration de mesure sensing
-  RRC_SENSING_MEAS_RESP       , ///< Message RRC->RRM : reponse de configuration de mesure sensing
-  RRC_CX_ESTABLISH_IND        , ///< Message RRC->RRM : indication de connexion etablie
-  RRC_PHY_SYNCH_TO_MR_IND     , ///< Message RRC->RRM : indication de synchronisation physique a un MR
-  RRC_PHY_SYNCH_TO_CH_IND     , ///< Message RRC->RRM : indication de synchronisation physique a un CH
-  RRCI_CX_ESTABLISH_RESP      , ///< Message RRCI->RRC : reponse de connexion etablie
-  RRC_SENSING_MEAS_IND        , ///< Message RRC->RRM : indication de nouvel mesure de sensing
-  RRM_SENSING_MEAS_RESP       , ///< Message RRM->RRC : reponse a l'indication de nouvel mesure de sensing
-  RRC_RB_MEAS_IND             , ///< Message RRC->RRM : indication de nouvel mesure sur un RB
-  RRM_RB_MEAS_RESP            , ///< Message RRM->RRC : reponse a l'indication de nouvel mesure sur un RB
-  RRM_INIT_CH_REQ             , ///< Message RRM->RRC : init d'un CH
-  RRCI_INIT_MR_REQ            , ///< Message RRM->RRC : init d'un MR
-  RRM_INIT_MON_REQ            , ///< Message RRM->RRC : initiation of a scanning monitoring
-  RRM_INIT_SCAN_REQ           , ///< Message RRM->RRC : initiation of a scanning process
-  RRC_INIT_SCAN_REQ           , ///< Message RRC->RRM : initiation of a scanning process
-  //UPDATE_SENS_RESULTS_3       , ///< Message IP       : update to send to CH/FC //mod_lor_10_01_25
-  RRM_END_SCAN_REQ            , ///< Message RRM->RRC : end of a scanning process
-  RRC_END_SCAN_REQ            , ///< Message RRC->RRM : end of a scanning process
-  RRC_END_SCAN_CONF           , ///< Message RRC->RRM : end of a scanning process ack
-  RRC_INIT_MON_REQ            , ///< Message IP       : initiation of a scanning monitoring
-  RRM_UP_FREQ_ASS             , ///< Message RRM->RRC : BTS assigns channels to SUs
-  RRM_END_SCAN_CONF           , ///< Message RRM->RRC : end of a scanning process
-  RRC_UP_FREQ_ASS             , ///< Message RRC->RRM ://mod_lor_10_06_04
-  RRM_UP_FREQ_ASS_SEC         , ///< Message RRM->RRC : CH assigns channels to SUs (scen2) //add_lor_10_11_05
-  RRC_UP_FREQ_ASS_SEC         , ///< Message RRC->RRM : frequencies assigned by CH (scen2)  //add_lor_10_11_05
-  NB_MSG_RRC_RRM                ///< Nombre de message RRM-RRC
-
-} MSG_RRC_RRM_T ;
-
-/*!
-*******************************************************************************
-\brief  Enumeration des messages entre le RRM/RRCI et le CMM
-*/
-typedef enum {
-  CMM_CX_SETUP_REQ = 0    , ///< Message CMM->RRM : requete de configuration d'une connexion
-  RRM_CX_SETUP_CNF        , ///< Message RRM->CMM : confirmation de configuration d'une connexion
-  CMM_CX_MODIFY_REQ       , ///< Message CMM->RRM : requete de modification d'une connexion
-  RRM_CX_MODIFY_CNF       , ///< Message RRM->CMM : confirmation de modification d'une connexion
-  CMM_CX_RELEASE_REQ      , ///< Message CMM->RRM : requete de liberation d'une connexion
-  RRM_CX_RELEASE_CNF      , ///< Message RRM->CMM : confirmation de liberation d'une connexion
-  CMM_CX_RELEASE_ALL_REQ  , ///< Message CMM->RRM : requete de liberation de toutes les connexions
-  RRM_CX_RELEASE_ALL_CNF  , ///< Message RRM->CMM : confirmation de liberation de toutes les connexions
-  RRCI_ATTACH_REQ         , ///< Message RRCI->CMM : requete de d'attachement d'un MR
-  RRM_ATTACH_IND          , ///< Message RRM->CMM : indicateur d'attachement d'un MR
-  CMM_ATTACH_CNF          , ///< Message CMM->RRM : confirmation d'attachement d'un MR
-  RRM_MR_ATTACH_IND       , ///< Message RRM->CMM : indicateur d'attachement d'un MR
-  ROUTER_IS_CH_IND        , ///< Message RRM->CMM : indicateur que le noeud est un cluster head
-  RRCI_CH_SYNCH_IND       , ///< Message RRCI->CMM : indicateur que le noeud est synchronise sur un CH
-  CMM_INIT_MR_REQ         , ///< Message CMM->RRM : requete d'initialisation de l'attachement d'un MR
-  RRM_MR_SYNCH_IND        , ///< Message RRM->CMM : indicateur que le noeud est synchronise sur un MR
-  RRM_NO_SYNCH_IND        , ///< Message RRM->CMM : indicateur que le noeud n'est pas synchronise sur un CH ou MR
-  CMM_INIT_CH_REQ         , ///< Message CMM->RRM : requete d'initialisation d'un CH
-  CMM_INIT_SENSING        , ///< Message CMM->RRM : requete d'initialisation du sensing
-  CMM_STOP_SENSING        , ///< Message CMM->RRM : requete de stop du sensing
-  CMM_ASK_FREQ            , ///< Message CMM->RRM : in BTS, message to start an open freq. query
-  CMM_NEED_TO_TX          , ///< Message CMM->RRM : in SU, second scenario centr, message to start an open freq. query
-  CMM_INIT_COLL_SENSING   , ///< Message CMM->RRM : requete d'initialisation du sensing collaborative //add_lor_10_11_08
-  CMM_USER_DISC           , ///< Message CMM->RRM : user disconnected -> delete all active com //add_lor_10_11_08
-  CMM_LINK_DISC           , ///< Message CMM->RRM : stop comm -> delete an active link //add_lor_10_11_08
-  NB_MSG_CMM_RRM            ///< Nombre de message de l'interface
-} MSG_CMM_RRM_T ;
-//mod_lor_10_04_27++
-typedef enum {
-  UPDATE_SENS_RESULTS_3  = 0  , ///< Message IP       : update to send to CH/FC //mod_lor_10_01_25
-  OPEN_FREQ_QUERY_4           , ///< Message IP       : BTS to ask free frequencies to FC
-  UPDATE_OPEN_FREQ_7          , ///< Message IP       : list of frequencies usable by the secondary network
-  UPDATE_SN_OCC_FREQ_5        , ///< Message IP       : BTS sends used freq. to FC
-  INIT_COLL_SENS_REQ          , ///< Message IP       : CH1 sends request to start collaboration to CH2
-  STOP_COLL_SENS              , ///< Message IP       : CH1 sends order to stop collaboration to CH2
-  UP_CLUST_SENS_RESULTS       , ///< Message IP       : update to send to CH from CH_COLL
-  STOP_COLL_SENS_CONF         , ///< Message IP       : CH2 sends confirmationof stop collaboration to CH1
-  ASK_FREQ_TO_CH_3            , ///< Message IP       : user that wants to transmits ask channels to CH
-  USER_DISCONNECT_9           , ///< Message IP       : user wants to disconnect
-  CLOSE_LINK                  , ///< Message IP       : user wants to stop a link
-  NB_MSG_IP                   ///< Nombre de message IP
-} MSG_IP_T ;
-//mod_lor_10_04_27--
-
-typedef enum {
-  SNS=0,
-  RRC,
-  CMM,
-  IP,  //mod_lor_10_04_27
-  NB_INTERF
-} INTERF_T;
-
-
-
-
-#endif /* GRAPH_ENUM_H */
diff --git a/openair3/MESH/RRM/GRAPH/graph_int.c b/openair3/MESH/RRM/GRAPH/graph_int.c
deleted file mode 100755
index d70308c86b..0000000000
--- a/openair3/MESH/RRM/GRAPH/graph_int.c
+++ /dev/null
@@ -1,887 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       graph_int.c
-
-\brief      Emulation des interfaces du RRM (Radio Ressource Manager )
-
-            Cette application d'envoyer des stimuli sur les interfaces RRM:
-                - RRC -> RRM
-                - CMM -> RRM
-
-\author     IACOBELLI Lorenzo
-
-\date       20/04/10
-
-
-\par     Historique:
-            L.IACOBELLI 2009-10-19
-                + new messages
-            L.IACOBELLI 2010-04-15
-                + add sensing unit emulation
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-#include <time.h>
-
-#include "graph_sock.h"
-//#include "rrm_sock.h"
-#include "graph_int.h"
-#include "graph_enum.h"
-
-
-
-
-#define msg_fct printf
-#define msg printf
-
-
-sock_rrm_t S_graph;
-static int flag_not_exit = 1 ;
-static int SN_active = 0;
-//mod_lor_10_04_21++
-typedef struct {
-  unsigned int        NB_chan              ; //!< Number of channels
-  unsigned int        NB_val               ; //!< Number of values
-  unsigned int        channels[3*NB_SENS_MAX]; //!< Vector of channels
-  unsigned int        values[3*NB_SENS_MAX]    ; //!< Vector of values
-
-} gen_sens_info_t ;
-//mod_lor_10_04_21--
-
-int rrm_xface_init(int rrm_inst)
-{
-
-  int sock ;
-  printf("[CRRM_XFACE] init de l'interface ");
-  sleep(3);
-
-  if(open_socket(&S_graph, RRM_SOCK_PATH, RRM_SOCK_PATH,rrm_inst)==-1)
-    return (-1);
-
-  if (S_graph.s  == -1) {
-    printf("ciao");
-    return (-1);
-  }
-
-
-  printf("Graphical Interface Connected... CRRM of node %d on socket %d\n",rrm_inst, S_graph.s);
-  return 0 ;
-
-}
-
-
-main(int argc,char **argv)
-{
-  int c = 0;
-  int rrm_inst=-1;
-
-  while ((c = getopt(argc,argv,"i:")) != -1)
-    switch (c) {
-    case 'i':
-      rrm_inst=atoi(optarg);
-      break;
-
-    default:
-      exit(0);
-    }
-
-  //mod_lor_10_04_21++
-  //int colorbg;
-  int colorfg;
-  int colorBTS_msg = 30;
-  int colorfree=2;
-  int colorbusy=9;
-  int comments=88;//mod_lor_10_04_22
-  int i,j;
-
-  if (rrm_inst == FC_ID) {
-    //colorbg = 223;
-    colorfg = 21;
-    //dbg_color++
-    /*for (i=0; i<256; i++){
-        printf("\e[38;5;%dm",i);
-        printf("%d ",i);
-
-    }//dbg_color--*/
-  } else if (rrm_inst == BTS_ID ||((rrm_inst == CH_COLL_ID || rrm_inst >= FIRST_SECOND_CLUSTER_USER_ID )&& SCEN_2_CENTR)) { //mod_lor_10_05_12 AAA
-    //colorbg = 103;
-    colorfg = 11;
-  }
-
-  else {
-    //colorbg = 223;
-    colorfg = 21;
-  }
-
-  printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_21
-  printf("MAIN Graphical Interface Connected\n");
-
-  rrm_xface_init(rrm_inst);
-  msg_head_t *Header ;
-  char *Data;
-  unsigned short Data_to_read;
-
-  while (1) {
-    Header = (msg_head_t *) recv_msg(&S_graph) ;
-
-    if (Header == NULL) {
-      break;
-
-    }
-
-    //mod_lor_10_04_21++
-    Data_to_read=Header->size;
-
-    if (Data_to_read > 0 ) {
-      Data = (char *) (Header +1) ;
-    }
-
-    //mod_lor_10_04_21--
-    INTERF_T msg_interf;
-    int msg_type = Header->msg_type;
-
-    if (Header->msg_type<NB_MSG_SNS_RRM)
-      msg_interf=SNS;
-    else if ((msg_type-=NB_MSG_SNS_RRM)< NB_MSG_RRC_RRM)
-      msg_interf=RRC;
-    else if ((msg_type-=NB_MSG_RRC_RRM)< NB_MSG_CMM_RRM)
-      msg_interf=CMM;
-    else if ((msg_type-=NB_MSG_CMM_RRM)< NB_MSG_IP)
-      msg_interf=IP;
-    else {
-      printf("Error! Unknown message %d!!!\n",Header->msg_type);
-      break;
-    }
-
-    // msg("Got MSG of Type %d on Inst %d\n",Header->msg_type,Header->inst);
-    switch ( msg_interf ) {
-    case SNS: {
-      switch ( msg_type ) {
-      case SNS_UPDATE_SENS : { //mod_lor_10_06_02
-        msg_fct( "[SENSING]>[CRRM]:UPDATE_SENSING_RESULTS number %d \n",(Header->Trans_id - 4096)) ;
-        gen_sens_info_t  *p = (gen_sens_info_t  *)Data ;
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Sensing information received from sensing unit about frequencies from\n");
-        //msg_fct( "Results about frequencies from ");
-        printf("\e[38;5;%dm",colorfree);
-        msg_fct( "%d ",(p->channels[0]/1000));
-        printf("\e[38;5;%dm",comments);
-        msg_fct( "MHz and ");
-        printf("\e[38;5;%dm",colorfree);
-        msg_fct( "%d ",(p->channels[1]/1000));
-        printf("\e[38;5;%dm",comments);
-        msg_fct( "MHz\nBandwidth of analyzed subbands: ");
-        printf("\e[38;5;%dm",colorfree);
-        msg_fct( "%d ",p->values[0]);
-        printf("\e[38;5;%dm",comments);
-        msg_fct( "KHz\n");
-        msg_fct( "Updating of local sensing database with recived data ...\n");
-
-        //mod_lor_10_04_21++
-
-        /*for (i=0;i<p->NB_chan;i++){ //com_lor_10_11_09
-            if(p->values[i]==1){
-                printf("\e[38;5;%dm",colorfree);   //mod_lor_10_04_21
-                msg_fct( "      Channel %d: no primary user detected\n",p->channels[i]);
-                //printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_21
-            }
-            else{
-                printf("\e[38;5;%dm",colorbusy);   //mod_lor_10_04_21
-                msg_fct( "      Channel %d: primary user detected\n",p->channels[i]);
-                //printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_21
-            }
-        }*/
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22*/
-
-        if (SCEN_1)//mod_lor_10_05_12++
-          msg_fct( "Trasmission of the new information to the Fusion Center\n");
-        else
-          msg_fct( "Trasmission of the new information to the Cluster Head\n");//mod_lor_10_05_12--
-
-        msg_fct( "Waiting for next sensing update ...\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_21
-        //mod_lor_10_04_21--
-
-      }
-      break ;
-
-      case SNS_END_SCAN_CONF : {
-
-        msg_fct( "[SENSING]>[CRRM]:END_SENSING_CONFIRMATION\n");
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-
-        if (SCEN_1)//mod_lor_10_05_12++
-          msg_fct( "Sending confirmation of stopped sensing to Fusion Center ...\n");
-        else
-          msg_fct( "Sending confirmation of stopped sensing to Cluster Head ...\n");//mod_lor_10_05_12--
-
-        printf("\e[38;5;%dm",colorfg);
-      }
-      break ;
-
-      default :
-        msg("[SNS]WARNING: msg unknown %d switched as %d\n",Header->msg_type,msg_type) ;
-      }
-
-      break;
-    }
-
-    case RRC: {
-      switch ( msg_type ) {
-      case RRC_RB_ESTABLISH_RESP: {
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_RB_ESTABLISH_RESP \n",Header->inst);
-
-      }
-      break ;
-
-      case RRC_RB_ESTABLISH_CFM: {
-
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_RB_ESTABLISH_CFM \n",Header->inst);
-        /*if (Header->inst == BTS_ID && SCEN_1){//mod_lor_10_05_12
-            printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-            msg_fct( "******************************************************************\n");
-            msg_fct( "Link between Fusion Center and BTS opened\n");
-            msg_fct( "******************************************************************\n");
-            printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_22
-        }*/
-
-      }
-      break ;
-
-      case RRC_RB_MODIFY_RESP: {
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_RB_MODIFY_RESP \n",Header->inst);
-
-      }
-      break ;
-
-      case RRC_RB_MODIFY_CFM: {
-
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_RB_MODIFY_CFM\n",Header->inst);
-
-      }
-      break ;
-
-      case RRC_RB_RELEASE_RESP: {
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_RB_RELEASE_RESP \n",Header->inst);
-
-      }
-      break ;
-
-      case RRC_MR_ATTACH_IND : {
-
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_MR_ATTACH_IND \n",Header->inst);
-
-      }
-      break ;
-
-      case RRC_SENSING_MEAS_RESP: {
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_SENSING_MEAS_RESP \n",Header->inst);
-      }
-      break ;
-
-      case RRC_CX_ESTABLISH_IND: {
-
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_CX_ESTABLISH_IND \n",Header->inst);
-
-      }
-      break ;
-
-      case RRC_PHY_SYNCH_TO_MR_IND : {
-
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_PHY_SYNCH_TO_MR_IND.... \n",Header->inst);
-
-      }
-      break ;
-
-      case RRC_PHY_SYNCH_TO_CH_IND : {
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_PHY_SYNCH_TO_CH_IND.... \n",Header->inst);
-
-
-      }
-      break ;
-
-      case RRC_SENSING_MEAS_IND : {
-
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_SENSING_MEAS_IND \n",Header->inst);
-
-      }
-      break ;
-
-      case RRC_RB_MEAS_IND : {
-
-        msg_fct( "[CRRC]>[CRRM]:%d:RRC_RB_MEAS_IND \n",Header->inst);
-      }
-      break ;
-
-
-      case RRC_INIT_SCAN_REQ : {
-        msg_fct( "[CRRC]>[CRRM]:START_SENSING_REQUEST\n");
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-
-        if (SCEN_1)//mod_lor_10_05_12++
-          msg_fct( "Order to start sensing activity received from Fusion Center\n");
-        else
-          msg_fct( "Order to start sensing activity received from Cluster Head\n");//mod_lor_10_05_12--
-
-        msg_fct( "Activation of sensing unit ...\n");
-        msg_fct( "Waiting for sensing results ...\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_22
-
-
-      }
-      break ;
-
-      case RRC_END_SCAN_CONF : {
-
-        msg_fct( "[CRRC]>[CRRM]:END_SENSINS_ACTIVITY_CONFIRMATION\n");
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-
-        if (SCEN_1)//mod_lor_10_05_12++
-          msg_fct( "Sensor %d confirms the end of sensing activity\n",(Header->inst -FIRST_SENSOR_ID+ 1));
-        else
-          msg_fct( "Secondary User %d confirms the end of sensing activity\n",(Header->inst -FIRST_SENSOR_ID+ 1));//mod_lor_10_05_12--
-
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_22
-      }
-      break ;
-
-      case RRC_END_SCAN_REQ : {
-
-        msg_fct( "[CRRC]>[CRRM]:END_SENSINS_ACTIVITY_REQUEST\n");
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-
-        if (SCEN_1)//mod_lor_10_05_12++
-          msg_fct( "Order to stop sensing activity received from Fusion Center\n");
-        else
-          msg_fct( "Order to stop sensing activity received from Cluster Head\n");//mod_lor_10_05_12--
-
-        msg_fct( "Command to stop sensing activity transmitted to sensing unit\n");
-        msg_fct( "Waiting for confirmation from sensing unit ...\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_22
-
-      }
-      break ;
-
-      case RRC_INIT_MON_REQ : {
-        msg_fct( "[CRRC]>[CRRM]:RRC_INIT_MON_REQ \n",Header->inst);
-      }
-      break ;
-
-      case RRC_UP_FREQ_ASS : {
-        gen_sens_info_t  *p = (gen_sens_info_t  *)Data ;
-        msg_fct( "[CRRC]>[CRRM]:UPDATE_FREQUENCIES_ASSIGNED\n",Header->inst);
-
-        if (p->NB_chan!=0) {
-          printf("\e[38;5;%dm",comments);
-          msg_fct( "Channel to use: from ");
-          printf("\e[38;5;%dm",colorfree);
-          msg_fct( "%d ",(p->channels[0]));
-          printf("\e[38;5;%dm",comments);
-          msg_fct( "KHz to ");
-          printf("\e[38;5;%dm",colorfree);
-          msg_fct( "%d ",(p->channels[1]));
-          printf("\e[38;5;%dm",comments);
-          msg_fct( "KHz\n");
-          printf("\e[38;5;%dm",colorfg);
-        } else {
-          printf("\e[38;5;%dm",colorbusy);
-          msg_fct( "No channels available\n");
-          printf("\e[38;5;%dm",colorfg);
-        }
-      }
-      break;
-
-      case RRC_UP_FREQ_ASS_SEC : { //add_lor_10_11_09
-        gen_sens_info_t  *p = (gen_sens_info_t  *)Data ;
-        msg_fct( "[CRRC]>[CRRM]:UPDATE_FREQUENCIES_ASSIGNED_SEC \n",Header->inst);
-
-        for (i=0; i<p->NB_val; i++) {
-          if (p->values[i]) {
-            printf("\e[38;5;%dm",comments);
-            msg_fct( "Transmitting on channel from ");
-            printf("\e[38;5;%dm",colorfree);
-            msg_fct( "%d ",(p->channels[i*2]));
-            printf("\e[38;5;%dm",comments);
-            msg_fct( "KHz to ");
-            printf("\e[38;5;%dm",colorfree);
-            msg_fct( "%d ",(p->channels[(i*2)+1]));
-            printf("\e[38;5;%dm",comments);
-            msg_fct( "KHz\n");
-            printf("\e[38;5;%dm",colorfg);
-          } else {
-            printf("\e[38;5;%dm",comments);
-            msg_fct( "Receiving on channel from ");
-            printf("\e[38;5;%dm",colorfree);
-            msg_fct( "%d ",(p->channels[i*2]));
-            printf("\e[38;5;%dm",comments);
-            msg_fct( "KHz to ");
-            printf("\e[38;5;%dm",colorfree);
-            msg_fct( "%d ",(p->channels[(i*2)+1]));
-            printf("\e[38;5;%dm",comments);
-            msg_fct( "KHz\n");
-            printf("\e[38;5;%dm",colorfg);
-          }
-        }
-      }
-      break ;
-
-      default :
-        msg("[CRRC]WARNING: msg unknown %d switched as %d\n",Header->msg_type,msg_type) ;
-      }
-
-      break;
-    }
-
-    case IP: {
-      switch ( msg_type ) {
-
-      case UPDATE_SENS_RESULTS_3 : { //mod_lor_10_06_02
-        gen_sens_info_t  *p = (gen_sens_info_t  *)Data ;
-
-        if (SCEN_1) { //mod_lor_10_05_12++
-          msg_fct( "[SENSOR %d msg]:UPDATE_SENSING_MEASUREMENT\n",(Header->inst-FIRST_SENSOR_ID+1));
-          printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-          msg_fct( "Sensing information received from sensor %d (local update number: %d)\n",(Header->inst-FIRST_SENSOR_ID+1),(Header->Trans_id - 4096));
-        } else {
-          msg_fct( "[S.U. %d msg]:UPDATE_SENSING_MEASUREMENT\n",(Header->inst-FIRST_SENSOR_ID+1));
-          printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-          msg_fct( "Sensing information received from Secondary User %d (local update number: %d)\n",(Header->inst-FIRST_SENSOR_ID+1),(Header->Trans_id - 4096));
-        }//mod_lor_10_05_12--
-
-        msg_fct( "Sensing results about frequencies from ");
-        printf("\e[38;5;%dm",colorfree);
-        msg_fct( "%d ",(p->channels[0]/1000));
-        printf("\e[38;5;%dm",comments);
-        msg_fct( "MHz and ");
-        printf("\e[38;5;%dm",colorfree);
-        msg_fct( "%d ",(p->channels[1]/1000));
-        printf("\e[38;5;%dm",comments);
-        msg_fct( "MHz\nUpdating of sensing database using recived data ...\n");
-
-        /*if(SN_active &&p->values[1]!=3){ //comm_lor_10_11_09
-            msg_fct( "Checking if frequencies in use by Secondary Network are still free ...\n");
-            if(p->values[1]==1){
-                printf("\e[38;5;%dm",colorbusy);
-                printf("Primary detected on frequencies in use by Secondary Network\n");
-                printf("\e[38;5;%dm",comments);
-                msg_fct( "Sending update of open frequencies to Secondary Network\n");
-            }
-            else if (p->values[1]==0){
-                printf("\e[38;5;%dm",colorfree);
-                printf("No primary communication detected on frequencies in use by Secondary Network\n");
-
-            }
-        }
-        else if (p->values[1]==1){
-            printf("\e[38;5;%dm",comments);
-            msg_fct( "Sending update of open frequencies to Secondary Network\n");
-        }*/
-        //mod_lor_10_04_21++
-        /*
-        unsigned int up_to_send = 0;
-        for (i=(p->NB_chan-1);i>=0;i--){
-            if(p->values[i]==1){
-                printf("\e[38;5;%dm",colorfree);   //mod_lor_10_04_21
-                msg_fct( "      Channel %d: no primary user detected\n",p->channels[i]);
-            }else{
-                printf("\e[38;5;%dm",colorbusy);   //mod_lor_10_04_21
-                msg_fct( "      Channel %d: primary user detected\n",p->channels[i]);
-                if(p->values[i]==3){
-                    up_to_send = 1;
-                    msg_fct( "        -> Channel used by SN\n");
-                    msg_fct( "        -> Need to send update of open frequencies\n");
-                }
-            }
-        }
-        if (up_to_send){
-            printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-            msg_fct( "Sending update of open frequencies to Secondary Network\n");
-        }*/
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_21
-        //mod_lor_10_04_21--
-
-
-      }
-      break ;
-
-      case OPEN_FREQ_QUERY_4 : {
-        printf("\e[38;5;%dm",colorBTS_msg);  //mod_lor_10_04_23
-        msg_fct( "[BTS msg]:OPEN_FREQUENCIES_QUERY \n");
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_23
-        msg_fct( "Received a request from the secondary network BTS to know the available frequencies to use\n");
-        msg_fct( "Sending to BTS information about available frequencies\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_23
-
-      }
-      break ;
-
-      case ASK_FREQ_TO_CH_3 : { //add_lor_10_11_03
-        gen_sens_info_t  *p = (gen_sens_info_t  *)Data ;
-
-        if (p->NB_val==0) {
-          msg_fct( "[SU %d msg]:ASK_FREQUENCIES \n", Header->inst);
-          printf("\e[38;5;%dm",comments);   //mod_lor_10_04_23
-          msg_fct( "Received a request from secondary user #%d to have a channel to communicate with Secondary User #%d\n",Header->inst,p->channels[0]);
-          msg_fct( "Looking for available channels...\n");
-          printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_23
-        } else {
-          printf("\e[38;5;%dm",comments);   //mod_lor_10_04_23
-          msg_fct( "None channel is available...\n");
-          msg_fct( "Saving channel request...\n");
-          printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_23
-        }
-
-      }
-      break ;
-
-      case UPDATE_OPEN_FREQ_7 : { //mod_lor_10_06_02
-        gen_sens_info_t  *p = (gen_sens_info_t  *)Data ;
-        msg_fct( "[FC msg]:UPDATE_OPEN_FREQUENCIES\n",Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_23
-        msg_fct( "Received information about available frequencies from Fusion Center\n");
-
-        if (p->NB_chan==0) {
-          printf("\e[38;5;%dm",colorbusy);
-          msg_fct( "No available channels for Secondary Network \n");
-        } else {
-          msg_fct( "Updating of channel database ...\n");
-
-          for (i=(p->NB_chan-1); i>=0; i--) {
-            printf("\e[38;5;%dm",colorfree);   //mod_lor_10_04_21
-            msg_fct( "      Channel from %d KHz to %d KHz is available\n",p->channels[i-1], p->channels[i]);
-            i=i-2;
-          }
-
-          printf("\e[38;5;%dm",comments);   //mod_lor_10_04_23
-          msg_fct( "Selection of frequencies for Secondary network ...\n");
-
-          //mod_lor_10_05_18++
-          for (i=(p->NB_val-1); i>=0; i--) {
-            for (j=(p->NB_chan-3); j>=0; j=j-3) {
-              if (p->channels[j]==p->values[i]) {
-                printf("\e[38;5;%dm",colorfree);
-                msg_fct( "      Channel from %d KHz to %d KHz selected for SN\n",p->channels[j+1],p->channels[j+2]);
-                break;
-              }
-            }
-          }
-        }
-
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_23
-        //mod_lor_10_05_18--
-        msg_fct( "Sending update of frequencies used by Secondary Network to Fusion Center ...\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_23
-
-
-      }
-      break ;
-
-      case UPDATE_SN_OCC_FREQ_5 : { //mod_lor_10_06_02
-        gen_sens_info_t  *p = (gen_sens_info_t  *)Data ;
-
-        if (p->NB_chan>0)
-          SN_active = 1; //mod_lor_10_06_02
-
-        printf("\e[38;5;%dm",colorBTS_msg);  //mod_lor_10_04_23
-        msg_fct( "[BTS msg]:UPDATE_SN_OCCUPIED_FREQUENCIES\n", Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Update received from BTS about frequencies used by Secondary Network\n");
-        msg_fct( "Updating CHANNEL DATABASE :\n");
-
-        if (p->NB_chan == 0) {
-          msg_fct( "SN did not select any channel\n");
-          SN_active = 0;
-        }
-
-        //printf("\e[38;5;%dm",colorBTS_msg);
-        for (i=0; i<p->NB_chan; i++) {
-          printf("\e[38;5;%dm",comments);
-          msg_fct( "      Channel from " );
-          printf("\e[38;5;%dm",colorfree);
-          msg_fct( "%d ",p->channels[i] );
-          printf("\e[38;5;%dm",comments);
-          msg_fct( "MHz to");
-          printf("\e[38;5;%dm",colorfree);
-          msg_fct( " %d ",p->channels[++i] );
-          printf("\e[38;5;%dm",comments);
-          msg_fct( " used by Secondary Network\n" );
-        }
-
-        if (p->values[0]) {
-          if (p->NB_chan != 0) {
-            printf("\e[38;5;%dm",colorbusy);
-            msg_fct( "  -> Channels in use by SN are not available anymore!\n");
-            printf("\e[38;5;%dm",comments);
-          }
-
-          msg_fct( "Sending update of open frequencies to BTS ...\n");
-        }
-
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_23
-
-      }
-      break ;
-
-      //mod_lor_10_05_10++
-      case INIT_COLL_SENS_REQ : {
-        msg_fct( "******************************************************************\n");
-        msg_fct( "[CH 1 msg]:INIT_COLL_SENS_REQ from %d\n", Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Request from another cluster to collaborate in sensing operations\n");
-        msg_fct( "Sending sensing parameters to sensors connected ...\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_23
-
-      }
-      break ;
-
-      case STOP_COLL_SENS : {
-        msg_fct( "[CH 1 msg]:STOP_COLL_SENS from %d\n", Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Request to stop the collaboration in sensing operations\n");
-        msg_fct( "Sending stop sensing order to sensors connected ...\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_23
-
-      }
-      break ;
-
-      case STOP_COLL_SENS_CONF : {
-        printf("\e[38;5;%dm",colorBTS_msg);  //mod_lor_10_04_23
-        msg_fct( "[CH coll msg]:STOP_COLL_SENS_CONF from %d\n", Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Collaborative Cluster Head confirms the end of sensing activity\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_23
-
-      }
-      break ;
-
-      case UP_CLUST_SENS_RESULTS : {
-        gen_sens_info_t  *p = (gen_sens_info_t  *)Data ;
-        printf("\e[38;5;%dm",colorBTS_msg);  //mod_lor_10_04_23
-        msg_fct( "[CH coll msg]:UP_CLUST_SENS_RESULTS from %d\n", Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Update received from collaborative Cluster about frequencies from\n");
-        printf("\e[38;5;%dm",colorfree);
-        msg_fct( "%d ",(p->channels[0]/1000));
-        printf("\e[38;5;%dm",comments);
-        msg_fct( "MHz and ");
-        printf("\e[38;5;%dm",colorfree);
-        msg_fct( "%d ",(p->channels[1]/1000));
-        printf("\e[38;5;%dm",comments);
-        msg_fct( "MHz\nBandwidth of analyzed subbands: ");
-        printf("\e[38;5;%dm",colorfree);
-        msg_fct( "%d ",p->values[0]);
-        printf("\e[38;5;%dm",comments);
-        msg_fct( "KHz\n");
-        msg_fct( "Updating of sensing database using recived data...\n");
-        printf("\e[38;5;%dm",colorfg);
-      }
-      break ;
-
-      //mod_lor_10_05_10--
-      case USER_DISCONNECT_9 : { //add_lor_10_11_09
-        msg_fct( "[SU %d msg]:USER_DISCONNECTION\n", Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Secondary User %d wants to interrupt all its current communications.\n", Header->inst);
-        msg_fct( "Sending update to all Secondary Users\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_23
-
-      }
-      break ;
-
-      case CLOSE_LINK : { //add_lor_10_11_09
-        gen_sens_info_t  *p = (gen_sens_info_t  *)Data ;
-        int i;
-        msg_fct( "[SU %d msg]:CLOSE_LINK\n", Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Secondary User %d wants to close communication channel from user %d to user %d\n", Header->inst, p->channels[0],p->values[0]);
-        msg_fct( "Sending update to all Secondary Users\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_23
-      }
-      break ;
-
-      default :
-        msg("[IP]WARNING: msg unknown %d switched as %d\n",Header->msg_type,msg_type) ;
-      }
-
-      break;
-    }
-
-    case CMM: {
-      switch ( msg_type ) {
-      case CMM_CX_SETUP_REQ: {
-
-        msg_fct( "[CMM]>[CRRM]:%d:CMM_CX_SETUP_REQ\n",Header->inst);
-
-      }
-      break ;
-
-      case CMM_CX_MODIFY_REQ: {
-
-        msg_fct( "[CMM]>[CRRM]:%d:CMM_CX_MODIFY_REQ\n",Header->inst);
-
-      }
-      break ;
-
-      case CMM_CX_RELEASE_REQ : {
-
-        msg_fct( "[CMM]>[CRRM]:%d:CMM_CX_RELEASE_REQ\n",Header->inst);
-
-      }
-      break ;
-
-      case CMM_CX_RELEASE_ALL_REQ : {
-
-        msg_fct( "[CMM]>[CRRM]:%d:CMM_CX_RELEASE_ALL_REQ\n",Header->inst);
-
-      }
-      break ;
-
-      case CMM_ATTACH_CNF : {
-        msg_fct( "[CMM]>[CRRM]:%d:CMM_ATTACH_CNF\n",Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "******************************************************************\n");
-
-        //mod_lor_10_05_12++
-        if (SCEN_1) { //mod_lor_11_02_15++ : reorganization sendora scen 1
-          if (BTS_ID>=0 && FC_ID>=0)
-            msg_fct( "The sensor is now connected to the fusion center\n"); //AAA to fix
-          else if (BTS_ID>=0)
-            msg_fct( "Secondary User is now connected to the BTS\n");
-          else if (FC_ID>=0)
-            msg_fct( "The sensor is now connected to the fusion center\n");
-        }//mod_lor_11_02_15--
-        else if(SCEN_2_DISTR)
-          msg_fct( "Secondary User is now connected to Cluster Head\n");
-        else if(Header->inst < FIRST_SECOND_CLUSTER_USER_ID)
-          msg_fct( "Secondary User is now connected to Cluster Head #1\n");
-        else
-          msg_fct( "Secondary User is now connected to Cluster Head #2\n");//mod_lor_10_05_12--
-
-        msg_fct( "******************************************************************\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_22
-      }
-      break ;
-
-      case CMM_INIT_MR_REQ : {
-        msg_fct( "[CMM]>[CRRM]:%d:CMM_INIT_MR_REQ \n",Header->inst);
-
-      }
-      break ;
-
-      case CMM_INIT_CH_REQ : {
-        msg_fct( "[CMM]>[CRRM]:%d:CMM_INIT_CH_REQ \n",Header->inst);
-
-
-      }
-      break ;
-
-      case CMM_INIT_SENSING : {
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "******************************************************************\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_22
-        msg_fct( "[CMM]>[CRRM]:START_SENSING\n");
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Order to activate sensing received \n");
-
-        if (SCEN_1)//mod_lor_10_05_12++
-          msg_fct( "Sending sensing parameters to sensors connected ...\n");
-        else
-          msg_fct( "Sending sensing parameters to Secondary Users connected ...\n");//mod_lor_10_05_12--
-
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_22
-      }
-      break ;
-
-      case CMM_STOP_SENSING : {
-        msg_fct( "[CMM]>[CRRM]:STOP_SENSING\n",Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Order to stop sensing operations received \n");
-
-        if (SCEN_1)//mod_lor_10_05_12++
-          msg_fct( "Sending order to stop sensing activity to sensors connected ...\n");
-        else {
-          if (SCEN_2_CENTR)
-            msg_fct( "Sending order to stop collaborative sensing to collaborative CH ...\n");
-
-          msg_fct( "Sending order to stop sensing actions to secondary users connected ...\n");
-        }//mod_lor_10_05_12--
-
-        sleep(1);
-        msg_fct( "Waiting for stop sensing confirmations ...\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_22
-
-      }
-      break ;
-
-      case CMM_ASK_FREQ : {
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "******************************************************************\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_22
-        msg_fct( "[CMM]>[CRRM]:ASK_FOR_AVAILABLE_FREQUENCIES\n",Header->inst);
-        printf("\e[38;5;%dm",comments);   //mod_lor_10_04_22
-        msg_fct( "Need of frequencies for secondary users \n");
-        msg_fct( "Sending request of available channels to Fusion Center ...\n");
-        sleep(1);
-        msg_fct( "Waiting for available channels information ...\n");
-        printf("\e[38;5;%dm",colorfg);   //mod_lor_10_04_22
-
-      }
-      break ;
-
-
-      default :
-        msg("[CMM]WARNING: msg unknown %d switched as %d\n",Header->msg_type,msg_type) ;
-      }
-
-      break;
-    }
-
-    default :
-      msg("[Graph_xface]WARNING: msg unknown %d switched as %d\n",Header->msg_type,msg_type) ;
-
-    }
-  }
-
-  close_socket(&S_graph) ;
-}
diff --git a/openair3/MESH/RRM/GRAPH/graph_int.h b/openair3/MESH/RRM/GRAPH/graph_int.h
deleted file mode 100755
index 5879ef91b8..0000000000
--- a/openair3/MESH/RRM/GRAPH/graph_int.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       graph_int.h
-
-\brief      Fichier d'entête
-
-            Il contient les declarations de type, des defines relatif aux
-            fonctions d'emulation  des interfaces du RRM (Radio Resource
-            Management ).
-
-\author     IACOBELLI Lorenzo
-
-\date       20/04/10
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-
-
-#ifndef GRAPH_INT_H
-#define GRAPH_INT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GRAPH_INT_H */
diff --git a/openair3/MESH/RRM/GRAPH/graph_sock.c b/openair3/MESH/RRM/GRAPH/graph_sock.c
deleted file mode 100644
index 6de4210204..0000000000
--- a/openair3/MESH/RRM/GRAPH/graph_sock.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-/*!
-*******************************************************************************
-
-\file     sensing_rrm_interface.c
-
-\brief    Sensing unit sockets
-
-\author   IACOBELLI Lorenzo, KNOPP Raymond
-
-\date     01/04/2010
-
-
-\par     Historique:
-
-
-*******************************************************************************
-*/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include "graph_sock.h"
-
-//! \brief  Taille maximale de la charge utile
-#define SIZE_MAX_PAYLOAD  2048
-//! \brief PID de l'espace utilisateur (Netlink mode)
-//#define PID_USERSPACE   0xAA
-
-
-#define msg printf
-#define RRM_FREE free
-
-#ifndef SENSING_RRM_FIFOS_XFACE
-/*!
-*******************************************************************************
-\brief  This function opens a unix socket for the rrm communication
-\return  The return value is a socket handle
-*/
-int open_socket(
-  sock_rrm_t *s   , ///< socket descriptor
-  char *path_local,   ///< local socket path if unix socket
-  char *path_dest ,   ///< host  Socket path if unix socket
-  int rrm_inst        ///< instance of the rrm entity
-)
-{
-  /* Unix socket */
-  int   socket_fd ;
-  int   len ;
-
-  if ((socket_fd = socket(AF_UNIX, SOCK_DGRAM, 0)) == -1) {
-    perror("unix socket");
-    return -1 ;
-  }
-
-  memset(&(s->un_local_addr), 0, sizeof(struct  sockaddr_un));
-  s->un_local_addr.sun_family = AF_UNIX;
-  sprintf(s->un_local_addr.sun_path,"%s%d", path_local, rrm_inst );
-  unlink(s->un_local_addr.sun_path);
-  msg("local %s\n",s->un_local_addr.sun_path);
-  len = strlen((s->un_local_addr).sun_path) + sizeof((s->un_local_addr).sun_family);
-
-  if (bind(socket_fd, (struct sockaddr *)&(s->un_local_addr), len) == -1) {
-    perror("bind");
-    return -1 ;
-  }
-
-  memset(&(s->un_dest_addr), 0, sizeof(struct   sockaddr_un));
-  s->un_dest_addr.sun_family = AF_UNIX;
-  sprintf(s->un_dest_addr.sun_path,"%s%d", path_dest, rrm_inst );
-  msg("Dest %s\n",s->un_dest_addr.sun_path);
-
-
-  s->s = socket_fd ;
-  return socket_fd ;
-}
-/*!
-*******************************************************************************
-\brief  This function closes a RRM socket
-\return none
-*/
-void close_socket(
-  sock_rrm_t *sock  ///< the socket handle
-)
-{
-  shutdown(sock->s, SHUT_RDWR);
-  close(sock->s);
-}
-
-/*!
-*******************************************************************************
-\brief  This function send a buffer message to the unix socket
-\return if OK then "0" is returned else "-1"
-*/
-char BUFF[2048];
-int send_msg_sock(
-  sock_rrm_t *s   ,///< socket descriptor
-  msg_t *smsg       ///< the message to send
-)
-{
-  /* Unix socket */
-  int         ret   = 0 ;
-  //  char        *buf    = NULL;
-  struct  msghdr    msghd ;
-  struct  iovec     iov;
-  int         taille  = sizeof(msg_head_t)  ;
-
-  if ( smsg == NULL )
-    return -1 ;
-
-  if ( smsg->data != NULL )
-    taille += smsg->head.size ;
-
-  //buf = RRM_MALLOC(char, taille);
-  //if (buf ==NULL)
-  //return -1 ;
-
-  memcpy( BUFF , &(smsg->head) , sizeof(msg_head_t) ) ;
-  memcpy( BUFF+sizeof(msg_head_t), smsg->data, smsg->head.size ) ;
-
-  iov.iov_base    = (void *)BUFF;
-  iov.iov_len     = taille ;
-
-  msghd.msg_name        = (void *)&(s->un_dest_addr);
-  msghd.msg_namelen     = sizeof(s->un_dest_addr);
-  msghd.msg_iov         = &iov;
-  msghd.msg_iovlen      = 1;
-  msghd.msg_control     = NULL ;
-  msghd.msg_controllen  =   0 ;
-
-  if ( sendmsg(s->s, &msghd, 0) < 0 ) {
-    ret = -1;
-    msg("socket %d, dest %s\n",s->s,s->un_dest_addr.sun_path);
-    perror("sendmsg:unix socket");
-  }
-
-  //RRM_FREE(buf) ;
-  //RRM_FREE(msg->data) ;
-  //RRM_FREE(msg) ;
-
-  return ret ;
-}
-
-/*!
-*******************************************************************************
-\brief  This function read a buffer from a unix socket
-\return the function returns a message pointer. If the pointeur is NULL, a error
-is happened.
-*/
-char *recv_msg(
-  sock_rrm_t *s  ///< socket descriptor
-)
-{
-  /* Unix socket */
-  char        *buf = NULL;
-  char        *smsg = NULL;
-  struct  msghdr    msghd ;
-  struct  iovec     iov;
-  int         size_msg ;
-  msg_head_t      *head  ;
-  int         ret ;
-
-  int taille =  SIZE_MAX_PAYLOAD ;
-
-  buf         = (char *)calloc(taille,sizeof(char));
-
-  if ( buf == NULL ) {
-    fprintf(stderr,"Buf null\n");
-    return NULL ;
-  }
-
-  iov.iov_base      = (void *)buf;
-  iov.iov_len       = taille ;
-  msghd.msg_name      = (void *)&(s->un_dest_addr);
-  msghd.msg_namelen   = sizeof(s->un_dest_addr);
-  msghd.msg_iov       = &iov;
-  msghd.msg_iovlen    = 1;
-  msghd.msg_control   = NULL ;
-  msghd.msg_controllen= 0 ;
-
-  ret = recvmsg(s->s, &msghd , 0 ) ;
-
-  if ( ret <= 0  ) {
-    // non-blocking socket
-    // perror("PB recvmsg_un");
-    fprintf(stderr,"PB recvmsg_un\n");
-    RRM_FREE(buf);
-    return NULL ;
-  }
-
-  if (msghd.msg_flags != 0 ) {
-    fprintf(stderr,"error recvmsg_un: 0x%02x\n", msghd.msg_flags) ;
-    RRM_FREE(buf);
-    return NULL ;
-  }
-
-  head    = (msg_head_t *) buf  ;
-  size_msg  = sizeof(msg_head_t) + head->size ;
-
-  smsg    = (char *)calloc(size_msg,sizeof(char)) ;
-
-  if ( smsg != NULL )
-    memcpy( smsg , buf , size_msg ) ;
-
-  RRM_FREE( buf ) ;
-
-  return smsg ;
-}
-
-#else  //XFACE
-
-int send_msg_fifo(int *s, msg_t *fmsg)
-{
-  int   ret   = 0, ret1;
-  int  taille = sizeof(msg_head_t)  ;
-  msg("write on fifos %d, msg %p\n",*s,fmsg);
-
-  if ( fmsg == NULL )
-    return -1 ;
-
-  // envoi le header
-
-
-  ret1 = rtf_put (*s,(char*) &(fmsg->head) , taille);
-
-  if(ret1 <0) {
-    msg("rtf_put H ERR %d\n",ret1);
-    rtf_reset(*s);
-    return ret1;
-  }
-
-  ret=ret1;
-
-  // envoi les datas si elles sont definis
-  if ( fmsg->data != NULL ) {
-    ret1 += rtf_put (*s,(char*) fmsg->data, fmsg->head.size);
-
-    if(ret1 <0) {
-      msg("rtf_put D ERR %d\n",ret1);
-      rtf_reset(*s);
-      return ret1;
-    }
-  }
-
-  ret+=ret1;
-  return ret;
-}
-
-#endif //XFACE
-
-int send_msg(void *s, msg_t *smsg)
-{
-#ifdef USER_MODE
-  send_msg_sock((sock_rrm_t *)s, smsg);
-#else
-  send_msg_fifo((int *)s,smsg);
-#endif
-
-}
diff --git a/openair3/MESH/RRM/GRAPH/graph_sock.h b/openair3/MESH/RRM/GRAPH/graph_sock.h
deleted file mode 100644
index 00c7b705ea..0000000000
--- a/openair3/MESH/RRM/GRAPH/graph_sock.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file     sensing_rrm_interface.h
-
-\brief    Fichier d'entete contenant les declarations des types, des defines ,
-      et des fonctions relatives aux fonctions de communication.
-
-\author   IACOBELLI Lorenzo, KNOPP Raymond
-
-\date     01/04/2010
-
-
-\par     Historique:
-      $Author$  $Date$  $Revision$
-      $Id$
-      $Log$
-
-*******************************************************************************
-*/
-
-#ifndef __SENSING_RRM_INTERFACE_H__
-#define __SENSING_RRM_INTERFACE_H__
-
-
-//#ifdef SENSING_RRM_XFACE
-
-/*!
-*******************************************************************************
-\brief   Entete des messages de RRM/CMM/RRC/SENSING
-*/
-typedef struct {
-  unsigned short start    ; ///< Identification du debut de message
-  unsigned char  inst     ; ///< Identification de l'instance RRM
-  unsigned char  msg_type ; ///< Identification du type message
-  unsigned int   size     ; ///< taille du message
-  unsigned int   Trans_id ; ///< Identification de la transaction
-} msg_head_t ;
-
-/*!
-*******************************************************************************
-\brief   Definition de la structure d'un message a envoyer sur un socket:
-          - RRM->RRC
-          - RRC->RRM
-          - RRCI->RRC
-          - RRC->RRCI
-          - CMM->RRM
-          - RRM->CMM
-*/
-typedef struct {
-  msg_head_t  head  ; ///< entete du message
-  char    *data ; ///< message
-} msg_t ;
-
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-#define RRM_SOCK_PATH "/tmp/rrm_socket"
-#define TO_RRM_SOCK_PATH "/tmp/to_rrm_socket"
-
-//! \brief Identification of the RRM/CMM/RRC message begin
-#define START_MSG      0xA533
-//! \brief Identification of the PUSU message begin
-#define START_MSG_PUSU 0xCC
-
-
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-
-/*!
-*******************************************************************************
-\brief  Definition de la structure definissant le socket pour envoyer les messages
-*/
-typedef struct {
-  int s                   ; ///< identification du socket
-  struct  sockaddr_un un_local_addr     ; ///< Adresse local si unix socket
-  struct  sockaddr_un un_dest_addr    ; ///< Adresse destinataire si unix socket
-} sock_rrm_t ;
-
-
-/* *** Fonctions relatives aux interfaces CMM ou SENSING *** */
-
-int open_socket( sock_rrm_t *s  ,char *path_local, char *path_dest , int rrm_inst ) ;
-void close_socket(sock_rrm_t *sock ) ;
-int send_msg_sock(sock_rrm_t *s   ,msg_t *msg ) ;
-char *recv_msg( sock_rrm_t *s ) ;
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif
diff --git a/openair3/MESH/RRM/Makefile b/openair3/MESH/RRM/Makefile
deleted file mode 100644
index fb095f2f0b..0000000000
--- a/openair3/MESH/RRM/Makefile
+++ /dev/null
@@ -1,142 +0,0 @@
-include $(OPENAIR_DIR)/common/utils/Makefile.inc
-OSTYPE		= $(shell uname -o )
-
-#AAA: if rrc emulated remove comment from next line
-#EMUL_RRC        = 1
-#AAA: if sns emulated remove comment from next line
-#EMUL_SNS        = 1  
-RRC_KERNEL_MODE = 0 
-
-
-#VPATH		=.:./deps:./obj
-# en ABSOLU pour utiliser les tags avec nedit de n'importe ou
-CHEMIN		= $(shell pwd)
-OPENAIR1_DIR= $(CHEMIN)/../../../openair1
-OPENAIR2_DIR= $(CHEMIN)/../../../openair2
-OPENAIR2_RRC= $(OPENAIR2_DIR)/RRC/MESH/ 
-OPENAIR1_SENSING= $(OPENAIR1_DIR)/USERSPACE_TOOLS/SENDORA
-OPENAIR3_RRM= $(CHEMIN)
-INTERFACE   = $(CHEMIN)/..
-EMUL        = $(CHEMIN)/EMUL
-VPATH		= $(CHEMIN):$(EMUL):$(CHEMIN)/deps:$(CHEMIN)/obj
-
-INCLUDE     = -I.  -I$(OPENAIR2_RRC) -I$(OPENAIR3_RRM) -I$(INTERFACE) -I$(OPENAIR2_DIR) -I$(OPENAIR1_SENSING)
-CFLAGS		+= -std=gnu99 $(INCLUDE) -DDEBUG -DNOTRACE -DOPENAIR2_IN
-LDFLAGS		= -lm -lforms -lX11 -L/usr/X11R6/lib -lXpm -lpthread 
-
-ifeq ($(OSTYPE),Cygwin)
-
-LDFLAGS		+= -lpthread 
-CFLAGS		+= -DCYGWIN
-
-else
-
-LDFLAGS		+= -lpthread -lrt
-CFLAGS		+= -DLINUX
-
-endif 
-
-# ifdef RRC_KERNEL_MODE
-ifeq ($(RRC_KERNEL_MODE),1)
-CFLAGS		+= -DRRC_KERNEL_MODE
-endif
-
-TARGET	    = emul_int rrm
-
-#put rrm_graph.c instead of rrm.c to connect the graphic interface block to the rrm
-SRC	    = rrm_graph.c    
-SRC	   += rrm_sock.c
-SRC	   += rrm_util.c
-SRC	   += rrm_2_rrc_msg.c
-SRC	   += cmm_msg.c
-SRC	   += pusu_msg.c
-SRC	   += transact.c
-SRC	   += rrm_constant.c
-SRC	   += ch_init.c
-SRC	   += mr_attach.c
-SRC	   += rb_mngt.c
-SRC	   += neighbor_db.c
-SRC	   += rb_db.c
-SRC	   += sens_db.c
-SRC	   += channels_db.c
-SRC	   += msg_mngt.c
-SRC	   += sens_op.c
-SRC	   += freq_ass_op.c
-SRC    += rrm_2_sensing_msg.c 
-SRC    += ip_msg.c 
-SRC    += sensing_form.c 
-SRC    += SN_freq_form.c 
-SRC    += sens_scen_2_form.c 
-SRC    += all_freq_to_users_form.c
-SRC    += sens_CH1_scen_2.c
-SRC    += sens_sensor.c  
-
-SRC_EMUL    = emul_interface.c
-SRC_EMUL   += rrm_sock.c
-SRC_EMUL   += rrm_util.c
-SRC_EMUL   += cmm_msg.c
-SRC_EMUL   += pusu_msg.c
-SRC_EMUL   += transact.c
-SRC_EMUL   += actdiff.c
-
-#ifeq ($(EMUL_RRC),0) 
-ifndef EMUL_RRC
-CFLAGS     += -DPHY_EMUL
-else
-CFLAGS	   += -DRRC_EMUL
-SRC_EMUL   += rrc_2_rrm_msg.c
-SRC_EMUL   += scenario.c
-endif
-
-ifdef EMUL_SNS
-CFLAGS	   += -DSNS_EMUL
-SRC_EMUL   += sensing_2_rrm_msg.c
-endif
-
-OBJ		= $(SRC:%.c=./obj/%.o)
-OBJ_EMUL	= $(SRC_EMUL:%.c=./obj/%.o)
-
-DEP		= $(SRC:%.c=./deps/%.d) $(SRC_EMUL:%.c=./deps/%.d) 
-
-all : Makefile deps $(TARGET)
-
-emul_int: $(OBJ_EMUL)
-	@echo '=============================='
-	@echo "Linkage $@  ($(OSTYPE))"
-	@echo '------------------------------'
-	$(CC) -o $@ $^ $(LDFLAGS)
-
-rrm: $(OBJ)
-	@echo '=============================='
-	@echo "Linkage $@  ($(OSTYPE))"
-	@echo '------------------------------'
-	$(CC) -o $@ $^ $(LDFLAGS)
-
-deps/%.d : %.c
-	@echo '------------------------------'
-	@echo Dependance $@
-	@echo '------------------------------'
-	$(CC) $(CFLAGS)  -M -MM  $< | sed -e "1s/^/obj\//" -e "s/: /: Makefile /" > $@
-
-obj/%.o:%.c
-	@echo '------------------------------'
-	@echo Compilation $@
-	@echo '------------------------------'
-	@echo Dependance $^
-	@echo Dependance plus recente $?
-	$(CC) $(CFLAGS) -c -o $@ $<
-
-
--include  deps/*.d
-
-.PHONY: clean  cleanexe deps
-
-deps: $(DEP)
-
-clean:
-	rm -f  $(TARGET) $(OBJ) *.o  obj/*.o tags deps/*.d *.stackdump
-
-cleanexe:
-	rm -f *.exe
-
-
diff --git a/openair3/MESH/RRM/SN_freq_form.c b/openair3/MESH/RRM/SN_freq_form.c
deleted file mode 100644
index cdb17ee386..0000000000
--- a/openair3/MESH/RRM/SN_freq_form.c
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-/* Form definition file generated with fdesign. */
-
-#include "forms.h"
-#include <stdlib.h>
-#include "SN_freq_form.h"
-
-FD_Secondary_Network_frequencies *create_form_Secondary_Network_frequencies(void)
-{
-  FL_OBJECT *obj;
-  FD_Secondary_Network_frequencies *fdui = (FD_Secondary_Network_frequencies *) fl_calloc(1, sizeof(*fdui));
-
-  fdui->Secondary_Network_frequencies = fl_bgn_form(FL_NO_BOX, 620, 200);
-  obj = fl_add_box(FL_UP_BOX,0,0,620,200,"");
-  fdui->Selected_frequencies = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,70,50,500,100,"Selected_frequencies");
-  fl_set_object_color(obj,FL_BLACK,FL_GREEN);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fl_end_form();
-
-  fdui->Secondary_Network_frequencies->fdui = fdui;
-
-  return fdui;
-}
-/*---------------------------------------*/
-
diff --git a/openair3/MESH/RRM/SN_freq_form.fd b/openair3/MESH/RRM/SN_freq_form.fd
deleted file mode 100644
index 23972fa842..0000000000
--- a/openair3/MESH/RRM/SN_freq_form.fd
+++ /dev/null
@@ -1,52 +0,0 @@
-Magic: 13000
-
-Internal Form Definition File
-    (do not change)
-
-Number of forms: 1
-Unit of measure: FL_COORD_PIXEL
-
-=============== FORM ===============
-Name: Secondary_Network_frequencies
-Width: 590
-Height: 230
-Number of Objects: 2
-
---------------------
-class: FL_BOX
-type: UP_BOX
-box: 0 0 590 230
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: 
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: 
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 60 40 490 120
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_GREEN
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: 
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: Selected_frequencies
-callback: 
-argument: 
-
-==============================
-create_the_forms
diff --git a/openair3/MESH/RRM/SN_freq_form.h b/openair3/MESH/RRM/SN_freq_form.h
deleted file mode 100644
index 63be229394..0000000000
--- a/openair3/MESH/RRM/SN_freq_form.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/** Header file generated with fdesign on Tue Jun  1 09:25:58 2010.**/
-
-#ifndef FD_Secondary_Network_frequencies_h_
-#define FD_Secondary_Network_frequencies_h_
-
-/** Callbacks, globals and object handlers **/
-
-
-/**** Forms and Objects ****/
-typedef struct {
-  FL_FORM *Secondary_Network_frequencies;
-  void *vdata;
-  char *cdata;
-  long  ldata;
-  FL_OBJECT *Selected_frequencies;
-} FD_Secondary_Network_frequencies;
-
-extern FD_Secondary_Network_frequencies * create_form_Secondary_Network_frequencies(void);
-
-#endif /* FD_Secondary_Network_frequencies_h_ */
diff --git a/openair3/MESH/RRM/VCD/Config_wave.xxx b/openair3/MESH/RRM/VCD/Config_wave.xxx
deleted file mode 100755
index 2c5b83ca44..0000000000
--- a/openair3/MESH/RRM/VCD/Config_wave.xxx
+++ /dev/null
@@ -1,10 +0,0 @@
-*-18,000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-@28
-instance
-transaction
-CMM-->RRM
-RRM-->CCM
-RRM-->RRC
-RRC-->RRM
-RRM-->PUSU
-PUSU-->RRM
diff --git a/openair3/MESH/RRM/VCD/gtkwave.ini b/openair3/MESH/RRM/VCD/gtkwave.ini
deleted file mode 100755
index fb705819de..0000000000
--- a/openair3/MESH/RRM/VCD/gtkwave.ini
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# sample .gtkwaverc file that works fine with verilog xl
-#
-hier_max_level 1
-dynamic_resizing 1
-use_maxtime_display 0
-
-enable_vcd_autosave 0
-use_roundcaps 1
-
-use_nonprop_fonts yes
-enable_horiz_grid yes
-use_big_fonts no
-constant_marker_update yes
-show_grid yes
-show_base_symbols no
-use_roundcaps yes
-
-atomic_vectors yes
-vcd_explicit_zero_subscripts no
-
-
-#
-# color additions
-#
-color_back   000000
-color_grid   808070
-color_high   00ff00
-color_low    00ffff
-color_trans  00ffff
-color_mid    a0c040
-
-color_value  00ffff
-color_vbox   00ff00
-color_vtrans 00ff00
-
-color_x      ff0000
-color_xfill  800000
-
-color_umark  ff8080
-color_mark   ffff80
-
-color_time   ff8000
-color_timeb  000040
-
-
diff --git a/openair3/MESH/RRM/VCD/mkvcd b/openair3/MESH/RRM/VCD/mkvcd
deleted file mode 100755
index b1e1650191..0000000000
--- a/openair3/MESH/RRM/VCD/mkvcd
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-
-my $t_old ;
-my $t ;
-my $tt ;
-my $inst ;
-my $interf;
-my $funct;
-my $nfunc;
-my $transid; 
-my $transaction_mode = 1;
-
-my %wire = ( "CMM->RRM"  => "w00" ,"RRM->CMM"  => "w01",
-			 "RRC->RRM"  => "w02" ,"RRM->RRC"  => "w03",
-			 "PUSU->RRM" => "w06" ,"RRM->PUSU" => "w07"
-			  );
-			 
-my %old_value = ( 	"CMM->RRM"  => "x" ,"RRM->CMM"  => "x",
-			 		"PUSU->RRM" => "x" ,"RRM->PUSU" => "x",
-			      	"RRC->RRM"  => "x" ,"RRM->RRC"  => "x" );
-
-my %value = ( 		"CMM->RRM"  => "..." ,"RRM->CMM"  => "...",
-			 		"PUSU->RRM" => "..." ,"RRM->PUSU" => "...",
-			      	"RRC->RRM"  => "..." ,"RRM->RRC"  => "..." );
-
-open( FDOUT, ">wave.vcd" );
-
-printf( FDOUT "\$comment 
-Affichage des echanges du RRM avec le RRC et le CMM             
-utiliser GTKwave pour visualiser ce fichier   
-->	http://linux-workshop.com/bybell/ver/wave/gtkwave9x.html         
-\$end
-\$timescale
-	1us            
-\$end
-
-\$version
- 	timing simulation 
-\$end
-
-\$var real  1 w00 CMM-->RRM	    \$end
-\$var real  1 w01 RRM-->CCM	    \$end
-\$var real  1 w02 RRC-->RRM 	\$end
-\$var real  1 w03 RRM-->RRC     \$end
-\$var real  1 w04 transaction   \$end
-\$var real  1 w05 instance      \$end
-\$var real  1 w06 PUSU-->RRM 	\$end
-\$var real  1 w07 RRM-->PUSU    \$end
-
-\$enddefinitions \$end
-" );
-
-
-#open( FDIN, "<toto.res" ) ;
-open( FDIN, "cat cmm2rrm.txt rrc2rrm.txt pusu2rrm.txt rrm2cmm.txt rrm2rrc.txt rrm2pusu.txt | sort -n |" ) ;
-while( <FDIN>)
-{
-	chomp ;
-	( $t, $interf, $inst, $funct, $nfunc, $transid ) = split ;
-	
-	$t_old = $t-0.1 if ($t_old ==0 ) ;
-	
-	foreach my $k ( keys %old_value )
-	{
-		$value{$k} = "..." ;
-	}
-	
-	$value{"$interf"}=$funct;
-	
-	if ( $transaction_mode == 1)
-	{
-		printf( FDOUT "#%d\n",   $tt *1e6 ) ;
-	}
-	else
-	{
-		printf( FDOUT "#%d\n",   ( ($t -$t_old) *1e6) ) ;
-	}
-	
-	printf( FDOUT "r%d w04\n", $transid ) ;
-	printf( FDOUT "r%d w05\n", $inst ) ;
-
-	foreach my $k ( keys %old_value )
-	{
-		if ( $value{$k} ne $old_value{$k}) 
-		{
-			printf( FDOUT "s%s %s\n",   $value{$k}, $wire{$k} ) ;
-		}
-		
-		$old_value{$k} = $value{$k} ;
-	}
-	
-	$tt+=0.1;
-	
-}
-
-foreach my $k ( keys %old_value )
-{
-	$value{$k} = "..." ;
-}
-
-
-if ( $transaction_mode == 1)
-{
-	printf( FDOUT "#%d\ns... w04\n",   ($tt+0.1 )*1e6  ) ;
-}
-else
-{
-	printf( FDOUT "#%d\ns... w04\n",   int( ($t+0.1 -$t_old) *1e6  )) ;
-}
-
-foreach my $k ( keys %old_value )
-{
-	if ( $value{$k} ne $old_value{$k}) 
-	{
-		printf( FDOUT "s%s %s\n",   $value{$k}, $wire{$k} ) ;
-	}
-}
-
-if ( $transaction_mode == 1)
-{
-	printf( FDOUT "#%d\ns... w04\n",   ($tt+0.2 )*1e6  ) ;
-}
-else
-{
-	printf( FDOUT "#%d\ns... w04\n",   int( ($t+0.2 -$t_old) *1e6  )) ;
-}
-	
-close(FDIN);
-close(FDOUT);
diff --git a/openair3/MESH/RRM/all_freq_to_users_form.c b/openair3/MESH/RRM/all_freq_to_users_form.c
deleted file mode 100644
index 8bc4b37228..0000000000
--- a/openair3/MESH/RRM/all_freq_to_users_form.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/* Form definition file generated with fdesign. */
-
-#include "forms.h"
-#include <stdlib.h>
-#include "all_freq_to_users_form.h"
-
-FD_all_freq_to_users *create_form_all_freq_to_users(void)
-{
-  FL_OBJECT *obj;
-  FD_all_freq_to_users *fdui = (FD_all_freq_to_users *) fl_calloc(1, sizeof(*fdui));
-
-  //mod_lor_10_12_07++
-  /*fdui->all_freq_to_users = fl_bgn_form(FL_NO_BOX, 460, 300);
-  obj = fl_add_box(FL_UP_BOX,0,0,460,300,"");
-  fdui->User_2_channels = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,160,420,100,"User_2_channels");
-    fl_set_object_color(obj,FL_BLACK,FL_CHARTREUSE);
-    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fdui->User_1_channels = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,20,420,100,"User_1_channels");
-    fl_set_object_color(obj,FL_BLACK,FL_PALEGREEN);
-    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-
-  fl_end_form();*/
-  //mod_lor_10_12_07--: remove upper part and put part below when on 2 PCs
-
-
-  fdui->all_freq_to_users = fl_bgn_form(FL_NO_BOX, 460, 420);
-  obj = fl_add_box(FL_UP_BOX,0,0,460,420,"");
-  fdui->User_1_channels = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,20,420,100,"User_1_channels");
-  fl_set_object_color(obj,FL_BLACK,FL_PALEGREEN);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fdui->User_2_channels = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,155,420,100,"User_2_channels");
-  fl_set_object_color(obj,FL_BLACK,FL_CHARTREUSE);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fdui->User_3_channels = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,290,420,100,"User_3_channels");
-  fl_set_object_color(obj,FL_BLACK,FL_CYAN);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  /*fdui->User_4_channels = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,440,420,100,"User_4_channels");
-    fl_set_object_color(obj,FL_BLACK,FL_SLATEBLUE);
-    fl_set_object_lsize(obj,FL_NORMAL_SIZE);*/
-  fl_end_form();
-
-  fdui->all_freq_to_users->fdui = fdui;
-
-  return fdui;
-}
-/*---------------------------------------*/
-
diff --git a/openair3/MESH/RRM/all_freq_to_users_form.fd b/openair3/MESH/RRM/all_freq_to_users_form.fd
deleted file mode 100644
index 04350a6467..0000000000
--- a/openair3/MESH/RRM/all_freq_to_users_form.fd
+++ /dev/null
@@ -1,106 +0,0 @@
-Magic: 13000
-
-Internal Form Definition File
-    (do not change)
-
-Number of forms: 1
-Unit of measure: FL_COORD_PIXEL
-
-=============== FORM ===============
-Name: all_freq_to_users
-Width: 580
-Height: 590
-Number of Objects: 5
-
---------------------
-class: FL_BOX
-type: UP_BOX
-box: 0 0 580 590
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: 
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: 
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 40 20 490 100
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_PALEGREEN
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_1_channels
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_1_channels
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 40 160 490 100
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_CHARTREUSE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_2_channels
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_2_channels
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 40 300 490 100
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_CYAN
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_3_channels
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_3_channels
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 40 440 490 100
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_SLATEBLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_4_channels
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_4_channels
-callback: 
-argument: 
-
-==============================
-create_the_forms
diff --git a/openair3/MESH/RRM/all_freq_to_users_form.h b/openair3/MESH/RRM/all_freq_to_users_form.h
deleted file mode 100644
index 8a2def5aa3..0000000000
--- a/openair3/MESH/RRM/all_freq_to_users_form.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/** Header file generated with fdesign on Fri Nov  5 18:43:31 2010.**/
-
-#ifndef FD_all_freq_to_users_h_
-#define FD_all_freq_to_users_h_
-
-/** Callbacks, globals and object handlers **/
-
-
-/**** Forms and Objects ****/
-typedef struct {
-  FL_FORM *all_freq_to_users;
-  void *vdata;
-  char *cdata;
-  long  ldata;
-  FL_OBJECT *User_1_channels;
-  FL_OBJECT *User_2_channels;
-  FL_OBJECT *User_3_channels;
-  FL_OBJECT *User_4_channels;
-} FD_all_freq_to_users;
-
-extern FD_all_freq_to_users * create_form_all_freq_to_users(void);
-
-#endif /* FD_all_freq_to_users_h_ */
diff --git a/openair3/MESH/RRM/ch_init.c b/openair3/MESH/RRM/ch_init.c
deleted file mode 100644
index aa16c2da57..0000000000
--- a/openair3/MESH/RRM/ch_init.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       ch_init.c
-
-\brief      Fonctions permettant la gestion de la phase d'initialisation du
-            cluster head.
-
-\author     BURLOT Pascal
-
-\date       29/08/08
-
-
-\par     Historique:
-        P.BURLOT 2009-01-20
-            + separation de la file de message CMM/RRM a envoyer en 2 files
-              distinctes ( file_send_cmm_msg, file_send_rrc_msg)
-        L.IACOBELLI 2009-10-19
-            + include
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "L3_rrc_interface.h"
-#include "cmm_rrm_interface.h"
-#include "rrm_sock.h"
-#include "rrc_rrm_msg.h"
-#include "cmm_msg.h"
-#include "msg_mngt.h"
-#include "pusu_msg.h"
-#include "rb_db.h"
-#include "neighbor_db.h"
-#include "sens_db.h"
-#include "channels_db.h"
-#include "rrm_util.h"
-#include "transact.h"
-#include "rrm_constant.h"
-#include "rrm.h"
-#include "ch_init.h"
-
-
-
-//! Met un message dans la file des messages a envoyer
-#define PUT_CMM_MSG(m)  put_msg(  &(rrm->file_send_cmm_msg), 0, rrm->cmm.s,m )  //mod_lor_10_01_25
-#define PUT_PUSU_MSG(m) put_msg(  &(rrm->file_send_cmm_msg), 0, rrm->pusu.s,m)  //mod_lor_10_01_25
-#define PUT_RRC_MSG(m)  put_msg(  &(rrm->file_send_rrc_msg), 0, rrm->rrc.s,m )  //mod_lor_10_01_25
-
-/*!
-*******************************************************************************
-\brief  Request to initialize the Cluster Head with L3 Information
-*/
-void cmm_init_ch_req(
-  Instance_t inst      , //!< Identification de l'instance
-  L3_INFO_T  L3_info_t , //!< Type of L3 Information
-  void      *L3_info     //!< L3 addressing Information
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( rrm->state == CLUSTERHEAD_INIT0 ) {
-    L2_ID src_dst[2] ;
-    memcpy(&src_dst[0], &rrm->L2_id, sizeof(L2_ID)) ;
-    memcpy(&src_dst[1], &rrm->L2_id, sizeof(L2_ID)) ;
-
-    if ( L3_info != NULL ) {
-      rrm->L3_info_t = L3_info_t ;
-
-      if ( L3_info_t != NONE_L3 )
-        memcpy( rrm->L3_info, L3_info, L3_info_t );
-    }
-
-    //fprintf(stderr,"L3_ch_init    ");//dbg
-    //print_L3_id( IPv4_ADDR, rrm->L3_info   );
-    //fprintf(stderr,"\n");//dbg
-
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    rrm->rrc.trans_cnt++ ;
-
-    PUT_RRC_MSG(
-      msg_rrm_init_ch_req( inst,
-                           rrm->rrc.trans_cnt,
-                           &Lchan_desc[QOS_SRB0],
-                           &Lchan_desc[QOS_SRB1],
-                           rrm->L2_id
-                         )
-    ) ;
-
-    // On ne gere pas SRB0/1 car implicite
-    // add_rb( &(rrm->rrc.pRbEntry), rrm->rrc.trans_cnt, QOS_SRB0, &src_dst[0] ) ;
-    // add_rb( &(rrm->rrc.pRbEntry), rrm->rrc.trans_cnt, QOS_SRB1, &src_dst[0] ) ;
-
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-    pthread_mutex_lock( &( rrm->pusu.exclu ) ) ;
-    rrm->pusu.trans_cnt++ ;
-    add_item_transact( &(rrm->pusu.transaction), rrm->pusu.trans_cnt,INT_PUSU,RRM_PUBLISH_IND,0,NO_PARENT);
-    pthread_mutex_unlock( &( rrm->pusu.exclu ) ) ;
-    PUT_PUSU_MSG(msg_rrm_publish_ind( inst, PUSU_RRM_SERVICE, rrm->pusu.trans_cnt  )) ;
-
-  }
-}
-
-/*!
-*******************************************************************************
-\brief Mesh router PHY-Synch Indication
-*/
-void rrc_phy_synch_to_MR_ind(
-  Instance_t inst      , //!< Identification de l'instance
-  L2_ID      L2_id       //!< L2 ID of MR
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( rrm->state == ISOLATEDNODE ) {
-    /* Memorisation du L2_id du noeud ( c'est le niveau RRC qui a l'info ) */
-    memcpy( &rrm->L2_id,  &L2_id, sizeof(L2_ID));
-
-    //--------------------------------------------
-    pthread_mutex_lock(   &( rrm->rrc.exclu )  ) ;
-
-    if ( rrm->rrc.pNeighborEntry  != NULL ) // Reset Neighborhood
-      del_all_neighbor( &(rrm->rrc.pNeighborEntry) );
-
-    pthread_mutex_unlock( &( rrm->rrc.exclu )  ) ;
-
-    //mod_lor_10_03_01++
-    //if (WSN){
-    if (WSN && rrm->id == FC_ID) {
-      rrm->role = FUSIONCENTER;
-      fprintf(stderr,"[CRRM] FUSIONCENTER\n");
-    } else if (rrm->id == BTS_ID && SCEN_1) {
-      rrm->role = BTS;
-      fprintf(stderr,"[CRRM] BTS\n");
-    }
-    //mod_lor_10_04_27++
-    else if (rrm->id == FC_ID && SCEN_2_CENTR) {
-      rrm->role = FUSIONCENTER;
-      fprintf(stderr,"[CRRM] CH1\n");
-    } else if (rrm->id == CH_COLL_ID &&SCEN_2_CENTR) {
-      rrm->role = CH_COLL;
-      fprintf(stderr,"[CRRM] CH2\n");
-    } else
-      fprintf(stderr,"Warning!!! No role assigned\n");
-
-    //mod_lor_10_04_27--
-    //mod_lor_10_03_01--
-
-    PUT_CMM_MSG( msg_router_is_CH_ind( inst,rrm->L2_id)) ;
-
-    rrm->state = CLUSTERHEAD_INIT0 ;
-    fprintf(stderr,"[CRRM] CLUSTERHEAD_INIT0\n");
-  } else
-    fprintf(stderr,"[CRRM] RRC_PHY_SYNCH_TO_MR_IND/TIMEOUT_IN  is not allowed (Only IN):etat=%d\n",rrm->state);
-}
-
-
diff --git a/openair3/MESH/RRM/ch_init.h b/openair3/MESH/RRM/ch_init.h
deleted file mode 100644
index 95e9095e8c..0000000000
--- a/openair3/MESH/RRM/ch_init.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file     ch_init.h
-
-\brief    Fichier d'entete contenant les declarations des types, des defines ,
-      et des fonctions relatives a la gestion de la phase d'initialisation
-      du cluster head.
-
-\author   BURLOT Pascal
-
-\date     29/08/08
-
-
-\par     Historique:
-      $Author$  $Date$  $Revision$
-      $Id$
-      $Log$
-
-*******************************************************************************
-*/
-
-#ifndef CH_INIT_H
-#define CH_INIT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// ---------------------------------------------------------------------------
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CH_INIT_H */
diff --git a/openair3/MESH/RRM/channels_db.c b/openair3/MESH/RRM/channels_db.c
deleted file mode 100755
index d8d7ca54d0..0000000000
--- a/openair3/MESH/RRM/channels_db.c
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       channels_db.c
-
-\brief      Fonctions permettant la gestion de la base de donnée sur les canaux
-
-\author     IACOBELLI Lorenzo
-
-\date       16/10/09
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "rrm_util.h"
-#include "sens_db.h"
-#include "channels_db.h"
-
-
-//! Selection locale du mode de debug
-#define DBG_CHANNELS_DB 1
-
-#if DBG_CHANNELS_DB==0
-//! Macro inactive
-#define PRINT_CHANNELS_DB(...)
-#else
-//! Macro affichant  la liste des radio bearers
-#define PRINT_CHANNELS_DB(...) print_channels_db( __VA_ARGS__ )
-#endif
-
-/*!
-*******************************************************************************
-\brief  La fonction affiche a l'ecran la liste (pour du debug)
-
-\return  aucune valeur retournee
-*/
-void print_channels_db(
-  CHANNELS_DB_T *pEntry ///< pointeur sur le debut de liste
-)
-{
-  //unsigned int i; //dbg
-  CHANNELS_DB_T *pCurrentItem = pEntry;
-  int i;
-
-  //fprintf(stderr,"channels entry  @%p \n", pEntry);//dbg
-  //fprintf(stderr,"sens list=[\n");
-  while ( pCurrentItem != NULL) {
-    //fprintf(stderr,"curr channel %d is free? %d \n", pCurrentItem->channel.Ch_id,pCurrentItem->is_free);//dbg
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  fprintf(stderr," ]\n");
-}
-
-
-
-
-
-/*!
-*******************************************************************************
-\brief  Comparaison de deux ID de niveau 2
-
-\return si 0 alors les IDs sont identiques
-*/
-static int L2_ID_cmp(
-  L2_ID *L2_id1, ///< ID de niveau 2
-  L2_ID *L2_id2  ///< ID de niveau 2
-)
-{
-  return memcmp( L2_id1, L2_id2, sizeof(L2_ID) ) ;
-}
-
-
-/*!
-*******************************************************************************
-\brief  La fonction ajoute un nouveau canal.
-
-\return  retourne la valeur du nouvel element
-*/
-CHANNELS_DB_T *add_chann_db(
-  CHANNELS_DB_T **ch_entry  , ///< pointeur sur l'entree de la liste de noeuds
-  CHANNEL_T channel         , ///< channel to insert in the list
-  unsigned int is_free      , ///< Information about the availability of the channel //mod_lor_10_05_28 ->char instead of int
-  double info_time            ///< Date of information update
-)
-{
-  //fprintf(stderr,"starting ch pointer  @%p \n", *ch_entry);//dbg
-  //fprintf(stderr,"\n NB_info=%d \n", NB_info); //dbg
-  CHANNELS_DB_T *pOldEntry = *ch_entry;
-  CHANNELS_DB_T *pNewItem = RRM_CALLOC( CHANNELS_DB_T , 1 ) ;
-
-  PNULL(pNewItem) ;
-
-  if ( pNewItem == NULL )
-    return NULL ;
-
-  memcpy( &(pNewItem->channel) ,&channel, sizeof(CHANNEL_T) ) ;
-  pNewItem->info_time =  info_time ;
-  pNewItem->is_free   =  is_free;
-  pNewItem->priority  =  0;
-  pNewItem->is_ass    =  0;
-  //fprintf(stderr,"starting ch pointer  @%p \n", pNewItem->info_hd);//dbg
-
-
-  *ch_entry          =  pNewItem ;
-  pNewItem->next     =  pOldEntry;
-  /*fprintf(stderr,"add_node\n\n");//dbg
-  fprintf(stderr,"node entry  @%p \n", (*node_entry)->info_hd);//dbg
-  fprintf(stderr,"node entry  @%p \n", pNewItem->info_hd);//dbg
-  fprintf(stderr,"passed par  @%p \n", ch_info_hd);//dbg*/
-
-  return pNewItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction detruit entierement les info sur les canaux memorizées à l'adresse indiqué
-
-\return  aucune valeur.
-*/
-void del_all_channels(
-  CHANNELS_DB_T **ch_entry  ///< pointeur sur l'entree de la liste
-)
-{
-  CHANNELS_DB_T *pCurrentItem = *ch_entry;
-  CHANNELS_DB_T *pNextItem    ;
-
-  if ( (pCurrentItem == NULL)  || (ch_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-    RRM_FREE( pCurrentItem ) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  *ch_entry = NULL ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction retire l'element identifie par le Ch_id de la liste des canaux
-
-\return  aucune valeur.
-*/
-void del_channel(
-  CHANNELS_DB_T **ch_entry  , ///< pointeur sur l'entree de la liste de noeuds
-  unsigned int Ch_id          ///< channel ID
-)
-{
-  CHANNELS_DB_T *pCurrentItem = *ch_entry;
-  CHANNELS_DB_T *pNextItem    ;
-  CHANNELS_DB_T **ppPrevItem  = ch_entry ;
-
-  if ( (pCurrentItem == NULL)  || (ch_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-
-    if ( pCurrentItem->channel.Ch_id == Ch_id ) {
-      *ppPrevItem = pNextItem;
-
-      RRM_FREE( pCurrentItem ) ;
-      fprintf( stdout,"channel %d deleted from database\n", Ch_id);
-
-      return ;
-    }
-
-    ppPrevItem   = &(pCurrentItem->next) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  if ( pCurrentItem == NULL )
-    fprintf(stderr, "ERROR: channel_id unknown\n") ;
-
-}
-
-
-
-/*!
-*******************************************************************************
-\brief  La fonction recherche le descripteur du canal identifie par le Ch_id
-        dans la liste des canaux
-
-\return  pointeur sur le descripteur de canal trouve sinon NULL .
-*/
-CHANNELS_DB_T *get_chann_db_info(
-  CHANNELS_DB_T *ch_entry  , ///< pointeur sur l'entree de la liste de noeuds
-  unsigned int Ch_id         ///< channel ID
-)
-{
-  CHANNELS_DB_T *pCurrentItem = ch_entry;
-
-  while ( pCurrentItem != NULL) {
-    if ( pCurrentItem->channel.Ch_id == Ch_id)
-      break  ;
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  return pCurrentItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction ajoute ou update un canal.
-
-\return  retourne la valeur du nouvel element
-*/
-CHANNELS_DB_T *up_chann_db(
-  CHANNELS_DB_T **ch_entry  , ///< pointeur sur l'entree de la liste de noeuds
-  CHANNEL_T channel         , ///< channel to insert in the list
-  unsigned int is_free      , ///< Information about the availability of the channel //mod_lor_10_05_28 ->char instead of int
-  double info_time            ///< Date of information update
-)
-{
-  if (ch_entry == NULL) {
-    fprintf(stderr,"ERROR! invalid database pointer \n");
-    return(NULL);
-  }
-
-  CHANNELS_DB_T *pNewItem = get_chann_db_info( *ch_entry, channel.Ch_id );
-
-  if ( pNewItem == NULL ) {
-    pNewItem = add_chann_db( ch_entry, channel, is_free, info_time);
-    return pNewItem;
-  }
-
-  pNewItem->info_time =  info_time ;
-  //mod_lor_10_05_17++
-  pNewItem->is_free=is_free;
-  /*if (is_free == pNewItem->is_free)
-      return pNewItem;
-  if (!(pNewItem->is_ass)){
-      pNewItem->is_free=is_free;
-      return pNewItem;
-  }*/
-  return pNewItem;
-  //else
-  //    fprintf(stderr,"Primary User detected on channel %d in use by secondary network\n", channel.Ch_id);//mod_lor_10_05_12
-  //mod_lor_10_05_17--
-  //PRINT_CHANNELS_DB(*ch_entry); //dbg
-  return NULL;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction mis à jour les canaux assignés.
-
-\return  retourne la valeur du nouvel element
-*/
-CHANNELS_DB_T *up_chann_ass(
-  CHANNELS_DB_T *ch_entry  , ///< pointeur sur l'entree de la liste de noeuds
-  unsigned int Ch_id       , ///< ID of the channel to update
-  unsigned int is_ass      , ///< Information about the use of the channel by the secondary network
-  L2_ID source_id          , ///< In case of channel assigned: address of the source node that is using it
-  L2_ID dest_id              ///< In case of channel assigned: address of the destination node that is using it
-)
-
-{
-  //fprintf(stderr,"up_channels 1 inizio\n");//dbg
-  CHANNELS_DB_T *pChannels = get_chann_db_info( ch_entry  , Ch_id );
-
-  if (pChannels == NULL) {
-    fprintf(stderr,"ERROR! Channel %d not in database!\n", Ch_id);
-    return (NULL);
-  }
-
-  //fprintf(stderr,"up_channels 2 trovato\n");//dbg
-  //fprintf(stderr,"up_channels 2b is_free: %d is_ass: %d\n",pChannels->is_free,pChannels->is_ass);//dbg
-  if (!(pChannels->is_free)) {
-    fprintf(stderr,"The channel %d is not free!\n", Ch_id);
-    return (NULL); //mod_lor_10_05_17
-  } else if (pChannels->is_ass == is_ass) {
-    //fprintf(stderr,"up_channels 3 is_ass\n");//dbg
-    if (is_ass && L2_ID_cmp (&(source_id), &(pChannels->source_id))!=0)
-      fprintf(stderr,"The channel %d is already assigned \n", Ch_id);
-
-    //fprintf(stderr,"No updating performed for channel %d \n", Ch_id);//dbg
-
-  } else {
-    pChannels->is_ass = is_ass;
-
-    //fprintf(stderr,"up_channels 4 is_ass\n");//dbg
-    if (is_ass) {
-      //fprintf(stderr,"up_channels 5 is_ass\n");//dbg
-      memcpy( pChannels->source_id.L2_id, source_id.L2_id, sizeof(L2_ID) )  ;
-      memcpy( pChannels->dest_id.L2_id, dest_id.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    //fprintf(stdout,"Channel %d assignement updated in %d\n", Ch_id, is_ass);//dbg
-  }
-
-  //fprintf(stderr,"up_channels 6 END\n");//dbg
-  return (pChannels);
-}
-
-//mod_lor_10_05_17++
-/*!
-*******************************************************************************
-\brief  The function select a new channel among the free ones. It selects the
-        first channel marked as free and not assigned in the channels database
-        and assigns it to the nodes whose L2_ids are passed as imput
-
-\return  the pointer to selected channel entry; NULL if not available channels are found
-*/
-CHANNELS_DB_T *select_new_channel(
-  CHANNELS_DB_T *ch_entry  , ///< pointeur sur l'entree de la liste de noeuds
-  L2_ID source_id          , ///< In case of channel assigned: address of the source node that is using it
-  L2_ID dest_id              ///< In case of channel assigned: address of the destination node that is using it
-)
-
-{
-
-  CHANNELS_DB_T *pChannels = ch_entry;
-
-  while ( pChannels != NULL) {
-    if ( pChannels->is_free && !(pChannels->is_ass) )
-      break  ;
-
-    pChannels = pChannels->next ;
-  }
-
-
-  if (pChannels == NULL) {
-    fprintf(stderr,"*SELECT NEW CHANNEL* -> No free channels available!\n");
-    return (NULL);
-  } else {
-    pChannels->is_ass = 1;
-    memcpy( pChannels->source_id.L2_id, source_id.L2_id, sizeof(L2_ID) )  ;
-    memcpy( pChannels->dest_id.L2_id, dest_id.L2_id, sizeof(L2_ID) )  ;
-  }
-
-  return (pChannels);
-}
-//mod_lor_10_05_17--
diff --git a/openair3/MESH/RRM/channels_db.h b/openair3/MESH/RRM/channels_db.h
deleted file mode 100755
index 0f80616830..0000000000
--- a/openair3/MESH/RRM/channels_db.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       channels_db.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-            et des fonctions relatives a la gestion de la base de donnée sur
-            les canaux.
-
-\author     IACOBELLI Lorenzo
-
-\date       16/10/09
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#ifndef CHANNELS_DB_H
-#define CHANNELS_DB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-// ---------------------------------------------------------------------------
-
-CHANNELS_DB_T *add_chann_db( CHANNELS_DB_T **ch_entry, CHANNEL_T channel, unsigned int is_free, double info_time);        //mod_lor_10_05_28 ->char instead of int
-void del_channel( CHANNELS_DB_T **ch_entry, unsigned int Ch_id);
-void del_all_channels( CHANNELS_DB_T **ch_entry ) ;
-CHANNELS_DB_T *get_chann_db_info( CHANNELS_DB_T *ch_entry  , unsigned int Ch_id );
-CHANNELS_DB_T *up_chann_db( CHANNELS_DB_T **ch_entry, CHANNEL_T channel, unsigned int is_free, double info_time); //mod_lor_10_05_28 ->char instead of int
-CHANNELS_DB_T *up_chann_ass( CHANNELS_DB_T *ch_entry, unsigned int Ch_id, unsigned int is_ass, L2_ID source_id, L2_ID dest_id);
-CHANNELS_DB_T *select_new_channel( CHANNELS_DB_T *ch_entry, L2_ID source_id, L2_ID dest_id); //mod_lor_10_05_17
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CHANNELS_DB_H */
diff --git a/openair3/MESH/RRM/cmm_msg.c b/openair3/MESH/RRM/cmm_msg.c
deleted file mode 100644
index d317520aae..0000000000
--- a/openair3/MESH/RRM/cmm_msg.c
+++ /dev/null
@@ -1,793 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       cmm_msg.c
-
-\brief      Fonctions permettant le formattage des donnees pour l'envoi d'un
-            message sur le socket entre le CMM et le RRM
-
-\author     BURLOT Pascal
-
-\date       16/07/08
-
-
-\par     Historique:
-            L.IACOBELLI 2009-10-19
-                + new messages
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "L3_rrc_defs.h"
-#include "rrm_sock.h"
-#include "cmm_rrm_interface.h"
-#include "cmm_msg.h"
-#include "rrm_util.h"
-
-#ifdef TRACE
-//! Macro creant la chaine a partir du nom de la variable
-#define STRINGIZER(x) #x
-//! Tableau pour le mode trace faisant la translation entre le numero et le nom du message
-const char *Str_msg_cmm_rrm[NB_MSG_CMM_RRM] =  {
-  STRINGIZER(CMM_CX_SETUP_REQ       ),
-  STRINGIZER(RRM_CX_SETUP_CNF       ),
-  STRINGIZER(CMM_CX_MODIFY_REQ      ),
-  STRINGIZER(RRM_CX_MODIFY_CNF      ),
-  STRINGIZER(CMM_CX_RELEASE_REQ     ),
-  STRINGIZER(RRM_CX_RELEASE_CNF     ),
-  STRINGIZER(CMM_CX_RELEASE_ALL_REQ ),
-  STRINGIZER(RRM_CX_RELEASE_ALL_CNF ),
-  STRINGIZER(RRCI_ATTACH_REQ        ),
-  STRINGIZER(RRM_ATTACH_IND         ),
-  STRINGIZER(CMM_ATTACH_CNF         ),
-  STRINGIZER(RRM_MR_ATTACH_IND      ),
-  STRINGIZER(ROUTER_IS_CH_IND       ),
-  STRINGIZER(RRCI_CH_SYNCH_IND      ),
-  STRINGIZER(CMM_INIT_MR_REQ        ),
-  STRINGIZER(RRM_MR_SYNCH_IND       ),
-  STRINGIZER(RRM_NO_SYNCH_IND       ),
-  STRINGIZER(CMM_INIT_CH_REQ        ),
-  STRINGIZER(CMM_INIT_SENSING       ),
-  STRINGIZER(CMM_STOP_SENSING       ),
-  STRINGIZER(CMM_ASK_FREQ           ),
-  STRINGIZER(CMM_NEED_TO_TX         ),
-  STRINGIZER(CMM_INIT_COLL_SENSING  ),//add_lor_10_11_08
-  STRINGIZER(CMM_USER_DISC          ),//add_lor_10_11_08
-  STRINGIZER(CMM_LINK_DISC          )//,//add_lor_10_11_08
-  //STRINGIZER(CMM_INIT_TRANS_REQ     ),
-  //STRINGIZER(RRM_INIT_TRANS_CONF    )
-};
-#endif
-
-/*!
-*******************************************************************************
-\brief  This function initialize the message header
-\return any return value
-*/
-static void init_cmm_msg_head(
-  msg_head_t   *msg_head , //!< message header to initialize
-  Instance_t    inst     , //!< identification de l'instance
-  MSG_CMM_RRM_T msg_type , //!< type of message to initialize
-  unsigned int  size     , //!< size of message
-  Transaction_t Trans_id   //!< transaction id associated to this message
-)
-{
-  if ( msg_head != NULL ) {
-    msg_head->start    = START_MSG ;
-    msg_head->msg_type = 0xFF & msg_type ;
-    msg_head->inst     = inst  ;
-    msg_head->Trans_id = Trans_id  ;
-    msg_head->size     = size ;
-  }
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_cx_setup_req().
-\return message formate
-*/
-msg_t * msg_cmm_cx_setup_req(
-  Instance_t    inst      , //!< identification de l'instance
-  L2_ID         Src       , //!< L2 source MAC address
-  L2_ID         Dst       , //!< L2 destination MAC address
-  QOS_CLASS_T   QoS_class , //!< QOS class index
-  Transaction_t Trans_id    //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    cmm_cx_setup_req_t *p = RRM_CALLOC(cmm_cx_setup_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst,CMM_CX_SETUP_REQ, sizeof( cmm_cx_setup_req_t) ,Trans_id);
-
-      memcpy( p->Src.L2_id, Src.L2_id, sizeof(L2_ID) )  ;
-      memcpy( p->Dst.L2_id, Dst.L2_id, sizeof(L2_ID) )  ;
-      p->QoS_class    = QoS_class;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_cx_setup_cnf().
-\return message formate
-*/
-msg_t * msg_rrm_cx_setup_cnf(
-  Instance_t    inst      , //!< identification de l'instance
-  RB_ID         Rb_id     , //!< L2 Rb_id
-  Transaction_t Trans_id    //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrm_cx_setup_cnf_t *p = RRM_CALLOC(rrm_cx_setup_cnf_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst,RRM_CX_SETUP_CNF, sizeof( rrm_cx_setup_cnf_t) ,Trans_id);
-
-      p->Rb_id        = Rb_id ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_cx_modify_req().
-\return message formate
-*/
-msg_t * msg_cmm_cx_modify_req(
-  Instance_t    inst      , //!< identification de l'instance
-  RB_ID         Rb_id     , //!< L2 Rb_id
-  QOS_CLASS_T   QoS_class , //!< QOS class index
-  Transaction_t Trans_id    //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    cmm_cx_modify_req_t *p = RRM_CALLOC(cmm_cx_modify_req_t, 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst,CMM_CX_MODIFY_REQ, sizeof( cmm_cx_modify_req_t ) ,Trans_id);
-      p->Rb_id        = Rb_id  ;
-      p->QoS_class    = QoS_class  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_cx_modify_cnf().
-\return message formate
-*/
-msg_t * msg_rrm_cx_modify_cnf(
-  Instance_t    inst      , //!< identification de l'instance
-  Transaction_t Trans_id    //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    init_cmm_msg_head(&(msg->head),inst,RRM_CX_MODIFY_CNF, 0 ,Trans_id);
-    msg->data = NULL ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-         cmm_cx_release_req().
-\return message formate
-*/
-msg_t * msg_cmm_cx_release_req(
-  Instance_t    inst      , //!< identification de l'instance
-  RB_ID          Rb_id    , //!< L2 Rb_id
-  Transaction_t Trans_id    //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    cmm_cx_release_req_t *p = RRM_CALLOC(cmm_cx_release_req_t , 1) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst,CMM_CX_RELEASE_REQ, sizeof( cmm_cx_release_req_t ) ,Trans_id);
-      p->Rb_id        = Rb_id ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_cx_release_cnf().
-\return message formate
-*/
-msg_t * msg_rrm_cx_release_cnf(
-  Instance_t    inst      , //!< identification de l'instance
-  Transaction_t Trans_id    //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    init_cmm_msg_head(&(msg->head),inst,RRM_CX_RELEASE_CNF, 0 ,Trans_id);
-    msg->data = NULL ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_cx_release_all_req().
-\return message formate
-*/
-msg_t * msg_cmm_cx_release_all_req(
-  Instance_t    inst      , //!< identification de l'instance
-  L2_ID         L2_id     , //!< L2 Rb_id
-  Transaction_t Trans_id    //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    cmm_cx_release_all_req_t *p = RRM_CALLOC(cmm_cx_release_all_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst,CMM_CX_RELEASE_ALL_REQ, sizeof( cmm_cx_release_all_req_t) ,Trans_id);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_cx_release_all_cnf().
-\return message formate
-*/
-msg_t * msg_rrm_cx_release_all_cnf(
-  Instance_t    inst      , //!< identification de l'instance
-  Transaction_t Trans_id    //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    init_cmm_msg_head(&(msg->head),inst,RRM_CX_RELEASE_ALL_CNF, 0 ,Trans_id);
-    msg->data = NULL ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrci_attach_req().
-\return message formate
-*/
-msg_t * msg_rrci_attach_req(
-  Instance_t     inst      , //!< identification de l'instance
-  L2_ID          L2_id     , //!< Layer 2 (MAC) ID
-  L3_INFO_T      L3_info_t , //!< Type of L3 Information
-  unsigned char *L3_info   , //!< L3 addressing Information
-  RB_ID          DTCH_B_id , //!< RBID of broadcast IP service (MR only)
-  RB_ID          DTCH_id   , //!< RBID of default IP service (MR only)
-  Transaction_t  Trans_id    //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrci_attach_req_t *p = RRM_CALLOC(rrci_attach_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst,RRCI_ATTACH_REQ, sizeof( rrci_attach_req_t) ,Trans_id);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      p->L3_info_t    = L3_info_t ;
-
-      if ( L3_info_t != NONE_L3 )
-        memcpy( p->L3_info, L3_info, L3_info_t );
-
-      p->DTCH_B_id    = DTCH_B_id ;
-      p->DTCH_id      = DTCH_id ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_attach_ind().
-\return message formate
-*/
-msg_t * msg_rrm_attach_ind(
-  Instance_t     inst      , //!< identification de l'instance
-  L2_ID          L2_id     , //!< Layer 2 (MAC) ID
-  L3_INFO_T      L3_info_t , //!< Type of L3 Information
-  unsigned char *L3_info   , //!< L3 addressing Information
-  RB_ID DTCH_id              //!< RBID of default IP service (MR only)
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrm_attach_ind_t *p = RRM_CALLOC(rrm_attach_ind_t , 1) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst,RRM_ATTACH_IND, sizeof( rrm_attach_ind_t) ,0);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      p->L3_info_t    = L3_info_t ;
-
-      if ( L3_info_t != NONE_L3 )
-        memcpy( p->L3_info, L3_info, L3_info_t );
-
-      p->DTCH_id      = DTCH_id ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_attach_cnf().
-\return message formate
-*/
-msg_t * msg_cmm_attach_cnf(
-  Instance_t     inst      , //!< identification de l'instance
-  L2_ID          L2_id     , //!< Layer 2 (MAC) ID
-  L3_INFO_T      L3_info_t , //!< Type of L3 Information
-  unsigned char *L3_info   , //!< L3 addressing Information
-  Transaction_t  Trans_id    //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    cmm_attach_cnf_t *p = RRM_CALLOC(cmm_attach_cnf_t, 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst,CMM_ATTACH_CNF, sizeof( cmm_attach_cnf_t) ,Trans_id);
-
-      p->L3_info_t    = L3_info_t ;
-
-      if ( L3_info_t != NONE_L3 )
-        memcpy( p->L3_info, L3_info, L3_info_t );
-
-      memcpy( &p->L2_id, &L2_id, sizeof(L2_ID) );
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_MR_attach_ind().
-\return message formate
-*/
-msg_t * msg_rrm_MR_attach_ind(
-  Instance_t     inst      , //!< identification de l'instance
-  L2_ID          L2_id       //!< MR Layer 2 (MAC) ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrm_MR_attach_ind_t *p = RRM_CALLOC( rrm_MR_attach_ind_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst,RRM_MR_ATTACH_IND, sizeof( rrm_MR_attach_ind_t) ,0);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        router_is_CH_ind().
-\return message formate
-*/
-msg_t * msg_router_is_CH_ind(
-  Instance_t     inst      , //!< identification de l'instance
-  L2_ID          L2_id       //!< CH Layer 2 (MAC) ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    router_is_CH_ind_t *p = RRM_CALLOC(router_is_CH_ind_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst,ROUTER_IS_CH_IND, sizeof( router_is_CH_ind_t) ,0);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrci_CH_synch_ind().
-\return message formate
-*/
-msg_t * msg_rrci_CH_synch_ind(
-  Instance_t     inst        //!< identification de l'instance
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    init_cmm_msg_head(&(msg->head),inst,RRCI_CH_SYNCH_IND, 0 ,0);
-    msg->data = NULL ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_init_mr_req().
-\return message formate
-*/
-msg_t * msg_cmm_init_mr_req(
-  Instance_t     inst        //!< identification de l'instance
-)
-{
-  msg_t *msg = RRM_CALLOC( msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    init_cmm_msg_head(&(msg->head),inst,RRCI_CH_SYNCH_IND, 0 ,0);
-
-    msg->data = NULL ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_MR_synch_ind().
-\return message formate
-*/
-msg_t * msg_rrm_MR_synch_ind(
-  Instance_t     inst        //!< identification de l'instance
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    init_cmm_msg_head(&(msg->head),inst, RRM_MR_SYNCH_IND, 0 ,0);
-    msg->data = NULL ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rm_no_synch_ind().
-\return message formate
-*/
-msg_t * msg_rrm_no_synch_ind(
-  Instance_t     inst        //!< identification de l'instance
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t ,1 ) ;
-
-  if ( msg != NULL ) {
-    init_cmm_msg_head(&(msg->head),inst,RRM_NO_SYNCH_IND, 0 ,0);
-    msg->data = NULL ;
-  }
-
-  return msg  ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_init_ch_req.
-\return message formate
-*/
-msg_t * msg_cmm_init_ch_req(
-  Instance_t     inst      , //!< identification de l'instance
-  L3_INFO_T      L3_info_t , //!< Type of L3 Information
-  void          *L3_info     //!< L3 addressing Information
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    cmm_init_ch_req_t *p = RRM_CALLOC(cmm_init_ch_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst, CMM_INIT_CH_REQ, sizeof( cmm_init_ch_req_t) ,0);
-
-      p->L3_info_t    = L3_info_t ;
-
-      if ( L3_info_t != NONE_L3 )
-        memcpy( p->L3_info, L3_info, L3_info_t );
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_init_sensing.
-\return message formate
-*/
-msg_t *msg_cmm_init_sensing( //mod_lor_10_03_12: change of parameters
-  Instance_t       inst,        //!< identification de l'instance
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    cmm_init_sensing_t *p = RRM_CALLOC(cmm_init_sensing_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst, CMM_INIT_SENSING, sizeof( cmm_init_sensing_t) ,0);
-      //mod_lor_10_03_12++
-      p->Start_fr     = Start_fr;
-      p->Stop_fr      = Stop_fr;
-      p->Meas_band    = Meas_band;
-      p->Meas_tpf     = Meas_tpf;
-      p->Nb_channels  = Nb_channels;
-      p->Overlap      = Overlap;
-      p->Sampl_freq   = Sampl_freq;
-      //mod_lor_10_03_12--
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_stop_sensing.
-\return message formate
-*/
-msg_t *msg_cmm_stop_sensing(
-  Instance_t inst        //!< identification de l'instance
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t ,1 ) ;
-
-  if ( msg != NULL ) {
-    init_cmm_msg_head(&(msg->head),inst,CMM_STOP_SENSING, 0 ,0);
-    msg->data = NULL ;
-  }
-
-  return msg  ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_ask_freq.
-\return message formate
-*/
-msg_t *msg_cmm_ask_freq(
-  Instance_t inst        //!< identification de l'instance
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t ,1 ) ;
-
-  if ( msg != NULL ) {
-    init_cmm_msg_head(&(msg->head),inst,CMM_ASK_FREQ, 0 ,0);
-    msg->data = NULL ;
-  }
-
-  return msg  ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_need_to_tx. //add: mod_lor_10_10_28
-\return message formate
-*/
-msg_t *msg_cmm_need_to_tx(
-  Instance_t inst        ,//!< identification de l'instance du noeud qui veut transmettre
-  Instance_t dest        ,//!< identification de l'instance du noeud destinataire
-  QOS_CLASS_T QoS_class   //!< Required quality of service (i.e. number of channels)
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t ,1 ) ;
-
-  if ( msg != NULL ) {
-    cmm_need_to_tx_t *p = RRM_CALLOC(cmm_need_to_tx_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst, CMM_NEED_TO_TX, sizeof( cmm_need_to_tx_t) ,0);
-      p->dest           = dest;
-      p->QoS_class      = QoS_class;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg  ;
-}
-
-/*! //add_lor_10_11_08
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_init_coll_sensing.
-\return message formate
-*/
-msg_t *msg_cmm_init_coll_sensing(
-  Instance_t       inst,        //!< identification de l'instance
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    cmm_init_coll_sensing_t *p = RRM_CALLOC(cmm_init_coll_sensing_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst, CMM_INIT_COLL_SENSING, sizeof( cmm_init_coll_sensing_t) ,0);
-      p->Start_fr     = Start_fr;
-      p->Stop_fr      = Stop_fr;
-      p->Meas_band    = Meas_band;
-      p->Meas_tpf     = Meas_tpf;
-      p->Nb_channels  = Nb_channels;
-      p->Overlap      = Overlap;
-      p->Sampl_freq   = Sampl_freq;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!//add_lor_10_11_09
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_user_disc. msg received by a secondary user that wants to disconnect
-\return message formate
-*/
-msg_t *msg_cmm_user_disc(
-  Instance_t inst        //!< identification de l'instance
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t ,1 ) ;
-
-  if ( msg != NULL ) {
-    init_cmm_msg_head(&(msg->head),inst,CMM_USER_DISC, 0 ,0);
-    msg->data = NULL ;
-  }
-
-  return msg  ;
-}
-
-/*!//add_lor_10_11_09
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_linkr_disc. msg received by a secondary user that wants to stop a link
-\return message formate
-*/
-msg_t *msg_cmm_link_disc(
-  Instance_t inst       ,//!< identification de l'instance
-  Instance_t dest        //!< identification du destinataire
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t ,1 ) ;
-
-  if ( msg != NULL ) {
-    cmm_link_disk_t *p = RRM_CALLOC(cmm_link_disk_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_cmm_msg_head(&(msg->head),inst, CMM_LINK_DISC, sizeof( cmm_link_disk_t) ,0);
-      p->dest = dest;
-    }
-
-    msg->data = (char *) p ;
-
-  }
-
-  return msg  ;
-}
diff --git a/openair3/MESH/RRM/cmm_msg.h b/openair3/MESH/RRM/cmm_msg.h
deleted file mode 100644
index 5adc2ffee7..0000000000
--- a/openair3/MESH/RRM/cmm_msg.h
+++ /dev/null
@@ -1,297 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-/*!
-*******************************************************************************
-
-\file       cmm_msg.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-            et des fonctions relatives aux messages CMM-RRM ou CMM-RRCI.
-
-            Les fonctions servent à créer le buffer de message, remplir l'entete
-            et copier les parametres de fonction. Chaque fonction retourne le
-            message qui pourra être envoye sur le socket entre le CMM et le
-            RRM ou RRCI .
-
-\author     BURLOT Pascal
-
-\date       16/07/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-
-#ifndef CMM_MSG_H
-#define CMM_MSG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
-*******************************************************************************
-\brief  Enumeration des messages entre le RRM/RRCI et le CMM
-*/
-typedef enum {
-  CMM_CX_SETUP_REQ = 0    , ///< Message CMM->RRM : requete de configuration d'une connexion
-  RRM_CX_SETUP_CNF        , ///< Message RRM->CMM : confirmation de configuration d'une connexion
-  CMM_CX_MODIFY_REQ       , ///< Message CMM->RRM : requete de modification d'une connexion
-  RRM_CX_MODIFY_CNF       , ///< Message RRM->CMM : confirmation de modification d'une connexion
-  CMM_CX_RELEASE_REQ      , ///< Message CMM->RRM : requete de liberation d'une connexion
-  RRM_CX_RELEASE_CNF      , ///< Message RRM->CMM : confirmation de liberation d'une connexion
-  CMM_CX_RELEASE_ALL_REQ  , ///< Message CMM->RRM : requete de liberation de toutes les connexions
-  RRM_CX_RELEASE_ALL_CNF  , ///< Message RRM->CMM : confirmation de liberation de toutes les connexions
-  RRCI_ATTACH_REQ         , ///< Message RRCI->CMM : requete de d'attachement d'un MR
-  RRM_ATTACH_IND          , ///< Message RRM->CMM : indicateur d'attachement d'un MR
-  CMM_ATTACH_CNF          , ///< Message CMM->RRM : confirmation d'attachement d'un MR
-  RRM_MR_ATTACH_IND       , ///< Message RRM->CMM : indicateur d'attachement d'un MR
-  ROUTER_IS_CH_IND        , ///< Message RRM->CMM : indicateur que le noeud est un cluster head
-  RRCI_CH_SYNCH_IND       , ///< Message RRCI->CMM : indicateur que le noeud est synchronise sur un CH
-  CMM_INIT_MR_REQ         , ///< Message CMM->RRM : requete d'initialisation de l'attachement d'un MR
-  RRM_MR_SYNCH_IND        , ///< Message RRM->CMM : indicateur que le noeud est synchronise sur un MR
-  RRM_NO_SYNCH_IND        , ///< Message RRM->CMM : indicateur que le noeud n'est pas synchronise sur un CH ou MR
-  CMM_INIT_CH_REQ         , ///< Message CMM->RRM : requete d'initialisation d'un CH
-  CMM_INIT_SENSING        , ///< Message CMM->RRM : requete d'initialisation du sensing
-  CMM_STOP_SENSING        , ///< Message CMM->RRM : requete de stop du sensing
-  CMM_ASK_FREQ            , ///< Message CMM->RRM : in BTS, message to start an open freq. query
-  CMM_NEED_TO_TX          , ///< Message CMM->RRM : in SU, second scenario centr, message to start an open freq. query
-  CMM_INIT_COLL_SENSING   , ///< Message CMM->RRM : requete d'initialisation du sensing collaborative //add_lor_10_11_08
-  CMM_USER_DISC           , ///< Message CMM->RRM : user disconnected -> delete all active com //add_lor_10_11_08
-  CMM_LINK_DISC           , ///< Message CMM->RRM : stop comm -> delete an active link //add_lor_10_11_08
-  //CMM_INIT_TRANS_REQ      , ///< Message CMM->RRM : in SU, second scenario distr, message to start a connection with another SU
-  //RRM_INIT_TRANS_CONF     , ///< Message RRM->CMM : confirmation de l'ouverture de la transition
-  NB_MSG_CMM_RRM            ///< Nombre de message de l'interface
-}
-MSG_CMM_RRM_T ;
-
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction cmm_cx_setup_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct   {
-  L2_ID           Src                     ; //!< L2 source MAC address
-  L2_ID           Dst                     ; //!< L2 destination MAC address
-  QOS_CLASS_T     QoS_class               ; //!< QOS class index
-} cmm_cx_setup_req_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres des fonctions rrm_cx_setup_cnf() et cmm_cx_release_req()
-        dans une structure permettant le passage des parametres via un socket
-*/
-typedef struct   {
-  RB_ID           Rb_id                   ; //!< L2 Rb_id
-} rrm_cx_setup_cnf_t ,
-cmm_cx_release_req_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction cmm_cx_modify_req()
-        dans une structure permettant le passage des parametres via un socket
-*/
-typedef struct   {
-  RB_ID           Rb_id                   ; //!< L2 Rb_id
-  QOS_CLASS_T     QoS_class               ; //!< QOS class index
-} cmm_cx_modify_req_t;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction cmm_cx_release_all_req()
-        dans une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID           L2_id                   ; //!< L2 Rb_id
-} cmm_cx_release_all_req_t;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrci_attach_req()
-        dans une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID           L2_id                   ; //!< Layer 2 (MAC) ID
-  L3_INFO_T       L3_info_t               ; //!< Type of L3 Information
-  unsigned char   L3_info[MAX_L3_INFO]    ; //!< L3 addressing Information
-  RB_ID           DTCH_B_id               ; //!< RBID of broadcast IP service (MR only)
-  RB_ID           DTCH_id                 ; //!< RBID of default IP service (MR only)
-} rrci_attach_req_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_attach_ind()
-        dans une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID           L2_id                   ;  //!< Layer 2 (MAC) ID
-  L3_INFO_T       L3_info_t               ;  //!< Type of L3 Information
-  unsigned char   L3_info[MAX_L3_INFO]    ;  //!< L3 addressing Information
-  RB_ID           DTCH_id                 ;  //!< RBID of default IP service (MR only)
-} rrm_attach_ind_t;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres des fonctions rrm_MR_attach_ind() et router_is_CH_ind()
-        dans une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID           L2_id                   ; //!< MR Layer 2 (MAC) ID
-} rrm_MR_attach_ind_t ,
-router_is_CH_ind_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction cmm_init_ch_req()
-        dans une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L3_INFO_T       L3_info_t               ; //!< Type of L3 Information
-  unsigned char   L3_info[MAX_L3_INFO]    ; //!< L3 addressing Information
-} cmm_init_ch_req_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction cmm_attach_cnf()
-        dans une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID           L2_id;
-  L3_INFO_T       L3_info_t               ; //!< Type of L3 Information
-  unsigned char   L3_info[MAX_L3_INFO]    ; //!< L3 addressing Information
-} cmm_attach_cnf_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction cmm_attach_cnf()
-        dans une structure permettant le passage des parametres via un socket
-*/
-//mod_lor_10_03_12++
-typedef struct {
-  unsigned int     Start_fr;
-  unsigned int     Stop_fr;
-  unsigned int     Meas_band;
-  unsigned int     Meas_tpf;
-  unsigned int     Nb_channels;
-  unsigned int     Overlap;
-  unsigned int     Sampl_freq;
-} cmm_init_sensing_t, cmm_init_coll_sensing_t ;
-//mod_lor_10_03_12++
-
-/*!//add_lor_10_11_03
-*******************************************************************************
-\brief  Definition des parametres de la fonction cmm_cx_setup_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct   {
-  Instance_t      dest                    ; //!< Destination of the message
-  QOS_CLASS_T     QoS_class               ; //!< QOS class index
-} cmm_need_to_tx_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction cmm_init_trans_req()
-        dans une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID           L2_id                   ; //!< Layer 2 (MAC) ID of SU2
-  unsigned int    Session_id              ; //!< Session id
-  QOS_CLASS_T     QoS_class               ; //!< QOS class index
-} cmm_init_trans_req_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_init_trans_conf()
-        dans une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  unsigned int    Session_id              ; //!< Session id
-  CHANNEL_T       all_channel             ; //!< QOS class index
-} rrm_init_trans_conf_t ;
-
-/*!//add_lor_10_11_09
-*******************************************************************************
-\brief  Definition des parametres de la fonction cmm_cx_setup_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct   {
-  Instance_t      dest                    ; //!< Destination of the message
-} cmm_link_disk_t ;
-
-
-
-
-#ifdef TRACE
-extern const char *Str_msg_cmm_rrm[NB_MSG_CMM_RRM] ;
-#endif
-
-/* Rappel : les paramètres sont identiques aux fonctions
- *          (sans le prefixe msg_ ) du fichier: cmm_rrm_interface.h
- */
-msg_t *msg_cmm_cx_setup_req( Instance_t inst, L2_ID Src, L2_ID Dst, QOS_CLASS_T QoS_class,  Transaction_t Trans_id );
-msg_t *msg_rrm_cx_setup_cnf( Instance_t inst, RB_ID Rb_id, Transaction_t Trans_id );
-msg_t *msg_cmm_cx_modify_req( Instance_t inst, RB_ID Rb_id , QOS_CLASS_T QoS_class, Transaction_t Trans_id  );
-msg_t *msg_rrm_cx_modify_cnf( Instance_t inst, Transaction_t Trans_id  );
-msg_t *msg_cmm_cx_release_req( Instance_t inst, RB_ID Rb_id , Transaction_t Trans_id );
-msg_t *msg_rrm_cx_release_cnf( Instance_t inst, Transaction_t Trans_id );
-msg_t *msg_cmm_cx_release_all_req( Instance_t inst, L2_ID L2_id , Transaction_t Trans_id );
-msg_t *msg_rrm_cx_release_all_cnf( Instance_t inst, Transaction_t Trans_id );
-msg_t *msg_rrci_attach_req( Instance_t inst, L2_ID L2_id,  L3_INFO_T L3_info_t, unsigned char *L3_info,
-                            RB_ID DTCH_B_id, RB_ID DTCH_id, Transaction_t Trans_id );
-msg_t *msg_rrm_attach_ind( Instance_t inst, L2_ID L2_id, L3_INFO_T L3_info_t, unsigned char *L3_info, RB_ID DTCH_id  );
-msg_t *msg_cmm_attach_cnf( Instance_t inst, L2_ID L2_id, L3_INFO_T L3_info_t, unsigned char *L3_info,Transaction_t Trans_id );
-msg_t *msg_rrm_MR_attach_ind( Instance_t inst, L2_ID L2_id );
-msg_t *msg_router_is_CH_ind( Instance_t inst, L2_ID L2_id );
-msg_t *msg_rrci_CH_synch_ind( Instance_t inst);
-msg_t *msg_cmm_init_mr_req( Instance_t inst);
-msg_t *msg_rrm_MR_synch_ind(Instance_t inst);
-msg_t *msg_rrm_no_synch_ind( Instance_t inst);
-msg_t *msg_cmm_init_ch_req( Instance_t inst, L3_INFO_T L3_info_t, void *L3_info  );
-msg_t *msg_cmm_init_sensing( Instance_t inst, unsigned int  Start_fr, unsigned int  Stop_fr,unsigned int Meas_band,
-                             unsigned int Meas_tpf, unsigned int Nb_channels,unsigned int Overlap, unsigned int Sampl_freq ); //mod_lor_10_03_12
-msg_t *msg_cmm_stop_sensing( Instance_t inst);
-msg_t *msg_cmm_ask_freq( Instance_t inst);
-msg_t *msg_cmm_need_to_tx( Instance_t inst, Instance_t dest,QOS_CLASS_T QoS_class);
-msg_t *msg_cmm_init_trans_req( Instance_t inst, L2_ID L2_id , unsigned int Session_id, QOS_CLASS_T QoS_class, Transaction_t Trans_id );
-msg_t *msg_rrm_init_trans_conf( Instance_t inst, unsigned int Session_id, CHANNEL_T all_channel, Transaction_t Trans_id );
-msg_t *msg_cmm_ask_freq( Instance_t inst);
-msg_t *msg_cmm_init_sensing( Instance_t inst, unsigned int  Start_fr, unsigned int  Stop_fr,unsigned int Meas_band,
-                             unsigned int Meas_tpf, unsigned int Nb_channels,unsigned int Overlap, unsigned int Sampl_freq ); //add_lor_10_11_08
-msg_t *msg_cmm_user_disc( Instance_t inst); //add_lor_10_11_08
-msg_t *msg_cmm_link_disc( Instance_t inst, Instance_t dest); //add_lor_10_11_09
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CMM_MSG_H */
diff --git a/openair3/MESH/RRM/debug.h b/openair3/MESH/RRM/debug.h
deleted file mode 100644
index b895c090f9..0000000000
--- a/openair3/MESH/RRM/debug.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       debug.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-            et des fonctions relatives au debug .
-
-\author     BURLOT Pascal
-
-\date       29/08/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-/*
- *
- *   Si le flag DEBUG est defini, la macro ASSERT() ne fait rien et la
- *   macro CALL() se contente d'appeler la fonction sans tester le code d'erreur.
- */
-
-#ifdef DEBUG
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-///< Check si le retour de fonction est egale à -1  alors abort()
-#define CALL(f) \
-                                                                    \
-  if (((int)(f)) == -1)                                             \
-  {                                                                 \
-    int err = errno;                                                \
-    char *strerr = strerror(err);                                   \
-                                                                    \
-    fprintf(stderr,                                                 \
-            "CALL(%s): Error at line %u, file %s: %s (errno=%d)\n", \
-            #f, __LINE__, __FILE__,                                 \
-            strerr == NULL ? "Bad error number" : strerr,           \
-            err);                                                   \
-    abort();                                                        \
-  }
-
-///< Check si le pointeur est NULL alors abort()
-#define PNULL(pp) \
-                                                                    \
-  if ( (pp) == NULL)                                                \
-  {                                                                 \
-    fprintf(stderr,                                                 \
-            "PNULL(%s): Error at line %u, file %s: null pointer \n",\
-            #pp, __LINE__, __FILE__ );                              \
-    abort();                                                        \
-  }
-
-#define FOPEN(pp,arg)                                               \
-  pp=fopen arg ;                                                    \
-  if ( (pp) == NULL)                                                \
-  {                                                                 \
-    int err = errno;                                                \
-    char *strerr = strerror(err);                                   \
-                                                                    \
-    fprintf(stderr,                                                 \
-            "%s=fopen%s: \n\tError at line %u, file %s: %s (errno=%d)\n",\
-            #pp, #arg, __LINE__, __FILE__ ,                         \
-            strerr == NULL ? "Bad error number" : strerr,           \
-            err);                                                   \
-    abort();                                                        \
-  }
-
-#define DBG_FPRINT(msg)    fprintf msg
-#define DBG_PRINT(msg)     printf msg
-
-#define ASSERT(cc)                                 \
-                                                   \
-  if (!(cc))                                       \
-  {                                                \
-    fprintf(stderr,                                \
-            "ASSERT(%s): at line %u, file %s\n",   \
-            #cc, __LINE__, __FILE__);              \
-    abort();                                       \
-  }
-
-#define WARNING(cc)                                \
-                                                   \
-  if ((cc))                                       \
-  {                                                \
-    fprintf(stderr,                                \
-            "WARNING(%s): at line %u, file %s\n",  \
-            #cc, __LINE__, __FILE__);              \
-  }
-#else
-
-#define CALL(f) (f)
-#define ASSERT(cc)
-#define WARNING(cc)
-#define PNULL(pp)
-#define DBG_FPRINT(msg)
-#define DBG_PRINT(msg)
-#define FOPEN(pp,arg)   pp=fopen arg
-
-#endif
diff --git a/openair3/MESH/RRM/freq_ass_op.c b/openair3/MESH/RRM/freq_ass_op.c
deleted file mode 100755
index 0dc9087301..0000000000
--- a/openair3/MESH/RRM/freq_ass_op.c
+++ /dev/null
@@ -1,969 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       freq_ass_op.c
-
-\brief      Fonctions permettant la gestion des frequences
-
-\author     IACOBELLI Lorenzo
-
-\date       21/10/09
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-      $Id$
-      $Log$
-
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "L3_rrc_interface.h"
-#include "cmm_rrm_interface.h"
-#include "rrm_sock.h"
-#include "rrc_rrm_msg.h"
-#include "sensing_rrm_msg.h"
-#include "ip_msg.h" //mod_lor_10_04_27
-#include "cmm_msg.h"
-#include "msg_mngt.h"
-#include "pusu_msg.h"
-#include "rb_db.h"
-#include "neighbor_db.h"
-#include "sens_db.h"
-#include "channels_db.h"
-#include "rrm_util.h"
-#include "transact.h"
-#include "rrm_constant.h"
-#include "rrm.h"
-#include "freq_ass_op.h"
-
-
-
-
-//! Met un message dans la file des messages a envoyer
-#define PUT_CMM_MSG(m)  put_msg(  &(rrm->file_send_cmm_msg), 0, rrm->cmm.s,m ) //mod_lor_10_01_25
-#define PUT_PUSU_MSG(m) put_msg(  &(rrm->file_send_cmm_msg), 0, rrm->pusu.s,m) //mod_lor_10_01_25
-#define PUT_RRC_MSG(m)  put_msg(  &(rrm->file_send_rrc_msg), 0, rrm->rrc.s,m ) //mod_lor_10_01_25
-#define PUT_IP_MSG(m)   put_msg(  &(rrm->file_send_ip_msg) , 1, rrm->ip.s,m  ) //mod_lor_10_01_25
-
-
-/*!
-*******************************************************************************
-\brief  Comparaison de deux ID de niveau 2
-
-\return si 0 alors les IDs sont identiques
-*/
-static int L2_ID_cmp(
-  L2_ID *L2_id1, ///< ID de niveau 2
-  L2_ID *L2_id2  ///< ID de niveau 2
-)
-{
-  return memcmp( L2_id1, L2_id2, sizeof(L2_ID) ) ;
-}
-//mod_lor_10_03_19++
-/*!
-*******************************************************************************
-\brief  Function that decides if a channel is free:
-        applyed rule: strict majority
-\return 1 if channel is free, 0 otherwise
-*/
-//mod_eure_lor
-void take_decision(
-  Sens_node_t *SensDB     , //!< pointer to the sensing database
-  unsigned int Ch_id      , //!< channel ID
-  unsigned int *is_free  //mod_lor_10_05_28 ->char instead of int
-
-)
-{
-  Sens_node_t *pSensNode = SensDB;
-  Sens_ch_t *pSensChann;
-  //char is_free = 0;
-  int i;
-
-  while (pSensNode!= NULL) {
-    if((pSensChann = get_chann_info(  pSensNode->info_hd , Ch_id)) != NULL)    {
-      for (i = 0; i<NUM_SB; i++) {
-        if (pSensChann->is_free[i]==1)
-          is_free[i]++;
-        else  if (pSensChann->is_free[i]==0)
-          is_free[i]--;
-      }
-    }
-
-    pSensNode = pSensNode->next;
-  }
-
-  //mod_lor_10_05_07++
-  for (i = 0; i<NUM_SB; i++) {
-    if (is_free[i]>0)
-      is_free[i]=1;
-    else
-      is_free[i]=0;
-  }
-
-  //return pSensChann;
-  /*if (is_free>0)
-      return 1;
-  else
-      return 0;*/
-  //return is_free;
-  //mod_lor_10_05_07--
-
-}
-//mod_lor_10_03_19--
-//mod_lor_10_05_26++
-/*!
-*******************************************************************************
-\brief  Function that decides if a channel is free:
-        applyed rule: strict majority
-\return 0 if operation ended correctly, 1 if info on sensing channel does not exist
-*/
-
-unsigned int take_decision_sens(
-  Sens_node_t *SensDB     , //!< pointer to the sensing database
-  Sens_ch_t *finalSensChann, //!< info that will be returned after decision
-  unsigned int Ch_id       //!< channel ID
-
-)
-{
-  Sens_node_t *pSensNode = SensDB;
-  Sens_ch_t *pSensChann;
-  int i, flag=0;
-
-  for (i = 0; i<NUM_SB; i++) // initialization of is_free vector
-    finalSensChann->is_free[i]=10; //TO DO: to change when is_free becomes char instead of unsigned int
-
-  while (pSensNode!= NULL ) {
-
-    if((pSensChann = get_chann_info(  pSensNode->info_hd , Ch_id)) != NULL) {
-      flag++;
-
-      for (i = 0; i<NUM_SB; i++) {
-        //printf (" ch %d is_free %d\t", i, pSensChann->is_free[i]);//dbg
-        if (pSensChann->is_free[i]==1)
-          finalSensChann->is_free[i]++;
-        else  if (pSensChann->is_free[i]==0)
-          finalSensChann->is_free[i]--;
-      }
-    }
-
-    pSensNode = pSensNode->next;
-  }
-
-  if (flag==0)  // case in which information on the channel requested is not in the database
-    return 1;
-
-  for (i = 0; i<NUM_SB; i++) {
-    if (finalSensChann->is_free[i]>10)
-      finalSensChann->is_free[i]=1;
-    else
-      finalSensChann->is_free[i]=0;
-
-    //printf ("ch %d is_free %d \n", i, finalSensChann->is_free[i]);
-  }
-
-  finalSensChann->Start_f = pSensChann->Start_f;
-  finalSensChann->Final_f = pSensChann->Final_f;
-  finalSensChann->Ch_id   = pSensChann->Ch_id;
-  return 0;
-
-}
-/*!
-*******************************************************************************
-\brief  Function that identify free block of SB_NEEDED_FOR_SN subbands analysing the
-* sensing information present in the sensing database; it saves the available channels
-* in the channels database
-
-\return
-*/
-unsigned int find_available_channels(
-  Sens_node_t *Sens_db,
-  CHANNELS_DB_T **channels_db
-)
-{
-  int sens_ch_id=1, sb, sb_f;
-  unsigned int curr_fr;
-  CHANNEL_T channel;
-  Sens_ch_t curr_sens_ch;
-
-  del_all_channels( channels_db ); //to remove all old entries
-  //printf("channels eliminated\n");//dbg
-  channel.Ch_id = 0;
-  channel.QoS   = 0;
-
-  sb_f = 0;
-
-  // printf("beginning of find_available_channels\n\n\n");//dbg
-  while(take_decision_sens( Sens_db,&curr_sens_ch,sens_ch_id)==0) {
-    //printf("\nsens_ch_id in while :%d found channel id %d\n\n\n", sens_ch_id, curr_sens_ch.Ch_id);//dbg
-    curr_fr = curr_sens_ch.Start_f;
-
-    for (sb=0; sb<NUM_SB; sb++) { //loop over all the subbands of a sensing channel
-      //printf("        sb %d is_free %d", sb, curr_sens_ch.is_free[sb]);//dbg
-      if (curr_sens_ch.is_free[sb]==0) {
-        sb_f = 0;
-        curr_fr+=SB_BANDWIDTH;
-      } else {
-        sb_f++;
-
-        if (sb_f == BG+1)  {
-          //printf("\nFirst free sb : %d start_freq_select %d\n",sb,curr_fr);//dbg
-          channel.Start_f = curr_fr;
-        }
-
-        if (sb_f == SB_NEEDED_FOR_SN+BG)
-          channel.Final_f = curr_fr+SB_BANDWIDTH;
-
-        if (sb_f == (SB_NEEDED_FOR_SN+(2*BG))) {
-          //curr_fr += SB_BANDWIDTH;
-          //printf("last free sb : %d end_freq_select %d\n",sb,channel.Final_f);//dbg
-          channel.Ch_id++;
-          add_chann_db(channels_db,channel,1,0);
-          sb_f = BG; //to avoid to compute two times the BG
-          //printf("added channel %d start %d end %d\n", channel.Ch_id, channel.Start_f, channel.Final_f);//dbg
-        }
-
-        curr_fr+=SB_BANDWIDTH;
-      }
-    }
-
-    sens_ch_id++;
-
-  }
-
-  return (channel.Ch_id); //the last Ch_id memorized in channels database corresponds to the total number of free channels found
-}
-
-
-//mod_lor_10_05_26--
-//mod_lor_10_05_28++
-
-/*!
-*******************************************************************************
-\brief  Function to check if the channels used by SN are still free
-
-\return
-*/
-unsigned int evalaute_sens_info(
-  Sens_node_t *Sens_db,
-  unsigned int Start_f,
-  unsigned int Final_f
-)
-{
-  unsigned int i=0, sb, curr_freq;
-  int is_free[MIN_NB_SB_CH];
-  Sens_node_t *ac_node = Sens_db;
-  Sens_ch_t *ac_chann;
-
-  for (i=0; i<MIN_NB_SB_CH; i++)
-    is_free[i]=0;
-
-  while (ac_node != NULL) {
-    ac_chann = ac_node->info_hd;
-
-    while (ac_chann!= NULL ) {
-      // printf("actual ch_id %d actual start_f %d final_f %d\n",ac_chann->Ch_id, ac_chann->Start_f,ac_chann->Final_f);//dbg
-      if (ac_chann->Start_f < Final_f && ac_chann->Final_f > Start_f) {
-        sb = 0;
-        curr_freq = ac_chann->Start_f;
-
-        while (sb < NUM_SB && curr_freq<Start_f) {
-          sb++;
-          curr_freq+=SB_BANDWIDTH;
-        }
-
-        //printf ("sb after first loop %d curr_fr %d\n", sb, curr_freq);//dbg
-        while (sb < NUM_SB && curr_freq<Final_f) {
-          //  printf ("curr_fr %d\n", curr_freq);//dbg
-          i = (curr_freq - Start_f)/SB_BANDWIDTH;
-
-          //  printf("index for is_free vector %d, freq %d, sb %d\n",i, curr_freq, sb);//dbg
-          if (i >= MIN_NB_SB_CH) {
-            printf("ERROR!\n");
-            return 2;
-          }
-
-          if (ac_chann->is_free[sb]==1)
-            is_free[i]++;
-
-          if (ac_chann->is_free[sb]==0)
-            is_free[i]--;
-
-          sb++;
-          curr_freq+=SB_BANDWIDTH;
-        }
-
-
-      }
-
-      ac_chann=ac_chann->next;
-    }
-
-    ac_node = ac_node->next;
-  }
-
-  for (i=0; i<MIN_NB_SB_CH; i++)
-    if (is_free[i]<=0)
-      return 1;
-
-  return 0;
-
-}
-/*!
-*******************************************************************************
-\brief  Function to check if the channels used by SN are still free
-
-\return
-*/
-unsigned int check_SN_channels(
-  Sens_node_t *Sens_db,
-  CHANNELS_DB_T *channels_db,
-  unsigned int *used_channels,
-  unsigned int nb_used_ch
-
-)
-{
-  int i, need_to_update=0;
-  CHANNELS_DB_T *channel_2_check;
-
-  for (i=0; i<nb_used_ch; i++) {
-    channel_2_check = get_chann_db_info( channels_db  , used_channels[i] );
-
-    //printf("check channel: %d, start_fr: %d, final_f: %d\n",used_channels[i], channel_2_check->channel.Start_f, channel_2_check->channel.Final_f);//dbg
-    if( evalaute_sens_info(Sens_db, channel_2_check->channel.Start_f, channel_2_check->channel.Final_f))
-      need_to_update = 1;
-
-    //printf("need_to_update: %d\n",need_to_update);//dbg
-  }
-
-  return need_to_update;
-
-}
-//mod_lor_10_05_28--
-
-
-/*!
-*******************************************************************************
- \brief CMM frequency query request.  This message has also the scope to
- * initialize the RRM in BTS state.
-*/
-void cmm_ask_freq(
-  Instance_t inst            //!< identification de l'instance
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-  rrm->ip.trans_cnt++ ;
-  PUT_IP_MSG(msg_open_freq_query_4( inst, rrm->L2_id_FC, 0, rrm->ip.trans_cnt));
-  pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-
-
-}
-
-/*!//mod_lor_10_10_28
-*******************************************************************************
- \brief CMM of secondary user ask activate a transmission requirement.
- * In the message it pass its L2_id to be identified by its Cluster Head
-*/
-void cmm_need_to_tx(
-  Instance_t inst             ,//!< identification de l'instance
-  Instance_t dest             ,//!< identification de l'instance du noeud destinataire
-  QOS_CLASS_T QoS_class        //!< Required quality of service (i.e. number of channels)
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  rrm_t *rrm_dest = &rrm_inst[dest];
-  pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-  rrm->ip.trans_cnt++ ;
-  PUT_IP_MSG(msg_ask_freq_to_CH_3( inst, rrm->L2_id, rrm_dest->L2_id, QoS_class, rrm->ip.trans_cnt));
-  pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-}
-
-/*!
-*******************************************************************************
- \brief BTS ask for frequency
-*/
-unsigned int open_freq_query( //mod_lor_10_06_02
-  Instance_t    inst            , //!< identification de l'instance
-  L2_ID         L2_id           , //!< L2_id of the BTS/SU
-  QOS_CLASS_T   QoS             , //!< quality of service required (0 means all available QoS)
-  Transaction_t Trans_id          //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  unsigned int NB_chan=0, ind = 0;
-  CHANNELS_DB_T *pChannels;
-  CHANNELS_DB_T channels_hd[NB_SENS_MAX];
-  //mod_lor_10_05_26++
-  /*pthread_mutex_lock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_08
-  CHANNELS_DB_T *pChannelsEntry=rrm->rrc.pChannelsEntry;
-  CHANNELS_DB_T *pChannels = pChannelsEntry;
-
-  //fprintf(stdout,"cp3 : NB_free_chan %d\n", NB_free_ch); //dbg
-  //mod_lor_10_05_17++: send vector with all frequencies (not only free ones)
-  CHANNELS_DB_T channels_hd[NB_SENS_MAX];
-  pChannels = pChannelsEntry;
-  while (pChannels!=NULL){//mod_lor_10_03_08
-      memcpy(&(channels_hd[NB_chan]) , pChannels, sizeof(CHANNELS_DB_T));
-      pChannels = pChannels->next;
-      NB_chan++;
-  }
-  //mod_lor_10_05_17--
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_08
-
-  //fprintf(stdout,"NB_free_chan %d\n", NB_free_ch); //dbg
-  //for (int i = 0; i<NB_free_ch; i++)//dbg
-     // fprintf(stdout,"channel %d meas %f\n", free_channels_hd[i].Ch_id, free_channels_hd[i].meas); //dbg
-
-  //printf("channels in open_freq_query_funct\n");//dbg
-  //for (int i=0; i<NB_chan;i++)//dbg
-  //    printf("  %d  ",channels_hd[i].channel.Ch_id);//dbg
-  //printf("\n");//dbg         */
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  NB_chan = find_available_channels(rrm->rrc.pSensEntry,&(rrm->rrc.pChannelsEntry));
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-  pChannels = rrm->rrc.pChannelsEntry;
-
-  while (pChannels!=NULL) { //mod_lor_10_03_08
-    memcpy(&(channels_hd[ind]) , pChannels, sizeof(CHANNELS_DB_T));
-    //printf ("copied channel: %d start %d end %d\n",channels_hd[ind].channel.Ch_id,channels_hd[ind].channel.Start_f,channels_hd[ind].channel.Final_f);//dbg
-    pChannels = pChannels->next;
-    ind++;
-  }
-
-  if (ind!=NB_chan)
-    printf("Error!!! Found free channels: %d, copyed channels: %d\n",NB_chan, ind);
-
-  //mod_lor_10_05_26--
-  if (Trans_id!=1 || NB_chan!=0) {  //mod_lor_10_06_02
-
-    pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-    rrm->ip.trans_cnt++ ;
-    PUT_IP_MSG(msg_update_open_freq_7( inst, L2_id, NB_chan, channels_hd, rrm->ip.trans_cnt));
-    rrm->ip.waiting_SN_update=1;
-    pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-  }
-
-  return (NB_chan);//mod_lor_10_06_02
-}
-
-/*!
-*******************************************************************************
- \brief RRC open frequency.
- *
-*/
-unsigned int update_open_freq(   //mod_lor_10_05_18
-  Instance_t inst             , //!< identification de l'instance
-  L2_ID L2_id                 , //!< L2_id of the FC/CH
-  unsigned int NB_chan        , //!< Number of channels
-  unsigned int *occ_channels  , //!< vector on wich the selected frequencies will be saved //mod_lor_10_05_18
-  CHANNELS_DB_T *channels     , //!< List of channels
-  Transaction_t Trans_id        //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  unsigned int NB_occ_chan = 0 ;
-  //unsigned int occ_channels[NB_chan];
-  CHANNELS_DB_T *chann_checked;
-  CHANNEL_T ass_channels[NB_chan];
-  //printf("In update_open_freq: NB_chan: %d\n",NB_chan);
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_08
-  del_all_channels( &(rrm->rrc.pChannelsEntry) ) ; //mod_lor_10_06_01
-
-  for (int i=0; i<NB_chan; i++) {
-    //mod_lor_10_05_17++
-    // fprintf(stderr, "update channel : %d that is %d\n",channels[i].channel.Ch_id, channels[i].is_free);//dbg
-    chann_checked = up_chann_db( &(rrm->rrc.pChannelsEntry), channels[i].channel, channels[i].is_free, 0);
-
-    if(chann_checked == NULL) //info_time still to evaluate
-      fprintf(stderr, "error in updating free channels in BTS \n");
-
-    /* else if (chann_checked->is_ass && !(chann_checked->is_free)){
-         fprintf(stderr, "  -> Channel %d in use not free anymore! \n",channels[i].channel.Ch_id);
-         chann_checked->is_ass = 0;
-     }else if (chann_checked->is_ass && chann_checked->is_free){
-         ass_channels[NB_occ_chan]=chann_checked->channel;
-         occ_channels[NB_occ_chan]=chann_checked->channel.Ch_id ;
-         NB_occ_chan++;
-     }*/
-  }
-
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_08
-
-  while (NB_occ_chan<CH_NEEDED_FOR_SN) {
-    chann_checked=select_new_channel( rrm->rrc.pChannelsEntry, rrm->L2_id, rrm->L2_id);
-
-    if (chann_checked == NULL) {
-      //fprintf(stderr, "Channel is null \n"); //dbg
-      break;
-    }
-
-    ass_channels[NB_occ_chan]=chann_checked->channel;
-    occ_channels[NB_occ_chan]=chann_checked->channel.Ch_id ;
-    NB_occ_chan++;
-  }
-
-
-
-  /*fprintf(stderr, "Channels for SN selected by BTS: \n"); //dbg
-  for (int i=0; i<NB_occ_chan;i++)//dbg
-      fprintf(stderr, "   %d   ", occ_channels[i]);//dbg
-  fprintf(stderr, "\n");//dbg*/
-
-  //mod_lor_10_05_17--
-
-
-  pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-  rrm->ip.trans_cnt++ ;
-  PUT_IP_MSG(msg_update_SN_occ_freq_5( inst, rrm->L2_id, NB_occ_chan, occ_channels, rrm->ip.trans_cnt));
-  pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-
-  //AAA: BTS sends a vector containing the channels that have to be used by secondary users
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  //printf("In update_open_freq: NB_chan passed: %d\n",NB_occ_chan);
-  PUT_RRC_MSG(msg_rrm_up_freq_ass( inst, rrm->L2_id,  NB_occ_chan, ass_channels));
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-  return (NB_occ_chan);//mod_lor_10_05_18
-}
-
-/*!
-\brief RRC update secondary network frequencies in use  (SENDORA first scenario)
- */
-unsigned int update_SN_occ_freq( //mod_lor_10_05_18
-  Instance_t inst             , //!< instance ID
-  L2_ID L2_id                 , //!< Layer 2 (MAC) ID of BTS
-  unsigned int NB_chan        , //!< number of channels used by secondary network
-  unsigned int *occ_channels  , //!< channels used by secondary network
-  Transaction_t Trans_id        //!< Transaction ID
-)
-
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  pthread_mutex_lock( &( rrm->ip.exclu ) ) ;  //mod_lor_10_05_18
-  rrm->ip.waiting_SN_update=0;                //mod_lor_10_05_18
-  pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;//mod_lor_10_05_18
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_08
-  CHANNELS_DB_T *pChannelsEntry=rrm->rrc.pChannelsEntry;
-  CHANNELS_DB_T *pChannels;
-  unsigned int need_to_update = 0;
-
-  //Sens_node_t *nodes_db = rrm->rrc.pSensEntry;
-  //fprintf(stderr,"update_SN_occ_freq  %d \n", inst);//dbg
-  //for (pChannels = rrm->rrc.pChannelsEntry; pChannels!=NULL; pChannels=pChannels->next)//dbg
-  //    fprintf(stderr,"channel   %d  in db\n", pChannels->channel.Ch_id);//dbg
-  for (int i=0; i<NB_chan ; i++) { //&& !need_to_update
-    //mod_lor_10_05_28++
-    //fprintf(stderr,"occ_channels  %d  val %d\n", i,occ_channels[i]);//dbg
-    need_to_update = check_SN_channels(rrm->rrc.pSensEntry,rrm->rrc.pChannelsEntry,occ_channels,NB_chan);
-
-    if (need_to_update==0) {
-      pChannels = up_chann_ass( pChannelsEntry  , occ_channels[i], 1, L2_id, L2_id );
-
-      if (pChannels==NULL)
-        printf ("ERROR! Channel not updated\n");
-    }
-
-    //mod_lor_10_05_28--
-
-  }
-
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_08
-
-  return (need_to_update); //mod_lor_10_05_17
-
-}
-
-/*!//add_lor_10_10_28
-*******************************************************************************
- \brief User ask for frequency
- * it checks available channels to attribute channels to users. It sends an
- * update message to users with attributed channels
-*/
-unsigned int ask_freq_to_CH(
-  Instance_t    inst                   , //!< identification de l'instance
-  L2_ID         L2_id[NB_SENS_MAX]     , //!< L2_id of the SU
-  L2_ID         L2_id_dest[NB_SENS_MAX], //!< L2_id of the SU dest
-  unsigned int  N_users                , //!< quality of service required (i.e. number of channels required)
-  Transaction_t Trans_id                 //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  unsigned int NB_chan=0, ind = 0, act_us=0;
-  CHANNELS_DB_T *pChannels;
-  CHANNEL_T ass_channels[NB_SENS_MAX];
-  L2_ID source_L2_id[NB_SENS_MAX];
-  L2_ID dest_L2_id[NB_SENS_MAX];
-
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-
-  ///Identify the number of available channels
-  if (rrm->rrc.pChannelsEntry==NULL)  {
-    NB_chan = find_available_channels(rrm->rrc.pSensEntry,&(rrm->rrc.pChannelsEntry));
-    printf ("found channels: %d \n", NB_chan);//dbg
-  }
-
-  ///Analysing the list of identified channels
-  pChannels = rrm->rrc.pChannelsEntry;
-
-  while (pChannels!=NULL) {
-    if (pChannels->is_free && !pChannels->is_ass && act_us<N_users) {
-      memcpy(&(ass_channels[ind]) , &(pChannels->channel), sizeof(CHANNEL_T));
-      pChannels = up_chann_ass( rrm->rrc.pChannelsEntry  , ass_channels[ind].Ch_id, 1, L2_id[act_us], L2_id_dest[act_us] );
-      //printf ("copied channel: %d start %d end %d\n",ass_channels[ind].Ch_id,ass_channels[ind].Start_f,ass_channels[ind].Final_f);//dbg
-      memcpy(source_L2_id[ind].L2_id , L2_id[act_us].L2_id, sizeof(L2_ID));
-      memcpy(dest_L2_id[ind].L2_id , L2_id_dest[act_us].L2_id, sizeof(L2_ID));
-      ind++;
-      act_us++;
-    } else if (pChannels->is_free && pChannels->is_ass) {
-      memcpy(&(ass_channels[ind]) , &(pChannels->channel), sizeof(CHANNEL_T));
-      memcpy(source_L2_id[ind].L2_id , pChannels->source_id.L2_id, sizeof(L2_ID));
-      memcpy(dest_L2_id[ind].L2_id , pChannels->dest_id.L2_id, sizeof(L2_ID));
-      ind++;
-    }
-
-    pChannels = pChannels->next;
-  }
-
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-
-  //printf ( "ind: %d\n",ind);//dbg
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  rrm->rrc.trans_cnt++ ;
-  //PUT_RRC_MSG(msg_rrm_up_freq_ass( inst, source_L2_id[0], 1, ass_channels));//dbg
-  PUT_RRC_MSG(msg_rrm_up_freq_ass_sec( inst, source_L2_id, dest_L2_id, ind, ass_channels));
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-  //else
-  //  printf ("Error! not enough free channels");
-  if (act_us==N_users)
-    return (0);
-  else {
-    printf ("Not enough free channels. Link not allocated\n");
-    return (N_users-act_us);
-  }
-
-}
-
-
-/*!//add_lor_10_11_03
-*******************************************************************************
-\brief  Function that prepare information in CH_coll to send to fusion center:
-        is_free depends on the number of information and it is a number between
-        0 and 10 that indicates the probability of busy channel
-\return 0 if operation ended correctly, 1 if info on sensing channel does not exist
-*/
-
-unsigned int take_ch_coll_decision(
-  Sens_node_t *SensDB     , //!< pointer to the sensing database
-  Sens_ch_t *finalSensChann, //!< info that will be returned after decision
-  unsigned int Ch_id       //!< channel ID
-
-)
-{
-  Sens_node_t *pSensNode = SensDB;
-  Sens_ch_t *pSensChann;
-  int i, flag=0;
-
-  for (i = 0; i<NUM_SB; i++) // initialization of is_free vector
-    finalSensChann->is_free[i]=0;
-
-  while (pSensNode!= NULL ) {
-
-    if((pSensChann = get_chann_info(  pSensNode->info_hd , Ch_id)) != NULL) {
-      flag++;
-
-      for (i = 0; i<NUM_SB; i++) {
-        //printf (" ch %d is_free %d", i, pSensChann->is_free[i]);
-        if (pSensChann->is_free[i]==1)
-          finalSensChann->is_free[i]+=10;
-      }
-    }
-
-    pSensNode = pSensNode->next;
-  }
-
-  if (flag==0)  // case in which information on the channel requested is not in the database
-    return 1;
-
-  for (i = 0; i<NUM_SB; i++) {
-    finalSensChann->is_free[i]=finalSensChann->is_free[i]/flag;
-
-    ///AAA: to change when using weights for collaborating sensing
-    if (finalSensChann->is_free[i]>5)
-      finalSensChann->is_free[i]=1;
-    else
-      finalSensChann->is_free[i]=0;
-
-    // printf ("ch %d is_free %d \n", i, finalSensChann->is_free[i]);
-  }
-
-  finalSensChann->Start_f = pSensChann->Start_f;
-  finalSensChann->Final_f = pSensChann->Final_f;
-  finalSensChann->Ch_id   = pSensChann->Ch_id;
-  return 0;
-
-}
-
-
-/*!add_lor_10_11_09
-*******************************************************************************
- \brief CMM user disconnect. Request to disconnect the user.
- * Sending message to CH in order to stop all communications related to this user
- * (also stop sensing activity of the user)
-*/
-void cmm_user_disc(
-  Instance_t inst            //!< identification de l'instance
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-  rrm->ip.trans_cnt++ ;
-  PUT_IP_MSG(msg_user_disconnect_9( inst, rrm->L2_id, rrm->ip.trans_cnt));
-  pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-
-
-}
-
-/*!add_lor_10_11_09
-*******************************************************************************
- \brief CMM user disconnect. Request to disconnect the user.
- * Sending message to CH in order to stop all communications related to this user
- * (also stop sensing activity of the user)
-*/
-void cmm_link_disc(
-  Instance_t inst           ,//!< identification de l'instance
-  Instance_t dest            //!< identification du destinataire
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  rrm_t *rrm_dest = &rrm_inst[dest] ;
-
-  pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-  rrm->ip.trans_cnt++ ;
-  PUT_IP_MSG(msg_close_link( inst, rrm->L2_id, rrm_dest->L2_id, rrm->ip.trans_cnt));
-  pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-
-
-}
-
-/*!add_lor_10_11_09
-*******************************************************************************
- \brief disconnect user. Ch removes all communications of the user
-*/
-void disconnect_user(
-  Instance_t    inst     , //!< identification de l'instance
-  L2_ID         L2_id      //!< L2_id of the SU
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  CHANNELS_DB_T *pChannels;
-  L2_ID User_active_L2_id[MAX_USER_NB];
-  L2_ID User_dest_L2_id[MAX_USER_NB];
-  int i, new_free = 0;
-  int chan_up = 0;
-  int all_result;
-
-  ///remove waiting communications
-  pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-  printf ("T1 tot waiting before: %d\n",rrm->ip.users_waiting_update);//dbg
-
-  for(i = 0; i < rrm->ip.users_waiting_update; i++) {
-    if (  L2_ID_cmp(&L2_id, &(rrm->ip.L2_id_wait_users[i][0]))==0 || L2_ID_cmp(&L2_id, &(rrm->ip.L2_id_wait_users[i][1]) )==0 ) {
-      if (i < rrm->ip.users_waiting_update-1) {///check if there are still waiting communications to consider
-        memcpy(rrm->ip.L2_id_wait_users[i][0].L2_id , rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update-1][0].L2_id, sizeof(L2_ID));
-        memcpy(rrm->ip.L2_id_wait_users[i][1].L2_id , rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update-1][1].L2_id, sizeof(L2_ID));
-        i--;
-      }
-
-      rrm->ip.users_waiting_update--;
-      printf ("N1 tot waiting: %d\n",rrm->ip.users_waiting_update);//db
-    }
-  }
-
-  printf ("T2 tot waiting after: %d\n",rrm->ip.users_waiting_update);//dbg
-
-  ///remove active communications
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  pChannels = rrm->rrc.pChannelsEntry;
-
-  while (pChannels!=NULL) {
-    if (pChannels->is_ass && ( L2_ID_cmp(&L2_id, &(pChannels->source_id))==0 || L2_ID_cmp(&L2_id, &(pChannels->dest_id) )==0 )) {
-      pChannels->is_ass = 0;
-      new_free++;
-      //printf ("T3 removed channel: %d\n",pChannels->channel.Ch_id);//dbg
-    }
-
-    pChannels=pChannels->next;
-  }
-
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-  printf("[CH %d]: Communications of user ",rrm->id);
-
-  for ( i=0; i<8; i++)
-    printf("%02X", L2_id.L2_id[i]);
-
-  printf( " removed\n");
-
-  ///sending update
-  while (rrm->ip.users_waiting_update > 0 && new_free>0) {
-    memcpy(User_active_L2_id[chan_up].L2_id , rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update-1][0].L2_id, sizeof(L2_ID));
-    memcpy(User_dest_L2_id[chan_up].L2_id , rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update-1][1].L2_id, sizeof(L2_ID));
-    chan_up++;
-    new_free--;
-    rrm->ip.users_waiting_update--;
-    printf ("N2 tot waiting: %d\n",rrm->ip.users_waiting_update);//db
-  }
-
-  //  printf ("New_free: %d\n",new_free);//dbg
-  all_result = ask_freq_to_CH( inst, User_active_L2_id, User_dest_L2_id,chan_up, 0 );  ///Update of channels
-
-  if (all_result != 0)
-    printf ("Error in reassigning free channels new_free: %d all_result: %d\n",new_free, all_result);//dbg
-
-  pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-}
-
-/*!add_lor_10_11_09
-*******************************************************************************
- \brief close link. Ch removes an active (or waiting link)
-*/
-int close_active_link(
-  Instance_t    inst       , //!< identification de l'instance
-  L2_ID         L2_id      , //!< L2_id of the SU
-  L2_ID         L2_id_dest   //!< L2_id of the SU dest
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  CHANNELS_DB_T *pChannels;
-  int i, new_free = 0;
-  int all_result;
-  int removed = 0;
-
-  ///check waiting communications
-  pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-  printf ("T1 tot waiting before: %d\n",rrm->ip.users_waiting_update);//dbg
-
-  for(i = 0; i < rrm->ip.users_waiting_update && removed == 0; i++) {
-    if (  (L2_ID_cmp(&L2_id, &(rrm->ip.L2_id_wait_users[i][0]))==0 && L2_ID_cmp(&L2_id_dest, &(rrm->ip.L2_id_wait_users[i][1]) )==0 ) || (L2_ID_cmp(&L2_id, &(rrm->ip.L2_id_wait_users[i][1]))==0
-          && L2_ID_cmp(&L2_id_dest, &(rrm->ip.L2_id_wait_users[i][0]) )==0 )) {
-      removed = 1;
-
-      if (i < rrm->ip.users_waiting_update-1) {///check if there are still waiting communications to consider
-        memcpy(rrm->ip.L2_id_wait_users[i][0].L2_id , rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update-1][0].L2_id, sizeof(L2_ID));
-        memcpy(rrm->ip.L2_id_wait_users[i][1].L2_id , rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update-1][1].L2_id, sizeof(L2_ID));
-        i--;
-      }
-
-      rrm->ip.users_waiting_update--;
-      printf ("T1bis tot waiting inside: %d\n",rrm->ip.users_waiting_update);//dbg
-    }
-  }
-
-  printf ("T2 tot waiting after: %d removed %d\n",rrm->ip.users_waiting_update, removed);//dbg
-  pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-
-
-  ///check active communications
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  pChannels = rrm->rrc.pChannelsEntry;
-
-  while (removed == 0 && pChannels!=NULL) {
-    if (pChannels->is_ass && ( (L2_ID_cmp(&L2_id, &(pChannels->source_id))==0
-                                && L2_ID_cmp(&L2_id_dest, &(pChannels->dest_id) )==0 ) /*|| (L2_ID_cmp(&L2_id, &(pChannels->dest_id))==0 && L2_ID_cmp(&L2_id_dest, &(pChannels->source_id) )==0 )*/)) { //mod_lor_07_12_10
-      pChannels->is_ass = 0;
-      new_free++;
-      removed = 1;
-      printf ("T3 removed channel: %d\n",pChannels->channel.Ch_id);//dbg
-    }
-
-    pChannels=pChannels->next;
-  }
-
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-  ///link does not exist
-  if (removed == 0) {
-    printf("[CH %d]: Requested link to remove does not exist.\n ",rrm->id);
-    return 1;
-  }
-
-  printf("[CH %d]: Link between ",rrm->id);
-
-  for ( i=0; i<8; i++)
-    printf("%02X", L2_id.L2_id[i]);
-
-  printf( " and ");
-
-  for ( i=0; i<8; i++)
-    printf("%02X", L2_id_dest.L2_id[i]);
-
-  printf( " removed\n");
-
-  ///sending update only if channel removed among active links
-  if (new_free>0 && removed) {
-    pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-    printf ("New_free: %d\n",new_free);//dbg
-    //rrm->ip.users_waiting_update--; //mod_lor_10_12_09
-    printf ("N3 tot waiting: %d\n",rrm->ip.users_waiting_update);//db
-
-    if(rrm->ip.users_waiting_update>0)//mod_lor_10_12_09
-      all_result = ask_freq_to_CH( inst, &(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][0]), &(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][1]), 1, 0 );  ///Update of channels
-    else//mod_lor_10_12_09
-      all_result = ask_freq_to_CH( inst, &(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][0]), &(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][1]), 0,
-                                   0 );  ///Update of channels//mod_lor_10_12_09
-
-    if (all_result != 0)
-      printf ("Error in reassigning free channels new_free: %d all_result: %d\n",new_free, all_result);//dbg
-
-    pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-  }
-
-  return 0;
-}
diff --git a/openair3/MESH/RRM/freq_ass_op.h b/openair3/MESH/RRM/freq_ass_op.h
deleted file mode 100755
index 78d0b1bd65..0000000000
--- a/openair3/MESH/RRM/freq_ass_op.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file     freq_ass_op.h
-
-\brief    Fichier d'entete contenant les declarations des types, des defines ,
-      et des fonctions relatives a la gestion des frequences.
-
-\author   IACOBELLI Lorenzo
-
-\date     21/10/09
-
-
-\par     Historique:
-      $Author$  $Date$  $Revision$
-      $Id$
-      $Log$
-
-*******************************************************************************
-*/
-
-#ifndef FREQ_ASS_OP_H
-#define FREQ_ASS_OP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//mod_lor_10_05_28: declaration of function for sensing and frequency allocation
-unsigned int evalaute_sens_info(
-  Sens_node_t *Sens_db,
-  unsigned int Start_f,
-  unsigned int Final_f
-);
-
-void take_decision(
-  Sens_node_t *SensDB     , //!< pointer to the sensing database
-  unsigned int Ch_id      , //!< channel ID
-  unsigned int *is_free  //mod_lor_10_05_28 ->char instead of int
-
-);
-
-unsigned int take_decision_sens(
-  Sens_node_t *SensDB     , //!< pointer to the sensing database
-  Sens_ch_t *finalSensChann, //!< info that will be returned after decision
-  unsigned int Ch_id       //!< channel ID
-
-);
-
-unsigned int find_available_channels(
-  Sens_node_t *Sens_db,
-  CHANNELS_DB_T **channels_db
-);
-
-unsigned int check_SN_channels(
-  Sens_node_t *Sens_db,
-  CHANNELS_DB_T *channels_db,
-  unsigned int *used_channels,
-  unsigned int nb_used_ch
-);
-
-void take_local_decision(
-  Sens_ch_t *Sens_info
-);
-
-unsigned int take_ch_coll_decision(
-  Sens_node_t *SensDB     , //!< pointer to the sensing database
-  Sens_ch_t *finalSensChann, //!< info that will be returned after decision
-  unsigned int Ch_id       //!< channel ID
-);
-
-void disconnect_user(
-  Instance_t    inst     , //!< identification de l'instance
-  L2_ID         L2_id      //!< L2_id of the SU
-);
-
-
-// ---------------------------------------------------------------------------
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* FREQ_ASS_OP_H */
diff --git a/openair3/MESH/RRM/ip_msg.c b/openair3/MESH/RRM/ip_msg.c
deleted file mode 100644
index 4749068eda..0000000000
--- a/openair3/MESH/RRM/ip_msg.c
+++ /dev/null
@@ -1,524 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       ip_msg.c
-
-\brief      Fonctions permettant le formattage des donnees pour l'envoi d'un
-            message sur le socket entre le  RRC et le RRM
-
-\author     IACOBELLI Lorenzo
-
-\date       27/04/10
-
-
-\par     Historique:
-
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include "L3_rrc_defs.h"
-#include "rrm_sock.h"
-#include "L3_rrc_interface.h"
-#include "ip_msg.h"
-#include "rrm_util.h"
-
-#ifdef TRACE
-//! Macro creant la chaine a partir du nom de la variable
-#define STRINGIZER(x) #x
-//! Tableau pour le mode trace faisant la translation entre le numero et le nom du message
-const char *Str_msg_ip[NB_MSG_IP] = {
-  STRINGIZER(UPDATE_SENS_RESULTS_3    ),
-  STRINGIZER(OPEN_FREQ_QUERY_4        ),
-  STRINGIZER(UPDATE_OPEN_FREQ_7       ),
-  STRINGIZER(UPDATE_SN_OCC_FREQ_5     ),
-  STRINGIZER(INIT_COLL_SENS_REQ       ),
-  STRINGIZER(STOP_COLL_SENS           ),
-  STRINGIZER(UP_CLUST_SENS_RESULTS    ),
-  STRINGIZER(STOP_COLL_SENS_CONF      ),
-  STRINGIZER(ASK_FREQ_TO_CH_3         ),
-  STRINGIZER(USER_DISCONNECT_9        ),
-  STRINGIZER(CLOSE_LINK               )/*,
-    STRINGIZER(RRC_CLUST_SCAN_REQ       ),
-    STRINGIZER(RRM_CLUST_SCAN_CONF      ),
-    STRINGIZER(RRM_CLUST_MON_REQ        ),
-    STRINGIZER(RRC_CLUST_MON_REQ        ),
-    STRINGIZER(RRM_CLUST_MON_CONF       ),
-    STRINGIZER(RRM_END_SCAN_CONF        ),
-    STRINGIZER(RRM_INIT_CONN_REQ        ),
-    STRINGIZER(RRC_INIT_CONN_CONF       ),
-    STRINGIZER(RRM_FREQ_ALL_PROP        ),
-    STRINGIZER(RRC_FREQ_ALL_PROP_CONF   ),
-    STRINGIZER(RRM_REP_FREQ_ALL         ),
-    STRINGIZER(RRC_REP_FREQ_ACK         ),
-    STRINGIZER(RRC_INIT_CONN_REQ        ),
-    STRINGIZER(RRM_CONN_SET             ),
-    STRINGIZER(RRC_FREQ_ALL_PROP        ),
-    STRINGIZER(RRM_FREQ_ALL_PROP_CONF   ),
-    STRINGIZER(RRC_REP_FREQ_ALL         ),
-    STRINGIZER(RRM_REP_FREQ_ACK         )  */
-
-} ;
-#endif
-
-
-/*!
-*******************************************************************************
-\brief  This function initialize the message header
-\return any return value
-*/
-static void init_ip_msg_head(
-  msg_head_t    *msg_head , //!< message header to initialize
-  Instance_t     inst     , //!< Instance ID
-  MSG_IP_T  msg_type , //!< type of message to initialize
-  unsigned int   size     , //!< size of message
-  Transaction_t  Trans_id   //!< transaction id associated to this message
-)
-{
-  if ( msg_head != NULL ) {
-    msg_head->start    = START_MSG ;
-    msg_head->msg_type = 0xFF & msg_type ;
-    msg_head->inst     = inst  ;
-    msg_head->Trans_id = Trans_id  ;
-    msg_head->size     = size;
-  }
-}
-
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        update_sens_results().
-\return message formate
-*/
-
-msg_t *msg_update_sens_results_3(
-  Instance_t inst,
-  L2_ID L2_id,                //!< FC L2_id
-  unsigned int NB_info,
-  Sens_ch_t *Sens_meas,
-  Transaction_t Trans_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof( rrm_update_sens_t );// + (NB_info-1) * sizeof(Sens_ch_t) ; //mod_lor_10_04_23
-
-    rrm_update_sens_t *p = RRM_CALLOC2(rrm_update_sens_t , size ) ;
-
-    if ( p != NULL ) {
-      //fprintf(stderr,"rrmUSR 1 \n");//dbg
-      init_ip_msg_head(&(msg->head),inst, UPDATE_SENS_RESULTS_3, size ,Trans_id);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-      p->NB_info       = NB_info    ;
-      p->info_time     = 0 ;
-
-      if ( NB_info > 0 ) {
-        memcpy( p->Sens_meas , Sens_meas, NB_info * sizeof(Sens_ch_t) )  ;
-      }
-
-      //fprintf(stdout,"msg_rrm_update_sens()2 : NB_chan %d\n", p->NB_info);//dbg
-      //fprintf(stdout,"NB_chan %d\n", p->NB_info);
-      //  for (int i=0; i<NB_info; i++)
-      // Sens_ch_t *ch = p->Sens_meas; ch!=NULL; ch=ch->next)
-      //fprintf(stdout,"channel in msg arr: %d\n", ch->Ch_id); //dbg
-
-    }
-
-    //fprintf(stderr,"rrmUSR end \n");//dbg
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        open_freq_query_4().
-\return message formate
-*/
-msg_t *msg_open_freq_query_4(
-  Instance_t    inst,
-  L2_ID         L2_id           ,
-  QOS_CLASS_T   QoS             ,
-  Transaction_t Trans_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    open_freq_query_t *p = RRM_CALLOC(open_freq_query_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_ip_msg_head(&(msg->head),inst,OPEN_FREQ_QUERY_4, sizeof( open_freq_query_t ) ,Trans_id);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      p->QoS = QoS;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        ask_freq_to_CH_3().
-\return message formate
-*/
-msg_t *msg_ask_freq_to_CH_3(
-  Instance_t    inst,
-  L2_ID         L2_id           ,
-  L2_ID         L2_id_dest      ,
-  QOS_CLASS_T   QoS             ,
-  Transaction_t Trans_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    ask_freq_to_CH_t *p = RRM_CALLOC(ask_freq_to_CH_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_ip_msg_head(&(msg->head),inst,ASK_FREQ_TO_CH_3, sizeof( ask_freq_to_CH_t ) ,Trans_id);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      memcpy( p->L2_id_dest.L2_id, L2_id_dest.L2_id, sizeof(L2_ID) )  ;
-      p->QoS = QoS;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_open_freq().
-\return message formate
-*/
-msg_t *msg_update_open_freq_7(
-  Instance_t    inst,
-  L2_ID         L2_id           ,
-  unsigned int NB_ch,
-  CHANNELS_DB_T *channels, //mod_lor_10_05_17
-  Transaction_t Trans_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof( update_open_freq_t );// + (NB_free_ch-1) * sizeof(CHANNEL_T) ;//mod_lor_10_04_23
-
-    update_open_freq_t *p = RRM_CALLOC2(update_open_freq_t , size ) ;
-
-    if ( p != NULL ) {
-      init_ip_msg_head(&(msg->head),inst,UPDATE_OPEN_FREQ_7, size ,Trans_id);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      p->NB_chan       = NB_ch    ;
-
-      if ( NB_ch > 0 ) {
-        memcpy( p->channels , channels, NB_ch * sizeof(CHANNELS_DB_T) )  ;
-      }
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_update_SN_freq().
-\return message formate
-*/
-
-msg_t *msg_update_SN_occ_freq_5(
-  Instance_t inst             , //!< instance ID
-  L2_ID L2_id                 , //!< Layer 2 (MAC) ID of FC
-  unsigned int NB_chan        ,
-  unsigned int *occ_channels      ,
-  Transaction_t Trans_id        //!< Transaction ID
-)
-
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-  //fprintf(stdout,"rrc_end_scan_ord() cp1\n"); //dbg
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof( update_SN_occ_freq_t );// + (NB_chan-1) * sizeof(unsigned int) ;//mod_lor_10_04_23
-    update_SN_occ_freq_t *p = RRM_CALLOC2(update_SN_occ_freq_t , size ) ;
-
-    if ( p != NULL ) {
-
-
-      init_ip_msg_head(&(msg->head),inst,UPDATE_SN_OCC_FREQ_5, size,Trans_id);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-
-      p->NB_chan = NB_chan;
-
-      if ( NB_chan != 0 ) {
-
-        memcpy( p->occ_channels, occ_channels, NB_chan*sizeof(unsigned int) );
-
-      }
-
-
-    }
-
-    msg->data = (char *) p ;
-
-  }
-
-  return msg ;
-}
-
-//mod_lor_10_05_05++
-/*!
-*******************************************************************************
-\brief  Message to be sent to a CH that will collaborate in sensing operation.
-\return message formate
-*/
-msg_t *msg_init_coll_sens_req(
-  Instance_t       inst,        //!< instance ID of asking CH
-  L2_ID L2_id                 , //!< Layer 2 (MAC) ID of asking CH
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq,
-  Transaction_t    Trans_id        //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    init_coll_sens_req_t *p = RRM_CALLOC(init_coll_sens_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_ip_msg_head(&(msg->head),inst, INIT_COLL_SENS_REQ, sizeof( init_coll_sens_req_t) ,0);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      p->Start_fr     = Start_fr;
-      p->Stop_fr      = Stop_fr;
-      p->Meas_band    = Meas_band;
-      p->Meas_tpf     = Meas_tpf;
-      p->Nb_channels  = Nb_channels;
-      p->Overlap      = Overlap;
-      p->Sampl_freq   = Sampl_freq;
-
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-//mod_lor_10_05_05--
-//mod_lor_10_05_06++
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_stop_sensing.
-\return message formate
-*/
-msg_t *msg_stop_coll_sens(
-  Instance_t inst        //!< identification de l'instance
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t ,1 ) ;
-
-  if ( msg != NULL ) {
-    init_ip_msg_head(&(msg->head),inst,STOP_COLL_SENS, 0 ,0);
-    msg->data = NULL ;
-  }
-
-  return msg  ;
-}
-//mod_lor_10_05_06--
-//mod_lor_10_05_12++
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        cmm_stop_sensing.
-\return message formate
-*/
-msg_t *msg_stop_coll_sens_conf(
-  Instance_t inst,        //!< identification de l'instance
-  L2_ID L2_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t ,1 ) ;
-
-  if ( msg != NULL ) {
-    stop_coll_sens_conf_t *p = RRM_CALLOC(stop_coll_sens_conf_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_ip_msg_head(&(msg->head),inst,STOP_COLL_SENS_CONF, sizeof( stop_coll_sens_conf_t) ,0);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg  ;
-}
-//mod_lor_10_05_12--
-
-//mod_lor_10_05_07++
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        up_clust_sens_results().
-\return message formate
-*/
-
-msg_t *msg_up_clust_sens_results(
-  Instance_t inst,
-  L2_ID L2_id,                //!< FC L2_id
-  unsigned int NB_info,
-  unsigned int info_value,
-  Sens_ch_t *Sens_meas,
-  Transaction_t Trans_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof( update_coll_sens_t );// + (NB_info-1) * sizeof(Sens_ch_t) ; //mod_lor_10_04_23
-
-    update_coll_sens_t *p = RRM_CALLOC2(update_coll_sens_t , size ) ;
-
-    if ( p != NULL ) {
-      init_ip_msg_head(&(msg->head),inst, UP_CLUST_SENS_RESULTS, size ,Trans_id);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-      p->NB_info       = NB_info    ;
-      p->info_time     = 0 ;
-      p->info_value    = info_value;
-
-      if ( NB_info > 0 ) {
-        memcpy( p->Sens_meas , Sens_meas, NB_info * sizeof(Sens_ch_t) )  ;
-      }
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-
-}
-
-//mod_lor_10_05_07--
-
-/*!add_lor_10_11_09
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        user_disconnect.
-\return message formate
-*/
-msg_t *msg_user_disconnect_9(
-  Instance_t inst,        //!< identification de l'instance
-  L2_ID L2_id,            //!< L2_id of the user that wants to disconnect
-  Transaction_t Trans_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t ,1 ) ;
-
-  if ( msg != NULL ) {
-    user_disconnect_t *p = RRM_CALLOC(user_disconnect_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_ip_msg_head(&(msg->head),inst,USER_DISCONNECT_9, sizeof( user_disconnect_t) ,Trans_id);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg  ;
-
-}
-
-/*!add_lor_10_11_09
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        user_disconnect.
-\return message formate
-*/
-msg_t *msg_close_link(
-  Instance_t inst,        //!< identification de l'instance
-  L2_ID L2_id,            //!< L2_id of the user that wants to stop the link
-  L2_ID L2_id_dest,       //!< L2_id of the destination
-  Transaction_t Trans_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t ,1 ) ;
-
-  if ( msg != NULL ) {
-    close_link_t *p = RRM_CALLOC(close_link_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_ip_msg_head(&(msg->head),inst,CLOSE_LINK, sizeof( close_link_t) ,Trans_id);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      memcpy( p->L2_id_dest.L2_id, L2_id_dest.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg  ;
-
-}
diff --git a/openair3/MESH/RRM/ip_msg.h b/openair3/MESH/RRM/ip_msg.h
deleted file mode 100644
index 5fd11e8a04..0000000000
--- a/openair3/MESH/RRM/ip_msg.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       ip_msg.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-            et des fonctions relatives aux messages RRC-RRM ou RRC-RRCI.
-
-            Les fonctions servent à créer le buffer de message, remplir
-            l'entete et copier les parametres de fonction. Chaque fonction
-            retourne le message qui pourra être envoye sur le socket entre le
-            CMM et le RRM ou RRCI.
-
-\author     IACOBELLI Lorenzo
-
-\date       27/04/10
-
-\par     Historique:
-
-
-*******************************************************************************
-*/
-#ifndef __IP_MSG_H
-#define __IP_MSG_H
-
-#include "L3_rrc_defs.h"
-#include "COMMON/mac_rrc_primitives.h"
-
-
-#ifdef OPENAIR2_IN
-#include "rrm_sock.h"
-#else
-#include "RRC/MESH/rrc_rrm_interface.h"
-#endif
-//#include "../../../openair2/RRC/MESH/rrc_rrm_interface.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
-*******************************************************************************
-\brief  Enumeration des messages entre RRM/RRCI et le RRC
-*/
-typedef enum {
-  UPDATE_SENS_RESULTS_3       , ///< Message IP       : update to send to CH/FC //mod_lor_10_01_25
-  OPEN_FREQ_QUERY_4           , ///< Message IP       : BTS to ask free frequencies to FC
-  UPDATE_OPEN_FREQ_7          , ///< Message IP       : list of frequencies usable by the secondary network
-  UPDATE_SN_OCC_FREQ_5        , ///< Message IP       : BTS sends used freq. to FC
-  INIT_COLL_SENS_REQ          , ///< Message IP       : CH1 sends request to start collaboration to CH2
-  STOP_COLL_SENS              , ///< Message IP       : CH1 sends order to stop collaboration to CH2
-  UP_CLUST_SENS_RESULTS       , ///< Message IP       : update to send to CH from CH_COLL
-  STOP_COLL_SENS_CONF         , ///< Message IP       : CH2 sends confirmationof stop collaboration to CH1
-  ASK_FREQ_TO_CH_3            , ///< Message IP       : user that wants to transmits ask channels to CH
-  USER_DISCONNECT_9           , ///< Message IP       : user wants to disconnect
-  CLOSE_LINK                  , ///< Message IP       : user wants to stop a link
-  /*STOP_COLL_SENS             , ///< Message RRC->RRM : in FC/CH to report a frequency query
-  RRM_OPEN_FREQ               , ///< Message RRM->RRC : FC communicates open frequencies
-  RRM_UPDATE_SN_FREQ          , ///< Message RRM->RRC : BTS sends used freq. to FC
-  RRC_UPDATE_SN_FREQ          , ///< Message RRC->RRM : FC receives used freq. from BTS
-  RRM_CLUST_SCAN_REQ          , ///< Message RRM->RRC : CH1 contacts CH2 to collaborate for the sensing process
-  RRC_CLUST_SCAN_REQ          , ///< Message RRC->RRM : CH2 receive request to collaborate for the sensing process from CH1
-  RRM_CLUST_SCAN_CONF         , ///< Message RRM->RRC : CH2 confirmrs the beginning of a collaboration process
-  RRM_CLUST_MON_REQ           , ///< Message RRM->RRC : CH1 contacts CH2 to collaborate for the monitoring process
-  RRC_CLUST_MON_REQ           , ///< Message RRC->RRM : CH2 receive request to collaborate for the monitoring process from CH1
-  RRM_CLUST_MON_CONF          , ///< Message RRM->RRC : CH2 confirmrs the beginning of a monitoring process
-  RRM_END_SCAN_CONF           , ///< Message RRM->RRC : CH2 confirmrs the end of the collaborative sensing process at CH1
-  RRM_INIT_CONN_REQ           , ///< Message RRM->RRC : SU 1 requests a connection to SU 2
-  RRC_INIT_CONN_CONF          , ///< Message RRM->RRC : Confirm from SU2 about the requested connection
-  RRM_FREQ_ALL_PROP           , ///< Message RRM->RRC : SU1 sends a proposition of teh frequencies to use
-  RRC_FREQ_ALL_PROP_CONF      , ///< Message RRC->RRM : SU1 receives a confirm on the usable channels
-  RRM_REP_FREQ_ALL            , ///< Message RRM->RRC : SU1 reports to CH the possible channels
-  RRC_REP_FREQ_ACK            , ///< Message RRC->RRM : CH informs all SUs about a channel allocated to 2 SUs
-  RRC_INIT_CONN_REQ           , ///< Message RRC->RRM : Request from SU1 to establish a connection
-  RRM_CONN_SET                , ///< Message RRC->RRM : Response to SU1 and connection settings communicated to rcc
-  RRC_FREQ_ALL_PROP           , ///< Message RRC->RRM : SU1 proposition of frequencies to use
-  RRM_FREQ_ALL_PROP_CONF      , ///< Message RRC->RRM : SU2 choise of frequencies to use
-  RRC_REP_FREQ_ALL            , ///< Message RRM->RRC : SU1 reports to CH the possible channels
-  RRM_REP_FREQ_ACK            , ///< Message RRC->RRM : CH informs all SUs about a channel allocated to 2 SUs
-  */NB_MSG_IP                   ///< Nombre de message RRM-RRC
-
-}
-MSG_IP_T ;
-
-//mod_lor_10_05_05++
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction init_coll_sens_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID      L2_id              ; //!< Layer 2 (MAC) ID of Fusion Centre
-  unsigned int     Start_fr;      //!< Lowest frequency considered (MHz)
-  unsigned int     Stop_fr;       //!< Highest frequency considered (MHz)
-  unsigned int     Meas_band;     //!< Measurement bandwidth (KHz)
-  unsigned int     Meas_tpf;      //!< Measurement time per sub-band
-  unsigned int     Nb_channels;   //!< Number of sub-bands
-  unsigned int     Overlap;       //!< Overlap factor (%)
-  unsigned int     Sampl_freq;    //!< Sampling frequency (Ms/s)
-} init_coll_sens_req_t;
-//mod_lor_10_05_05--
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de les fonctions
-        rrm_update_sens()dans une structure permettant le passage
-        des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id                  ; //!< Layer 2 ID (MAC) of sensing node
-  unsigned int        NB_info                ; //!< Number of sensed channels
-  Sens_ch_t           Sens_meas[NB_SENS_MAX] ; //!< Sensing information
-  double              info_time              ; //!< Data of the information
-} rrm_update_sens_t ;
-
-//mod_lor_10_05_07++
-/*!
-*******************************************************************************
-\brief  Definition des parametres de les fonctions
-        rrm_update_sens()dans une structure permettant le passage
-        des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id                  ; //!< Layer 2 ID (MAC) of sensing node
-  unsigned int        NB_info                ; //!< Number of sensed channels
-  unsigned int        info_value             ; //!< value assigned to information
-  Sens_ch_t           Sens_meas[NB_SENS_MAX] ; //!< Sensing information
-  double              info_time              ; //!< Data of the information
-} update_coll_sens_t ;
-//mod_lor_10_05_07--
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de les fonctions rrm_ask_for_freq() et rrc_ask_for_freq()dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID      L2_id              ; //!< Layer 2 (MAC) ID of Fusion Centre
-  QOS_CLASS_T      QoS          ; //!< QoS required; if 0 all QoS at disposition
-} open_freq_query_t;
-
-/*! //mod_lor_10_10_29
-*******************************************************************************
-\brief  Definition des parametres de les fonctions rrm_ask_freq_to_CH() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID      L2_id              ; //!< Layer 2 (MAC) ID of source user
-  L2_ID      L2_id_dest         ; //!< Layer 2 (MAC) ID of destination user
-  QOS_CLASS_T      QoS          ; //!< QoS required; it corresponds to the mumber of channels required
-} ask_freq_to_CH_t;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de les fonctions
-        rrc_open_freq() et rrm_open_freq() dans une structure permettant le passage
-        des parametres via un socket
-*/
-typedef struct {
-  double              date;
-  L2_ID               L2_id                  ; //!< Layer 2 ID (MAC) of FC/CH
-  unsigned int        NB_chan                ; //!< number of channels
-  CHANNELS_DB_T       channels[NB_SENS_MAX]; //!< description of channelS
-} update_open_freq_t;
-
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres des fonctions rrm_update_SN_freq() et
-        rrm_update_SN_freq()dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id                ; //!< Layer 2 (MAC) ID of FC/BTS
-  unsigned int        NB_chan              ; //!< Number of channels
-  unsigned int        occ_channels[NB_SENS_MAX]; //!< Vector of channels
-} update_SN_occ_freq_t;
-
-/*!
-*******************************************************************************
-\brief
-*/
-typedef struct {
-  L2_ID               L2_id                ; //!< Layer 2 (MAC) ID
-} stop_coll_sens_conf_t, user_disconnect_t; //add_lor_10_11_09
-
-/*! //add_lor_10_11_09
-*******************************************************************************
-\brief
-*/
-typedef struct {
-  L2_ID               L2_id                ; //!< Layer 2 (MAC) ID
-  L2_ID               L2_id_dest           ; //!< Layer 2 (MAC) ID of dest
-} close_link_t;
-
-#ifdef TRACE
-extern const char *Str_msg_ip[NB_MSG_IP] ;
-#endif
-
-/* Rappel : les paramètres sont identiques aux fonctions
- *          (sans le prefixe msg_ ) du fichier: L3_rrc_interface.h
- */
-
-
-///MESSAGES VIA IP
-msg_t *msg_update_sens_results_3( Instance_t inst, L2_ID L2_id, unsigned int NB_chan, Sens_ch_t *Sens_meas, Transaction_t Trans_id );
-msg_t *msg_open_freq_query_4( Instance_t inst, L2_ID L2_id, QOS_CLASS_T QoS, Transaction_t Trans_id );
-msg_t *msg_update_open_freq_7( Instance_t inst, L2_ID L2_id, unsigned int NB_ch, CHANNELS_DB_T *channels, Transaction_t Trans_id);
-msg_t *msg_update_SN_occ_freq_5( Instance_t inst, L2_ID L2_id, unsigned int NB_chan, unsigned int *occ_channels, Transaction_t Trans_id);
-msg_t *msg_init_coll_sens_req( Instance_t inst, L2_ID L2_id, unsigned int  Start_fr, unsigned int  Stop_fr,unsigned int Meas_band,
-                               unsigned int Meas_tpf, unsigned int Nb_channels,unsigned int Overlap, unsigned int Sampl_freq, Transaction_t Trans_id ); //mod_lor_10_05_05
-msg_t *msg_stop_coll_sens( Instance_t inst);//mod_lor_10_05_06
-msg_t *msg_up_clust_sens_results( Instance_t inst, L2_ID L2_id, unsigned int NB_info,
-                                  unsigned int info_value, Sens_ch_t *Sens_meas, Transaction_t Trans_id ); //mod_lor_10_05_07
-msg_t *msg_stop_coll_sens_conf( Instance_t inst, L2_ID L2_id);//mod_lor_10_05_12
-msg_t *msg_ask_freq_to_CH_3( Instance_t inst, L2_ID L2_id, L2_ID L2_id_dest, QOS_CLASS_T QoS, Transaction_t Trans_id );//mod_lor_10_10_28
-msg_t *msg_user_disconnect_9( Instance_t inst, L2_ID L2_id, Transaction_t Trans_id); //add_lor_10_11_09
-msg_t *msg_close_link( Instance_t inst, L2_ID L2_id, L2_ID L2_id_dest, Transaction_t Trans_id); //add_lor_10_11_09
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* RRC_MSG_H */
diff --git a/openair3/MESH/RRM/mr_attach.c b/openair3/MESH/RRM/mr_attach.c
deleted file mode 100644
index 4ef9c6130e..0000000000
--- a/openair3/MESH/RRM/mr_attach.c
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       mr_attach.c
-
-\brief      Fonctions permettant la gestion de l'attachement d'un Mesh Router
-            a un cluster.
-
-\author     BURLOT Pascal
-
-\date       29/08/08
-
-
-\par     Historique:
-        P.BURLOT 2009-01-20
-            + separation de la file de message CMM/RRM a envoyer en 2 files
-              distinctes ( file_send_cmm_msg, file_send_rrc_msg)
-        L.IACOBELLI 2009-10-19
-            + inclusions
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "L3_rrc_interface.h"
-#include "cmm_rrm_interface.h"
-#include "rrm_sock.h"
-#include "rrc_rrm_msg.h"
-#include "cmm_msg.h"
-#include "pusu_msg.h"
-#include "msg_mngt.h"
-#include "rb_db.h"
-#include "neighbor_db.h"
-#include "sens_db.h"
-#include "channels_db.h"
-#include "rrm_util.h"
-#include "transact.h"
-#include "rrm_constant.h"
-#include "rrm.h"
-#include "mr_attach.h"
-
-
-//! Met un message dans la file des messages a envoyer
-#define PUT_CMM_MSG(m)  put_msg(  &(rrm->file_send_cmm_msg), 0, rrm->cmm.s,m )  //mod_lor_10_01_25
-#define PUT_PUSU_MSG(m) put_msg(  &(rrm->file_send_cmm_msg), 0, rrm->pusu.s,m)  //mod_lor_10_01_25
-#define PUT_RRC_MSG(m)  put_msg(  &(rrm->file_send_rrc_msg), 0, rrm->rrc.s,m )  //mod_lor_10_01_25
-
-/*!
-*******************************************************************************
-\brief MR attachement indication. Sent by RRC to RRM to indicate the MAC ID of
-       a new MR attached to CH at layer 2
-*/
-void rrc_MR_attach_ind(
-  Instance_t inst  , //!< Identification de l'instance
-  L2_ID      L2_id   //!< Layer 2 (MAC) ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( (rrm->state == CLUSTERHEAD_INIT1 )|| (rrm->state == CLUSTERHEAD )) {
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    add_neighbor( &(rrm->rrc.pNeighborEntry), &L2_id ) ;
-    rrm->rrc.trans_cnt++ ;
-    //fprintf(stderr,"item_trans in RRM_SENSING_MEAS_REQ=%d node %d\n",rrm->rrc.trans_cnt,rrm->id);//dbg
-    add_item_transact( &(rrm->rrc.transaction), rrm->rrc.trans_cnt ,INT_RRC,RRM_SENSING_MEAS_REQ,0,NO_PARENT );
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-    PUT_RRC_MSG( msg_rrm_sensing_meas_req( inst, L2_id ,Sensing_meas_desc, rrm->rrc.trans_cnt));
-
-    PUT_CMM_MSG( msg_rrm_MR_attach_ind(inst,L2_id ));
-  } else
-    fprintf(stderr,"[RRM] RRC_MR_ATTACH_IND  is not allowed (Only CH):etat=%d\n",rrm->state);
-
-}
-
-/*!
-*******************************************************************************
-\brief RRC response to sensing_meas_req
-*/
-void rrc_sensing_meas_resp(
-  Instance_t    inst     , //!< Identification de l'instance
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( (rrm->state == CLUSTERHEAD_INIT1 )|| (rrm->state == CLUSTERHEAD ) ) {
-    //fprintf(stderr, "[RRM] RRC_SENSING_MEAS_RESP  is not coded %s %d \n",__FILE__ , __LINE__ );
-
-    transact_t *pTransact ;
-
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    pTransact = get_item_transact(rrm->rrc.transaction,Trans_id ) ;
-
-    if ( pTransact == NULL ) {
-      fprintf(stderr,"[RRM] rrc_sensing_meas_resp (%d) unknown transaction\n",Trans_id);
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-    } else {
-      del_item_transact( &(rrm->rrc.transaction),Trans_id ) ;
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-    }
-  } else
-    fprintf(stderr,"[RRM] RRC_SENSING_MEAS_RESP (%d) is not allowed (Only CH):etat=%d\n",Trans_id,rrm->state);
-}
-
-/*!
-*******************************************************************************
-\brief RRC Connection Establishment indication.  Message received by RRM in CH
-        at completion of attachment phase of a new MR (after configuration MR IPAddr).
-        Here L3_info contains MR IPAddr. Message received by RRCI in MR after
-        configuration of initial RBs and reception of CH IPAddr.  Here L3_info
-        contains CH IPAddr.  For MR the RBID's of basic IP services are also required.
-*/
-void rrc_cx_establish_ind(
-  Instance_t     inst      , //!< Identification de l'instance
-  L2_ID          L2_id     , //!< Layer 2 (MAC) ID
-  Transaction_t  Trans_id  , //!< Transaction ID
-  unsigned char *L3_info   , //!< Optional L3 Information
-  L3_INFO_T      L3_info_t , //!< Type of L3 Information
-  RB_ID          DTCH_B_id , //!< RBID of broadcast IP service (MR only)
-  RB_ID          DTCH_id     //!< RBID of default IP service (MR only)
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  //fprintf(stderr,"[RRM] RRC_CX_ESTABLISH_IND (%d) :status=%d\n",Trans_id,rrm->state);
-
-  if ( (rrm->state == CLUSTERHEAD) ) {
-    //fprintf(stderr,"[RRM] RRC_CX_ESTABLISH_IND (%d) :status=CH %d\n",Trans_id,rrm->state);
-    PUT_CMM_MSG( msg_rrm_attach_ind(inst,L2_id,L3_info_t,L3_info, 0 )) ;
-  } else if ( rrm->state == MESHROUTER ) {
-    fprintf(stderr,"[RRM] RRC_CX_ESTABLISH_IND (%d) :status=MR %d\n",Trans_id,rrm->state);
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    //fprintf(stderr,"item_trans in RRC_CX_ESTABLISH_IND=%d node %d\n",rrm->rrc.trans_cnt,rrm->id);//dbg
-    add_item_transact( &(rrm->rrc.transaction), Trans_id,INT_RRC,RRC_CX_ESTABLISH_IND,0,NO_PARENT);
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-    pthread_mutex_lock( &( rrm->cmm.exclu ) ) ;
-    rrm->cmm.trans_cnt++ ;
-    //fprintf(stderr,"item_trans in RRCI_ATTACH_REQ=%d node %d\n",rrm->cmm.trans_cnt,rrm->id);//dbg
-    add_item_transact( &(rrm->cmm.transaction), rrm->cmm.trans_cnt,INT_CMM,RRCI_ATTACH_REQ,Trans_id,PARENT);
-    pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-
-    PUT_CMM_MSG( msg_rrci_attach_req(inst,L2_id,L3_info_t,L3_info, DTCH_B_id, DTCH_id ,rrm->cmm.trans_cnt)) ;
-  } else
-    fprintf(stderr,"[RRM] RRC_CX_ESTABLISH_IND (%d) is not allowed (Only CH):status=%d\n",Trans_id,rrm->state);
-
-}
-/*!
-*******************************************************************************
-\brief Clusterhead PHY-Synch Indication
- */
-void rrc_phy_synch_to_CH_ind(
-  Instance_t   inst     , //!< Identification de l'instance
-  unsigned int Ch_index , //!< Clusterhead index
-  L2_ID        L2_id
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( (rrm->state == ISOLATEDNODE)  || (rrm->state == MESHROUTER) ) {
-    rrm->state = MESHROUTER ;
-
-    /* Memorisation du L2_id du noeud ( c'est le niveau RRC qui a l'info ) */
-    memcpy( &rrm->L2_id,  &L2_id, sizeof(L2_ID));
-
-    PUT_RRC_MSG(
-      msg_rrci_init_mr_req( inst,
-                            rrm->rrc.trans_cnt,
-                            &Lchan_desc[QOS_SRB0],
-                            &Lchan_desc[QOS_SRB1],
-                            Ch_index)
-    );
-
-
-  } else
-    fprintf(stderr,"[RRM] RRC_PHY_SYNCH_TO_CH_IND is not allowed (Only IN):etat=%d\n",rrm->state);
-}
-
-/*!
-*******************************************************************************
-\brief L3 Connection Attachment confirmation.  Message sent by CMM in MR at
-       completion of L3 attachment phase of a new MR Here L3_info contains
-       MR IPAddr.
-*/
-void cmm_attach_cnf(
-  Instance_t     inst      , //!< Identification de l'instance
-  L2_ID          L2_id     , //!< L2_id of CH ( Mesh Router can see 2 CH )
-  L3_INFO_T      L3_info_t , //!< Type of L3 Information
-  unsigned char *L3_info   , //!< L3 addressing Information
-  Transaction_t  Trans_id    //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( rrm->state == MESHROUTER ) {
-    transact_t *pTransact ;
-
-    pthread_mutex_lock( &( rrm->cmm.exclu ) ) ;
-    pTransact = get_item_transact(rrm->cmm.transaction,Trans_id ) ;
-
-    if ( pTransact == NULL ) {
-      fprintf(stderr,"[RRM] CMM_ATTACH_CNF (%d): unknown transaction\n",Trans_id);
-      pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-    } else {
-      unsigned int parent_id     = pTransact->parent_id ;
-      unsigned int status_parent = pTransact->parent_status ;
-
-      del_item_transact( &(rrm->cmm.transaction),Trans_id ) ;
-      pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-
-      if ( status_parent ) {
-        transact_t *pTransactParent ;
-
-        pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-        pTransactParent =get_item_transact(rrm->rrc.transaction,parent_id ) ;
-
-        if ( pTransactParent != NULL ) {
-          rrm->L3_info_t = L3_info_t; //mod_lor_10_01_25
-          memcpy (&(rrm->L3_info), L3_info, L3_info_t); //mod_lor_10_01_25
-          PUT_RRC_MSG( msg_rrci_cx_establish_resp(inst,pTransactParent->id,L2_id,L3_info,L3_info_t ));
-          del_item_transact( &(rrm->rrc.transaction),pTransactParent->id ) ;
-        } else // la transaction parent est inconnue, on ne fait rien
-          fprintf(stderr,"[RRM] CMM_ATTACH_CNF (%d) : the parent transaction (%d) is unknown\n",Trans_id,parent_id);
-
-        pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-      }
-    }
-  } else
-    fprintf(stderr,"[RRM] CMM_ATTACH_CNF (%d) is not allowed (Only MR):etat=%d\n",Trans_id,rrm->state);
-}
-/*!
-*******************************************************************************
-\brief RRC sensing measurement indication
-*/
-void rrc_sensing_meas_ind(
-  Instance_t      inst         , //!< Identification de l'instance
-  L2_ID           L2_id        , //!< Layer 2 ID (MAC) of sensing node
-  unsigned int    NB_meas      , //!< Number of measurements
-  SENSING_MEAS_T *Sensing_meas , //!< Sensing Information
-  Transaction_t   Trans_id       //!< Transaction ID
-)
-{
-  int i ;
-
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( (rrm->state == CLUSTERHEAD) ) {
-    pthread_mutex_lock(   &( rrm->rrc.exclu )  ) ;
-
-    // update database of neighbor
-    set_Sensing_meas_neighbor( rrm->rrc.pNeighborEntry, &L2_id , NB_meas, Sensing_meas );
-
-    pthread_mutex_unlock( &( rrm->rrc.exclu )  ) ;
-    // send the response to rrc
-    PUT_RRC_MSG( msg_rrm_sensing_meas_resp(inst,Trans_id) );
-
-    for (  i = 0 ; i< NB_meas ; i++) {
-      pthread_mutex_lock( &( rrm->pusu.exclu ) ) ;
-      rrm->pusu.trans_cnt++ ;
-      add_item_transact( &(rrm->pusu.transaction), rrm->pusu.trans_cnt,INT_PUSU,RRM_SENSING_INFO_IND,0,NO_PARENT);
-      pthread_mutex_unlock( &( rrm->pusu.exclu ) ) ;
-
-      PUT_PUSU_MSG( msg_rrm_sensing_info_ind(inst, L2_id,Sensing_meas[i].L2_id, Sensing_meas[i].Rssi, rrm->pusu.trans_cnt ) ) ;
-    }
-
-  } else
-    fprintf(stderr,"[RRM] RRC_SENSING_MEAS_IND is not allowed (Only CH):etat=%d\n",rrm->state);
-}
-
-
-
diff --git a/openair3/MESH/RRM/mr_attach.h b/openair3/MESH/RRM/mr_attach.h
deleted file mode 100644
index 3dcdd16007..0000000000
--- a/openair3/MESH/RRM/mr_attach.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file     mr_attach.h
-
-\brief    Fichier d'entete contenant les declarations des types, des defines ,
-      et des fonctions relatives a la gestion de l'attachement d'un Mesh
-      Router a un cluster.
-
-\author   BURLOT Pascal
-
-\date     29/08/08
-
-
-\par     Historique:
-      $Author$  $Date$  $Revision$
-      $Id$
-      $Log$
-
-*******************************************************************************
-*/
-
-#ifndef MR_ATTACH_H
-#define MR_ATTACH_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// ---------------------------------------------------------------------------
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* MR_ATTACH_H */
diff --git a/openair3/MESH/RRM/msg_mngt.c b/openair3/MESH/RRM/msg_mngt.c
deleted file mode 100644
index 6d90e9bd30..0000000000
--- a/openair3/MESH/RRM/msg_mngt.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       msg_mngt.c
-
-\brief      Gestion de l'envoi et la reception de message.
-
-\author     BURLOT Pascal
-
-\date       17/07/08
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "rrm_util.h"
-#include "rrm_sock.h"
-#include "msg_mngt.h"
-
-//! Selection locale du mode de debug
-#define DBG_MSG_MNGT 0
-
-#if DBG_MSG_MNGT==0
-//! Macro inactive
-#define PRINT_MSG_MNGT(...)
-#else
-//! Macro affichant  la file de message
-#define PRINT_MSG_MNGT(...) print_msg_mngt( __VA_ARGS__ )
-#endif
-
-/*!
-*******************************************************************************
-\brief  La fonction affiche a l'ecran la liste des messages
-
-\return  aucune valeur retournee
-*/
-static void print_msg_mngt( file_msg_t *pEntry , int id )
-{
-  file_msg_t *pCurrentItem = pEntry;
-
-  fprintf(stderr,"file_msg_t(%d)=[\n", id);
-
-  while ( pCurrentItem != NULL) {
-    fprintf(stderr,"  @%p(.s=%p, .msg=%p, .next=%p)\n", pCurrentItem, pCurrentItem->s,
-            pCurrentItem->msg, pCurrentItem->next);
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  fprintf(stderr," ]\n");
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction initialise  la file des messages.
-
-\return aucune valeur.
-*/
-void init_file_msg(
-  file_head_t *file_hd , ///< descripteur de la file des messages
-  int  id                ///< file id
-)
-{
-  pthread_mutex_init( &( file_hd->mutex ), NULL ) ;
-
-  file_hd->id   = id;
-  file_hd->file = NULL ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction ajoute un element en debut de la file des messages.
-
-\return  retourne le pointeur le nouvel element de la liste.
-*/
-file_msg_t *put_msg(
-  file_head_t *file_hd ,  ///< descripteur de la file des messages
-  //mod_lor_10_01_25
-  int s_type            , ///< socket type: 0 -> unix; 1 -> internet
-  //sock_rrm_t *s,          ///< socket associe au message
-  void *s ,               ///< socket associe au message
-
-  msg_t *msg              ///< le message a ajouter dans la liste
-)
-{
-  file_msg_t *pOldEntry = file_hd->file;
-
-  file_msg_t *pNewItem = RRM_MALLOC( file_msg_t , 1 ) ;
-
-  if ( pNewItem == NULL )
-    return NULL ;
-
-  //fprintf(stderr,"put_msg 1 \n");//dbg
-  CALL(pthread_mutex_lock( &(file_hd->mutex) ));
-
-  file_hd->file       = pNewItem          ;
-  pNewItem->next      = pOldEntry         ;
-  //mod_lor_10_01_25++
-  pNewItem->s_type    = s_type            ;
-
-  //fprintf(stderr,"put_msg 2 \n");//dbg
-  if (s_type) {
-    pNewItem->s     = NULL              ;
-    pNewItem->s_int = s                 ;
-  } else {
-    pNewItem->s     = s                 ;
-    pNewItem->s_int = NULL              ;
-  }
-
-  //mod_lor_10_01_25--
-  pNewItem->msg       = msg               ;
-
-  //fprintf(stderr,"put_msg 3 \n");//dbg
-  PRINT_MSG_MNGT( file_hd->file , file_hd->id );
-
-  //fprintf(stderr,"put_msg 4 \n");//dbg
-  CALL(pthread_mutex_unlock( &(file_hd->mutex) ));
-
-  //fprintf(stderr,"put_msg end \n");//dbg
-  return pNewItem ;
-}
-
-/*!
-*******************************************************************************
-\brief   La fonction retire le dernier element de la file des messages.
-
-\return  retourne le pointeur sur l'element enleve de la liste.
-*/
-file_msg_t *get_msg(
-  file_head_t *file_hd ///< descripteur de la file des messages
-)
-{
-  file_msg_t *pCurrentItem = file_hd->file ;
-  file_msg_t *pNextItem   ;
-  file_msg_t **ppPrevItem  = &(file_hd->file) ;
-
-  if ( (pCurrentItem == NULL)  )
-    return NULL ;
-
-  CALL(pthread_mutex_lock( &(file_hd->mutex) ));
-
-  while ( pCurrentItem != NULL ) {
-
-    pNextItem = pCurrentItem->next ;
-
-    if ( pNextItem == NULL ) {
-      /* Dernier element */
-      *ppPrevItem = NULL ;
-      break ;
-    }
-
-    ppPrevItem   = &(pCurrentItem->next) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  PRINT_MSG_MNGT( file_hd->file , file_hd->id );
-  PRINT_MSG_MNGT( pCurrentItem , file_hd->id *-1 );
-
-  CALL(pthread_mutex_unlock( &(file_hd->mutex) ));
-  return pCurrentItem ;
-}
-
diff --git a/openair3/MESH/RRM/msg_mngt.h b/openair3/MESH/RRM/msg_mngt.h
deleted file mode 100644
index 2d9b8ab318..0000000000
--- a/openair3/MESH/RRM/msg_mngt.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file     msg_mngt.h
-
-\brief    Fichier d'entete contenant les declarations des types, des defines ,
-      et des fonctions relatives a la gestion de l'envoi et la reception
-      de message.
-
-\author   BURLOT Pascal
-
-\date     17/07/08
-
-\par     Historique:
-      $Author$  $Date$  $Revision$
-      $Id$
-      $Log$
-
-*******************************************************************************
-*/
-
-#ifndef MSG_MNGT_H
-#define MSG_MNGT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
-*******************************************************************************
-\brief File des messages reçus ou a envoyer
-*/
-typedef struct msg_file_s {
-  //mod_lor_10_01_25
-  int s_type                  ; /// socket type: 0 -> unix; 1 -> internet
-  sock_rrm_t      *s    ; ///< socket origine ou destinataire si unix
-  sock_rrm_int_t      *s_int  ; ///< socket origine ou destinataire si internet
-
-  msg_t         *msg  ; ///< data of message
-  struct msg_file_s   *next ; ///< next message of file
-} file_msg_t ;
-
-/*!
-*******************************************************************************
-\brief Entete de la file des messages reçus ou a envoyer
-*/
-typedef struct {
-  int            id   ; ///< id
-  pthread_mutex_t      mutex  ; ///< Mutex associee
-  file_msg_t          *file   ; ///< point d'entree sur la file des messages
-} file_head_t ;
-
-/*
-*******************************************************************************
-*/
-void init_file_msg( file_head_t *file_hd , int id ) ;
-file_msg_t *put_msg( file_head_t *file_hd , int s_type, void *s, msg_t *msg) ; //mod_lor_10_01_25
-file_msg_t *get_msg( file_head_t *file_hd  ) ;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* MSG_MNGT_H */
diff --git a/openair3/MESH/RRM/neighbor_db.c b/openair3/MESH/RRM/neighbor_db.c
deleted file mode 100644
index 75f0a3459b..0000000000
--- a/openair3/MESH/RRM/neighbor_db.c
+++ /dev/null
@@ -1,485 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       neighbor_db.c
-
-\brief      Fonctions permettant la gestion de la base de donnée sur le voisinage
-            directe (1 saut) du cluster head et indirecte a 2 sauts.
-
-\author     BURLOT Pascal
-
-\date       29/08/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "rrm_sock.h"
-#include "rrc_rrm_msg.h"
-#include "rrm_util.h"
-#include "neighbor_db.h"
-
-//! Selection locale du mode de debug
-#define DBG_NEIGHBOR_DB 0
-
-#if DBG_NEIGHBOR_DB==0
-//! Macro inactive
-#define PRINT_NEIGHBOR_DB(...)
-#else
-//! Macro affichant  la liste du voisnage d'un cluster
-#define PRINT_NEIGHBOR_DB(...) print_neighbor_db( __VA_ARGS__ )
-#endif
-
-/*!
-*******************************************************************************
-\brief  Comparaison de deux ID de niveau 2
-
-\return si 0 alors les IDs sont identiques
-*/
-static int L2_ID_cmp(
-  L2_ID *L2_id1, ///< ID de niveau 2
-  L2_ID *L2_id2  ///< ID de niveau 2
-)
-{
-  return memcmp( L2_id1, L2_id2, sizeof(L2_ID) ) ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction affiche a l'ecran la liste (pour DEBUG )
-
-\return  aucune valeur retournee
-*/
-static void print_neighbor_db(
-  neighbor_desc_t *pEntry ///< pointeur sur le debut de liste
-)
-{
-  unsigned int i , j ;
-  neighbor_desc_t *pCurrentItem = pEntry;
-
-  fprintf(stderr,"neighbor list=[\n");
-
-  while ( pCurrentItem != NULL) {
-    fprintf(stderr,"  @%p(.L2_id=", pCurrentItem );
-
-    for ( i=0; i<8; i++)
-      fprintf(stderr,"%02X", pCurrentItem->L2_id.L2_id[i]);
-
-    fprintf(stderr,", .NB_neighbor=%u, .Sensing_meas=%p, .next=%p)\n",
-            pCurrentItem->NB_neighbor, pCurrentItem->Sensing_meas,pCurrentItem->next );
-
-    if ( pCurrentItem->Sensing_meas != NULL )
-      for ( j=0; j<pCurrentItem->NB_neighbor; j++) {
-        fprintf(stderr,"\tNeighbor(%d):.L2_id=",j);
-
-        for ( i=0; i<8; i++)
-          fprintf(stderr,"%02X", pCurrentItem->Sensing_meas[j].L2_id.L2_id[i]);
-
-        fprintf(stderr," .RSSI=%02X\n", pCurrentItem->Sensing_meas[j].Rssi);
-      }
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  fprintf(stderr," ]\n");
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction ajoute un voisin dans la liste des voisins du Cluster head.
-
-\return  retourne la valeur du nouvel element
-*/
-neighbor_desc_t *add_neighbor(
-  neighbor_desc_t **neighbor_entry, ///< pointeur sur l'entree de la liste de voisinage
-  L2_ID *L2_id                      ///< ID du nouveau noeud
-)
-{
-  neighbor_desc_t *pNewItem = get_neighbor( *neighbor_entry, L2_id );
-
-  if ( pNewItem == NULL ) {
-    // If not Exist then create a new item
-    neighbor_desc_t *pOldEntry = *neighbor_entry;
-
-    pNewItem = RRM_MALLOC(neighbor_desc_t , 1 ) ;
-
-    PNULL(pNewItem) ;
-
-    if ( pNewItem == NULL )
-      return NULL ;
-
-    memcpy( pNewItem->L2_id.L2_id , L2_id->L2_id, sizeof(L2_ID) ) ;
-    //pNewItem->RSSI      =  0   ;
-    pNewItem->NB_neighbor =  0   ;
-    pNewItem->Sensing_meas=  NULL;
-
-    *neighbor_entry     =  pNewItem ;
-    pNewItem->next      =  pOldEntry;
-  }
-
-  PRINT_NEIGHBOR_DB( *neighbor_entry );
-  return pNewItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction retire un element de la liste des voisins
-
-\return  aucune valeur.
-*/
-void del_neighbor(
-  neighbor_desc_t **neighbor_entry, ///< pointeur sur l'entree de la liste de voisinage
-  L2_ID            *L2_id           ///< ID niveau 2 du voisin a detruire
-)
-{
-  neighbor_desc_t *pCurrentItem = *neighbor_entry;
-  neighbor_desc_t *pNextItem  ;
-  neighbor_desc_t **ppPrevItem  = neighbor_entry ;
-
-  if ( (pCurrentItem == NULL)  || (neighbor_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-
-    if ( L2_ID_cmp( &(pCurrentItem->L2_id),L2_id) == 0 ) {
-      *ppPrevItem = pNextItem;
-
-      RRM_FREE( pCurrentItem->Sensing_meas) ;
-      RRM_FREE( pCurrentItem ) ;
-      break ;
-    }
-
-    ppPrevItem   = &(pCurrentItem->next) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  PRINT_NEIGHBOR_DB( *neighbor_entry );
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction detruit entierement la liste des voisins
-
-\return aucune valeur.
-*/
-void del_all_neighbor(
-  neighbor_desc_t **neighbor_entry ///< pointeur sur l'entree de la liste de voisinage
-)
-{
-  neighbor_desc_t *pCurrentItem = *neighbor_entry;
-  neighbor_desc_t *pNextItem  ;
-
-  if ( (pCurrentItem == NULL)  || (neighbor_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-
-    RRM_FREE( pCurrentItem->Sensing_meas ) ;
-    RRM_FREE( pCurrentItem ) ;
-
-    pCurrentItem = pNextItem ;
-  }
-
-  *neighbor_entry = NULL ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction recherche les informations de voisinage d'un noeud
-
-\return descripteur sur les infos de voisinage du noeud ou NULL
-*/
-neighbor_desc_t *get_neighbor(
-  neighbor_desc_t *neighbor_entry, ///< pointeur sur l'entree de la liste de voisinage
-  L2_ID *L2_id                     ///< ID du noeud
-)
-{
-  neighbor_desc_t *pCurrentItem = neighbor_entry;
-
-  while ( pCurrentItem != NULL) {
-    if ( L2_ID_cmp( &(pCurrentItem->L2_id),L2_id) == 0 )
-      break ;
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  return pCurrentItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction met a jour les informations de mesure de voisinage d'un noeud
-
-\return aucune valeur
-*/
-void set_Sensing_meas_neighbor(
-  neighbor_desc_t *neighbor_entry, ///< pointeur sur l'entree de la liste de voisinage
-  L2_ID           *L2_id         , ///< ID du noeud
-  unsigned int     nb_meas       , ///< Nombre de mesure associe au noeud
-  SENSING_MEAS_T *sensing_meas     ///< Mesures de voisinage
-)
-{
-  neighbor_desc_t *pCurrentItem = neighbor_entry;
-
-  while ( pCurrentItem != NULL) {
-    if ( L2_ID_cmp( &(pCurrentItem->L2_id),L2_id) == 0 ) {
-      pCurrentItem->NB_neighbor = 0 ;
-
-      RRM_FREE(pCurrentItem->Sensing_meas );
-
-      if (  nb_meas > 0 ) {
-        SENSING_MEAS_T *p   = RRM_MALLOC(SENSING_MEAS_T, nb_meas ) ;
-
-        if ( p != NULL ) {
-          int size = nb_meas * sizeof(SENSING_MEAS_T) ;
-          memcpy( p,sensing_meas , size );
-          pCurrentItem->NB_neighbor  = nb_meas ;
-          pCurrentItem->Sensing_meas = p ;
-        }
-      }
-
-      break ;
-    }
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  if (pCurrentItem==NULL) {
-    fprintf(stderr,"ERROR: Unknown MR L2_id  :");
-    print_L2_id(L2_id) ;
-    fprintf(stderr,"\n");
-  }
-
-  PRINT_NEIGHBOR_DB( neighbor_entry );
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction lit l'information de RSSI entre un noeud et un noeud voisin
-
-\return la valeur de RSSI
-*/
-unsigned char get_RSSI_neighbor(
-  neighbor_desc_t *neighbor_entry , ///< pointeur sur l'entree de la liste de voisinage
-  L2_ID           *L2_id          , ///< ID du noeud
-  L2_ID           *neighbor_id      ///< ID du noeud voisin
-)
-{
-  neighbor_desc_t *pCurrentItem = neighbor_entry;
-  unsigned char   rssi = 0xFF ;
-  int i ;
-
-  while ( pCurrentItem != NULL) {
-    if ( L2_ID_cmp( &(pCurrentItem->L2_id),L2_id) == 0 ) {
-      for ( i = 0 ; i < pCurrentItem->NB_neighbor ; i++ ) {
-        if ( L2_ID_cmp( &(pCurrentItem->Sensing_meas[i].L2_id),neighbor_id) == 0 ) {
-          rssi = pCurrentItem->Sensing_meas[i].Rssi ;
-          return (rssi) ;
-        }
-      }
-    }
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  return rssi ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction ajoute un couple de voisin a la liste de type neighbor_list_t
-
-\return le nouvel element de liste
-*/
-static neighbor_list_t *add_item_neighbor_list(
-  neighbor_list_t **neighbor_list_entry , ///< pointeur sur l'entree de la liste des couples de voisins
-  L2_ID            *L2_id1              , ///< ID du noeud 1
-  L2_ID             *L2_id2               ///< ID du noeud 2
-)
-{
-  neighbor_list_t *pOldEntry = *neighbor_list_entry;
-
-  neighbor_list_t *pNewItem = RRM_MALLOC(neighbor_list_t, 1 ) ;
-
-  PNULL(pNewItem) ;
-
-  if ( pNewItem == NULL )
-    return NULL ;
-
-  memcpy( &(pNewItem->L2_id[0]) , L2_id1, sizeof(L2_ID) ) ;
-  memcpy( &(pNewItem->L2_id[1]) , L2_id2, sizeof(L2_ID) ) ;
-  pNewItem->Rssi[0]       =  0xFF      ;
-  pNewItem->Rssi[1]       =  0xFF      ;
-  pNewItem->nb_opened_rb  =  0   ;
-  pNewItem->rb_meas       =  NULL;
-
-  *neighbor_list_entry    =  pNewItem ;
-  pNewItem->next          =  pOldEntry;
-
-  return pNewItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction touve un couple de voisin dans la liste de type neighbor_list_t
-
-\return l'element trouve
-*/
-static neighbor_list_t *get_item_neighbor_list(
-  neighbor_list_t *neighbor_list_entry, ///< pointeur sur l'entree de la liste des couples de voisins
-  L2_ID           *L2_id1             , ///< ID du noeud 1
-  L2_ID           *L2_id2               ///< ID du noeud 2
-)
-{
-  neighbor_list_t *pCurrentItem = neighbor_list_entry;
-  L2_ID L2_id[2] ;
-
-  memcpy( &(L2_id[0]), L2_id1, sizeof(L2_ID) ) ;
-  memcpy( &(L2_id[1]), L2_id2, sizeof(L2_ID) ) ;
-
-  while ( pCurrentItem != NULL) {
-    if ( memcmp( &(pCurrentItem->L2_id),L2_id,2*sizeof(L2_ID)) == 0 )
-      break ;
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  return pCurrentItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction cree la liste de type neighbor_list_t a partie d'une liste
-        de type neighbor_desc_t:
-        - Elle construit la liste des MR en vue directe du CH (voisinage directe)
-        - Elle construit la liste des MR voyant d'autre MR (voisinage a 2 sauts)
-
-\return retourne la liste de type neighbor_list_t.
-*/
-neighbor_list_t *create_neighbor_list(
-  neighbor_desc_t *neighbor_entry , ///< pointeur sur l'entree de la liste de voisinage
-  L2_ID           *L2_id_CH         ///< ID du Cluster Head
-)
-{
-  neighbor_desc_t *pCurrentItem = neighbor_entry;
-  neighbor_list_t *pList=NULL ;
-
-  // construit la liste des MR voyant le CH en directe (voisinage directe)
-  while ( pCurrentItem != NULL) {
-    add_item_neighbor_list( &pList, L2_id_CH, &(pCurrentItem->L2_id) ) ;
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  // construit la liste des MR voyant d'autre MR (voisinage a 2 sauts)
-  pCurrentItem = neighbor_entry;
-
-  while ( pCurrentItem != NULL) {
-    int i ;
-
-    for ( i = 0 ; i<pCurrentItem->NB_neighbor; i++ ) {
-      neighbor_list_t *pItemFound ;
-      // Recherche du couple de voisin dans la liste
-      pItemFound = get_item_neighbor_list(pList ,
-                                          &(pCurrentItem->L2_id) ,
-                                          &(pCurrentItem->Sensing_meas[i].L2_id)
-                                         );
-
-      if ( pItemFound == NULL ) {
-        // si le couple n'est pas trouve alors on inverse les adresses MAC
-        pItemFound = get_item_neighbor_list(pList ,
-                                            &(pCurrentItem->Sensing_meas[i].L2_id) ,
-                                            &(pCurrentItem->L2_id)
-                                           );
-
-        if ( pItemFound == NULL ) {
-          // si ce couple n'est pas dans la liste alors on l'y ajoute
-          pItemFound = add_item_neighbor_list( &pList, &(pCurrentItem->L2_id), &(pCurrentItem->Sensing_meas[i].L2_id)) ;
-          pItemFound->Rssi[1] = pCurrentItem->Sensing_meas[i].Rssi ;
-        }
-      } else {
-        // Met a jour le champs Rssi
-        pItemFound->Rssi[0] = pCurrentItem->Sensing_meas[i].Rssi ;
-      }
-    }
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  return pList ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction detruit la liste de type neighbor_list_t .
-
-\return Aucune valeur
-*/
-void del_neighbor_list(
-  neighbor_list_t **neighbor_list_entry ///< pointeur sur l'entree de la liste de voisinage
-)
-{
-  neighbor_list_t *pCurrentItem = *neighbor_list_entry;
-  neighbor_list_t *pNextItem  ;
-
-  if ( (pCurrentItem == NULL)  || (neighbor_list_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-
-    RRM_FREE( pCurrentItem->rb_meas ) ;
-    RRM_FREE( pCurrentItem ) ;
-
-    pCurrentItem = pNextItem ;
-  }
-
-  *neighbor_list_entry = NULL ;
-}
diff --git a/openair3/MESH/RRM/neighbor_db.h b/openair3/MESH/RRM/neighbor_db.h
deleted file mode 100644
index 40bc52a9c0..0000000000
--- a/openair3/MESH/RRM/neighbor_db.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       neighbor_db.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-            et des fonctions relatives a la gestion de la base de donnée sur le
-            voisinage  directe (1 saut) du cluster head et indirecte a 2 sauts.
-
-\author     BURLOT Pascal
-
-\date       29/08/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-
-#ifndef NEIGHBOR_DB_H
-#define NEIGHBOR_DB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*!
-*******************************************************************************
-\brief  Description de la structure de voisinage d'un noeud attache a un cluster
-*/
-typedef struct  neighbor_desc_s {
-  L2_ID               L2_id           ; /*!< L2_id of a node               */
-  // Note: suppression du champ RSSI  a ce niveau car le RSSI CH-MR n'est
-  // a priori pas mesuré , seul le RSSI des mesures de voisinage  ou le RSSI
-  // sur les canaux logiques (RB) logiques
-  //unsigned char         RSSI        ; /*!< RSSI (minus in dBm) with the CH  */
-
-  unsigned int        NB_neighbor     ; /*!< Number de neighbor (2hops)    */
-  SENSING_MEAS_T      *Sensing_meas   ; /*!< RSSI measurement information
-                                              and list of neighbor L2_id     */
-  struct  neighbor_desc_s   *next     ; /*!< Next neighbor to 1 hop        */
-} neighbor_desc_t ;
-
-/*!
-*******************************************************************************
-\brief  Description de la liste de voisinage par couple de voisin
-*/
-typedef struct neighbor_list_s {
-  L2_ID                   L2_id[2]     ; /*!< L2_id of a neighbor couple   */
-  unsigned char           Rssi[2]      ; /*!< Rssi of each neighbor        */
-  unsigned int            nb_opened_rb ; /*!< Number of opened RBs         */
-  rrc_rb_meas_ind_t       *rb_meas     ; /*!< Measure of opened RBs        */
-  struct neighbor_list_s  *next        ; /*!< Next item                    */
-} neighbor_list_t ;
-
-// ---------------------------------------------------------------------------
-
-neighbor_desc_t *add_neighbor( neighbor_desc_t **neighbor_entry, L2_ID *L2_id ) ;
-void del_neighbor( neighbor_desc_t **neighbor_entry, L2_ID *L2_id ) ;
-void del_all_neighbor( neighbor_desc_t **neighbor_entry ) ;
-neighbor_desc_t *get_neighbor( neighbor_desc_t *neighbor_entry, L2_ID *L2_id ) ;
-
-void set_Sensing_meas_neighbor( neighbor_desc_t *neighbor_entry, L2_ID *L2_id ,
-                                unsigned int nb_meas, SENSING_MEAS_T *sensing_meas ) ;
-
-
-unsigned char get_RSSI_neighbor(neighbor_desc_t *neighbor_entry,L2_ID *L2_id, L2_ID *neighbor_id );
-
-// ---------------------------------------------------------------------------
-/* NOT USED
-neighbor_list_t *create_neighbor_list(  neighbor_desc_t *neighbor_entry, L2_ID *L2_id_CH );
-void del_neighbor_list( neighbor_list_t **neighbor_list_entry );
-*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NEIGHBOR_DB_H */
diff --git a/openair3/MESH/RRM/pusu_msg.c b/openair3/MESH/RRM/pusu_msg.c
deleted file mode 100644
index 08ca2b1411..0000000000
--- a/openair3/MESH/RRM/pusu_msg.c
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       pusu_msg.c
-
-\brief      Fonctions permettant le formattage des donnees pour l'envoi d'un
-            message sur le socket entre le RRM et PuSu (intra/inter Routing)
-
-\author     BURLOT Pascal
-
-\date       29/08/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "L3_rrc_defs.h"
-#include "rrm_sock.h"
-#include "cmm_rrm_interface.h"
-#include "pusu_msg.h"
-#include "rrm_util.h"
-
-#ifdef TRACE
-//! Macro creant la chaine a partir du nom de la variable
-#define STRINGIZER(x) #x
-//! Tableau pour le mode trace faisant la translation entre le numero et le nom du message
-const char *Str_msg_pusu_rrm[NB_MSG_RRM_PUSU] =  {
-  STRINGIZER(RRM_PUBLISH_IND      ) ,
-  STRINGIZER(PUSU_PUBLISH_RESP    ) ,
-  STRINGIZER(RRM_UNPUBLISH_IND    ) ,
-  STRINGIZER(PUSU_UNPUBLISH_RESP  ) ,
-  STRINGIZER(RRM_LINK_INFO_IND    ) ,
-  STRINGIZER(PUSU_LINK_INFO_RESP  ) ,
-  STRINGIZER(RRM_SENSING_INFO_IND ) ,
-  STRINGIZER(PUSU_SENSING_NFO_RESP) ,
-  STRINGIZER(RRM_CH_LOAD_IND      ) ,
-  STRINGIZER(PUSU_CH_LOAD_RESP    )
-};
-#endif
-
-/*!
-*******************************************************************************
-\brief  This function initialize the message header
-\return any return value
-*/
-static void init_pusu_msg_head(
-  msg_head_t     *msg_head , ///< message header to initialize
-  Instance_t      inst     , ///< Instance associated to this message
-  MSG_RRM_PUSU_T  msg_type , ///< type of message to initialize
-  unsigned int    size     , ///< size of message
-  Transaction_t   Trans_id   ///< transaction id associated to this message
-)
-{
-  if ( msg_head != NULL ) {
-    msg_head->start    = START_MSG ;
-    msg_head->msg_type = 0xFF & msg_type ;
-    msg_head->inst     = inst  ;
-    msg_head->Trans_id = Trans_id  ;
-    msg_head->size     = size ;
-  }
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message d'annonce de nouveau service
-        envoyer sur le socket du PUSU.
-\return message formate
-*/
-msg_t *msg_rrm_publish_ind(
-  Instance_t      inst     , ///< Instance associated to this message
-  int             service  , ///< service type
-  Transaction_t   Trans_id   ///< transaction id associated to this message
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    pusu_publish_t *p = RRM_CALLOC(pusu_publish_t , 1 );
-
-    if ( p != NULL ) {
-      init_pusu_msg_head(&msg->head, inst, RRM_PUBLISH_IND, sizeof(pusu_publish_t),Trans_id);
-
-      p->service_type     = service ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message de retrait d'un service
-        envoyer sur le socket du PUSU.
-\return message formate
-*/
-msg_t *msg_rrm_unpublish_ind(
-  Instance_t      inst     , ///< Instance associated to this message
-  int             service  , ///< type de service a retirer
-  Transaction_t   Trans_id   ///< transaction id associated to this message
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    pusu_publish_t *p = RRM_CALLOC(pusu_publish_t , 1 );
-
-    if ( p != NULL ) {
-      init_pusu_msg_head(&msg->head, inst, RRM_UNPUBLISH_IND, sizeof(pusu_unpublish_t),Trans_id);
-
-      p->service_type     = service ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message de mesure a envoyer sur le socket du PUSU.
-\return message formate
-*/
-msg_t *msg_rrm_link_info_ind(
-  Instance_t      inst     , ///< Instance associated to this message
-  L2_ID           noeud1   , ///< L2_ID du noeud 1
-  L2_ID           noeud2   , ///< L2_ID du noeud 2
-  RB_ID           rb_id    , ///< identtification du lien RB
-  unsigned char   rssi     , ///< RSSI du noeud2 mesure  par le noeud1
-  unsigned char   spec_eff , ///< Efficacite spectrale du noeud2 mesure par le noeud1
-  Transaction_t   Trans_id   ///< transaction id associated to this message
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    pusu_link_info_t *p = RRM_CALLOC(pusu_link_info_t , 1 );
-
-    if ( p != NULL ) {
-      init_pusu_msg_head(&msg->head, inst, RRM_LINK_INFO_IND, sizeof(pusu_link_info_t),Trans_id);
-
-      p->rssi             = rssi ;
-      p->spec_eff         = spec_eff ;
-      memcpy( &p->noeud1, &noeud1, sizeof(L2_ID) )  ;
-      memcpy( &p->noeud2, &noeud2, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message de mesure de voisnage a envoyer sur
-        le socket du PUSU.
-
-\return message formate
-*/
-msg_t *msg_rrm_sensing_info_ind(
-  Instance_t      inst     , ///< Instance associated to this message
-  L2_ID           noeud1   , ///< L2_ID du noeud 1
-  L2_ID           noeud2   , ///< L2_ID du noeud 2
-  unsigned char   rssi     , ///< RSSI du noeud2 mesure  par le noeud1
-  Transaction_t   Trans_id   ///< transaction id associated to this message
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    pusu_sensing_info_t *p = RRM_CALLOC(pusu_sensing_info_t , 1 );
-
-    if ( p != NULL ) {
-      init_pusu_msg_head(&msg->head, inst, RRM_SENSING_INFO_IND, sizeof(pusu_sensing_info_t),Trans_id);
-
-      p->rssi             = rssi ;
-      memcpy( &p->noeud1, &noeud1, sizeof(L2_ID) )  ;
-      memcpy( &p->noeud2, &noeud2, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message de charge de cluster a envoyer sur
-        le socket du PUSU.
-\return message formate
-*/
-msg_t *msg_rrm_ch_load_ind(
-  Instance_t      inst     , ///< Instance associated to this message
-  unsigned char   load     , ///< Charge du cluster
-  Transaction_t   Trans_id   ///< transaction id associated to this message
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    pusu_ch_load_t *p = RRM_CALLOC(pusu_ch_load_t , 1 );
-
-    if ( p != NULL ) {
-      init_pusu_msg_head(&msg->head, inst, RRM_CH_LOAD_IND, sizeof(pusu_ch_load_t),Trans_id);
-
-      p->load             = load ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message d'annonce de nouveau service
-        envoyer sur le socket du PUSU.
-\return message formate
-*/
-msg_t *msg_pusu_resp(
-  Instance_t      inst     , ///< Instance associated to this message
-  MSG_RRM_PUSU_T response  , ///< identification de la reponse
-  Transaction_t   Trans_id   ///< transaction id associated to this message
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    // Header only
-    init_pusu_msg_head(&msg->head, inst, response, 0,Trans_id);
-
-    msg->data           = NULL ;
-  }
-
-  return msg ;
-}
-
diff --git a/openair3/MESH/RRM/pusu_msg.h b/openair3/MESH/RRM/pusu_msg.h
deleted file mode 100644
index f852e096cd..0000000000
--- a/openair3/MESH/RRM/pusu_msg.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       pusu_msg.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-            et des fonctions relatives aux messages RRM->PUSU.
-
-            Les fonctions servent à créer le buffer de message, remplir l'entete
-            et copier les parametres de fonction. Chaque fonction retourne le
-            message qui pourra être envoye sur le socket.
-
-\author     BURLOT Pascal
-
-\date       29/08/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-
-#ifndef PUSU_MSG_H
-#define PUSU_MSG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//! Definition de la taille de l'identification niveau 2
-#define IEEE80211_MAC_ADDR_LEN 8
-
-
-/*!
-*******************************************************************************
-\brief  Enumeration des messages entre le RRM et PUSU
-*/
-typedef enum {
-  RRM_PUBLISH_IND = 0     , ///< Annonce de nouveau service
-  PUSU_PUBLISH_RESP       , ///< Reponse de PUSU_PUBLISH_IND
-  RRM_UNPUBLISH_IND       , ///< Annonce de retrait d'un service
-  PUSU_UNPUBLISH_RESP     , ///< Reponse de PUSU_UNPUBLISH_IND
-  RRM_LINK_INFO_IND       , ///< Info sur un lien (oriente)
-  PUSU_LINK_INFO_RESP     , ///< Reponse de PUSU_LINK_INFO_IND
-  RRM_SENSING_INFO_IND    , ///< Info sur un voisin (oriente)
-  PUSU_SENSING_INFO_RESP  , ///< Reponse de RRM_SENSING_INFO_IND
-  RRM_CH_LOAD_IND         , ///< Info sur la charge d'un cluster
-  PUSU_CH_LOAD_RESP       , ///< Reponse de PUSU_CH_LOAD_IND
-  NB_MSG_RRM_PUSU           ///< Nombre de message de l'interface
-}
-MSG_RRM_PUSU_T ;
-
-/*!
-*******************************************************************************
-\brief  Enumeration des services entre le RRM et PUSU
-*/
-typedef enum {
-  PUSU_RRM_SERVICE = 0xAA      ///< service d'un information RRM vers le TRM
-} SERVICE_RRM_PUSU_T ;
-
-/*!
-*******************************************************************************
-\brief  Definition de publish/unpublish
-*/
-typedef struct {
-  int service_type ;  ///< type de service
-} pusu_publish_t ,  pusu_unpublish_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des informations remontees au TRM relatives a un lien
-*/
-typedef struct {
-  L2_ID         noeud1       ;  ///< L2_ID du noeud 1
-  L2_ID         noeud2       ;  ///< L2_ID du noeud 2
-  RB_ID         rb_id        ;  ///< identification du lien
-  unsigned char rssi         ;  ///< metrique RSSI
-  unsigned char spec_eff     ;  ///< metrique Efficacite spectrale
-} pusu_link_info_t;
-
-/*!
-*******************************************************************************
-\brief  Definition des informations remontees au TRM relatives a un voisin
-        sans notion de lien etabli obligatoirement
-*/
-typedef struct {
-  L2_ID         noeud1       ;  ///< L2_ID du noeud 1
-  L2_ID         noeud2       ;  ///< L2_ID du noeud 2
-  unsigned char rssi         ;  ///< metrique RSSI
-} pusu_sensing_info_t;
-
-/*!
-*******************************************************************************
-\brief  Definition de la structure d'information de charge du cluster remontee
-        au TRM
-*/
-typedef struct {
-  unsigned char load         ;  ///< la charge du cluster
-} pusu_ch_load_t;
-
-#ifdef TRACE
-extern const char *Str_msg_pusu_rrm[NB_MSG_RRM_PUSU] ;
-#endif
-
-msg_t *msg_rrm_publish_ind(Instance_t inst, int service, Transaction_t Trans_id  );
-msg_t *msg_rrm_unpublish_ind(Instance_t inst, int service, Transaction_t Trans_id  );
-msg_t *msg_rrm_link_info_ind(Instance_t inst, L2_ID noeud1, L2_ID noeud2, RB_ID rb_id, unsigned char rssi ,unsigned char spec_eff, Transaction_t Trans_id ) ;
-msg_t *msg_rrm_sensing_info_ind(Instance_t inst, L2_ID noeud1, L2_ID noeud2, unsigned char rssi, Transaction_t Trans_id ) ;
-msg_t *msg_rrm_ch_load_ind(Instance_t inst, unsigned char load, Transaction_t Trans_id  );
-msg_t *msg_pusu_resp(Instance_t inst, MSG_RRM_PUSU_T response, Transaction_t Trans_id );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* PUSU_MSG_H */
diff --git a/openair3/MESH/RRM/rb_db.c b/openair3/MESH/RRM/rb_db.c
deleted file mode 100644
index 2eb3505997..0000000000
--- a/openair3/MESH/RRM/rb_db.c
+++ /dev/null
@@ -1,377 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rb_db.c
-
-\brief      Fonctions permettant la gestion de la base de donnée sur les radio-
-            bearers du cluster par le cluster head
-
-\author     BURLOT Pascal
-
-\date       29/08/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "rrm_util.h"
-#include "rb_db.h"
-
-//! Selection locale du mode de debug
-#define DBG_RB_DB 0
-
-#if DBG_RB_DB==0
-//! Macro inactive
-#define PRINT_RB_DB(...)
-#else
-//! Macro affichant  la liste des radio bearers
-#define PRINT_RB_DB(...) print_rb_db( __VA_ARGS__ )
-#endif
-
-/*!
-*******************************************************************************
-\brief  La fonction affiche a l'ecran la liste (pour du debug)
-
-\return  aucune valeur retournee
-*/
-static void print_rb_db(
-  RB_desc_t *pEntry ///< pointeur sur le debut de liste
-)
-{
-  unsigned int i ;
-  RB_desc_t *pCurrentItem = pEntry;
-
-  fprintf(stderr,"RB list=[\n");
-
-  while ( pCurrentItem != NULL) {
-    fprintf(stderr,"  @%p(.Trans_id=%d, .Rb_id=%d, .Rb_type=%d",
-            pCurrentItem, pCurrentItem->Trans_id,
-            pCurrentItem->Rb_id,  pCurrentItem->RB_type);
-
-    fprintf(stderr,", @SRC=");
-
-    for ( i=0; i<8; i++)
-      fprintf(stderr,"%02X", pCurrentItem->L2_id[0].L2_id[i]);
-
-    fprintf(stderr,", @DST=");
-
-    for ( i=0; i<8; i++)
-      fprintf(stderr,"%02X", pCurrentItem->L2_id[1].L2_id[i]);
-
-    fprintf(stderr,", .QoS_class=%d", pCurrentItem->QoS_class );
-
-    /*
-    fprintf(stderr,",\n   .Lchan_desc=%p(",&(pCurrentItem->Lchan_desc));
-        fprintf(stderr,".transport_block_size=%d,",pCurrentItem->Lchan_desc.transport_block_size);
-        fprintf(stderr,".max_transport_blocks=%d,",pCurrentItem->Lchan_desc.max_transport_blocks);
-        fprintf(stderr,".Guaranteed_bit_rate=%ld,",pCurrentItem->Lchan_desc.Guaranteed_bit_rate);
-        fprintf(stderr,".Max_bit_rate=%ld,",pCurrentItem->Lchan_desc.Max_bit_rate);
-        fprintf(stderr,".Delay_class=%d,",pCurrentItem->Lchan_desc.Delay_class);
-        fprintf(stderr,".Target_bler=%d,",pCurrentItem->Lchan_desc.Target_bler);
-        fprintf(stderr,".LCHAN_t=%d),",pCurrentItem->Lchan_desc.LCHAN_t);
-
-    fprintf(stderr,",\n   .Mac_rlc_meas_desc=%p(",&(pCurrentItem->Mac_rlc_meas_desc));
-        fprintf(stderr,".Meas_trigger=%p(",&(pCurrentItem->Mac_rlc_meas_desc.Meas_trigger));
-            fprintf(stderr,".Rssi=%d, ",pCurrentItem->Mac_rlc_meas_desc.Meas_trigger.Rssi);
-            fprintf(stderr,".Sinr=%d, ",pCurrentItem->Mac_rlc_meas_desc.Meas_trigger.Sinr);
-            fprintf(stderr,".Harq_delay=%u, ",pCurrentItem->Mac_rlc_meas_desc.Meas_trigger.Harq_delay);
-            fprintf(stderr,".Bler=%u,",pCurrentItem->Mac_rlc_meas_desc.Meas_trigger.Bler);
-            fprintf(stderr,".Spec_eff=%u), ",pCurrentItem->Mac_rlc_meas_desc.Meas_trigger.Spec_eff);
-        fprintf(stderr,".Mac_avg=%p(",&(pCurrentItem->Mac_rlc_meas_desc.Mac_avg));
-            fprintf(stderr,".Rssi_forgetting_factor=%u, ",pCurrentItem->Mac_rlc_meas_desc.Mac_avg.Rssi_forgetting_factor);
-            fprintf(stderr,".Sinr_forgetting_factor=%u, ",pCurrentItem->Mac_rlc_meas_desc.Mac_avg.Sinr_forgetting_factor);
-            fprintf(stderr,".Harq_delay_forgetting_factor=%u, ",pCurrentItem->Mac_rlc_meas_desc.Mac_avg.Harq_delay_forgetting_factor);
-            fprintf(stderr,".Bler_forgetting_factor=%u, ",pCurrentItem->Mac_rlc_meas_desc.Mac_avg.Bler_forgetting_factor);
-            fprintf(stderr,".Spec_eff_forgetting_factor=%u),\n",pCurrentItem->Mac_rlc_meas_desc.Mac_avg.Spec_eff_forgetting_factor);
-        fprintf(stderr,"   .bo_forgetting_factor=%u,",pCurrentItem->Mac_rlc_meas_desc.bo_forgetting_factor);
-        fprintf(stderr,".sdu_loss_trigger=%u,",pCurrentItem->Mac_rlc_meas_desc.sdu_loss_trigger);
-        fprintf(stderr,".Rep_amount=%u,",pCurrentItem->Mac_rlc_meas_desc.Rep_amount);
-        fprintf(stderr,".Rep_interval=%d,",pCurrentItem->Mac_rlc_meas_desc.Rep_interval);
-    */
-
-    fprintf(stderr,", .next=%p)\n", pCurrentItem->next );
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  fprintf(stderr," ]\n");
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction ajoute un rb dans la liste des RB ouverts du Cluster head.
-
-\return  retourne la valeur du nouvel element
-*/
-RB_desc_t *add_rb(
-  RB_desc_t     **rb_entry  , ///< pointeur sur l'entree de la liste des RB
-  Transaction_t   Trans_id  , ///< transaction associee
-  QOS_CLASS_T     QoS_class , ///< index de la classe de QoS
-  L2_ID          *L2_id       ///< ID de niveau 2  des noeuds associes au RB
-)
-{
-  RB_desc_t *pOldEntry = *rb_entry;
-  RB_desc_t *pNewItem = RRM_CALLOC( RB_desc_t , 1 ) ;
-
-  PNULL(pNewItem) ;
-
-  if ( pNewItem == NULL )
-    return NULL ;
-
-  pNewItem->QoS_class  =  QoS_class   ;
-
-  memcpy( &(pNewItem->L2_id[0]) , L2_id, 2*sizeof(L2_ID) ) ;
-
-  pNewItem->Trans_id  =  Trans_id ;
-  pNewItem->Rb_id     =  0        ;
-  pNewItem->RB_type   =  0;
-
-  *rb_entry           =  pNewItem ;
-  pNewItem->next      =  pOldEntry;
-
-  PRINT_RB_DB( *rb_entry );
-  return pNewItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction retire l'element identifie par le RB_id de la liste des RB
-
-\return  aucune valeur.
-*/
-void del_rb_by_rbid(
-  RB_desc_t **rb_entry , ///< pointeur sur l'entree de la liste des RB
-  RB_ID       Rb_id      ///< ID du RB a detruire
-)
-{
-  RB_desc_t *pCurrentItem = *rb_entry;
-  RB_desc_t *pNextItem    ;
-  RB_desc_t **ppPrevItem  = rb_entry ;
-
-  if ( (pCurrentItem == NULL)  || (rb_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-
-    if ( Rb_id == pCurrentItem->Rb_id ) {
-      *ppPrevItem = pNextItem;
-      RRM_FREE( pCurrentItem ) ;
-      PRINT_RB_DB( *rb_entry );
-      return ;
-    }
-
-    ppPrevItem   = &(pCurrentItem->next) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  if ( pCurrentItem == NULL )
-    fprintf(stderr, "ERROR: RB_id (%d) unknown\n", Rb_id ) ;
-
-  PRINT_RB_DB( *rb_entry );
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction retire l'element identifie par le Trans_id de la liste des RB
-
-\return  aucune valeur.
-*/
-void del_rb_by_transid(
-  RB_desc_t     **rb_entry , ///< pointeur sur l'entree de la liste des RB
-  Transaction_t   Trans_id   ///< transaction identifiant le RB
-)
-{
-  RB_desc_t *pCurrentItem = *rb_entry;
-  RB_desc_t *pNextItem    ;
-  RB_desc_t **ppPrevItem  = rb_entry ;
-
-  if ( (pCurrentItem == NULL)  || (rb_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-
-    if ( Trans_id == pCurrentItem->Trans_id ) {
-      *ppPrevItem = pNextItem;
-      RRM_FREE( pCurrentItem ) ;
-      PRINT_RB_DB( *rb_entry );
-      return ;
-    }
-
-    ppPrevItem   = &(pCurrentItem->next) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  PRINT_RB_DB( *rb_entry );
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction detruit entierement la liste des RB
-
-\return  aucune valeur.
-*/
-void del_all_rb(
-  RB_desc_t **rb_entry ///< pointeur sur l'entree de la liste des RB
-)
-{
-  RB_desc_t *pCurrentItem = *rb_entry;
-  RB_desc_t *pNextItem    ;
-
-  if ( (pCurrentItem == NULL)  || (rb_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-    RRM_FREE( pCurrentItem ) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  *rb_entry = NULL ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction recherche le descripteur de RB identifie par le RB_id
-        la liste des RBs
-
-\return  pointeur sur le descripteur de RB trouve sinon NULL .
-*/
-RB_desc_t *get_rb_desc_by_rbid(
-  RB_desc_t *rb_entry , ///< pointeur sur l'entree de la liste des RB
-  RB_ID      Rb_id      ///< Id du descripteur de RB recherchee
-)
-{
-  RB_desc_t *pCurrentItem = rb_entry;
-
-  while ( pCurrentItem != NULL) {
-    if ( Rb_id == pCurrentItem->Rb_id )
-      break ;
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  return pCurrentItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction recherche le descripteur de RB identifie par le Trans_id
-        la liste des RBs
-
-\return  pointeur sur le descripteur de RB trouve sinon NULL .
-*/
-RB_desc_t *get_rb_desc_by_transid(
-  RB_desc_t    *rb_entry , ///< pointeur sur l'entree de la liste des RB
-  Transaction_t Trans_id   ///< transaction du descripteur de RB recherchee
-)
-{
-  RB_desc_t *pCurrentItem = rb_entry;
-
-  while ( pCurrentItem != NULL) {
-    if ( Trans_id == pCurrentItem->Trans_id )
-      break ;
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  return pCurrentItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction rafraichit  les champs Rb_id, RB_type d'un descripteur
-            de RB identifie par le Trans_id la liste des RBs .
-
-\return  aucune valeur
-*/
-void update_rb_desc(
-  RB_desc_t     *rb_entry , ///< pointeur sur un element de la liste des RB
-  Transaction_t  Trans_id , ///< transaction id
-  RB_ID          Rb_id    , ///< RB id
-  RB_TYPE        RB_type    ///< type de RB
-)
-{
-  RB_desc_t *pItem = get_rb_desc_by_transid(rb_entry,Trans_id);
-
-  if ( pItem != NULL) {
-    pItem->Trans_id= -1 ;
-    pItem->Rb_id   = Rb_id ;
-    pItem->RB_type = RB_type ;
-  }
-
-  PRINT_RB_DB( rb_entry );
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction rafraichit  le champs Rb_meas d'un RB identifie dans la
-        liste des RBs .
-
-\return  aucune valeur
-*/
-void update_rb_meas(
-  RB_desc_t      *rb_entry   , ///< pointeur sur un element de la liste des RB
-  RB_ID           Rb_id      , ///< RB id
-  L2_ID          *L2_id      , ///< ID de niveau 2 d'un des noeuds du RB
-  MAC_RLC_MEAS_T *Rb_meas      ///< mesure RB effectue par le noeud
-)
-{
-  RB_desc_t *pItem = get_rb_desc_by_rbid(rb_entry,Rb_id);
-
-  if ( pItem != NULL) {
-    if ( memcmp(L2_id, &pItem->L2_id[0], sizeof(L2_ID) ) == 0 ) {
-      memcpy( &pItem->Rb_meas[0],Rb_meas, sizeof(MAC_RLC_MEAS_T) ) ;
-    } else if ( memcmp(L2_id, &pItem->L2_id[1], sizeof(L2_ID) ) == 0 ) {
-      memcpy( &pItem->Rb_meas[1],Rb_meas, sizeof(MAC_RLC_MEAS_T) ) ;
-    }
-  }
-
-}
diff --git a/openair3/MESH/RRM/rb_db.h b/openair3/MESH/RRM/rb_db.h
deleted file mode 100644
index b2f3495cb9..0000000000
--- a/openair3/MESH/RRM/rb_db.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rb_db.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-            et des fonctions relatives a la gestion de la base de donnée sur
-            les radio bearers par le cluster head.
-
-\author     BURLOT Pascal
-
-\date       29/08/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#ifndef RB_DB_H
-#define RB_DB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
-*******************************************************************************
-\brief Structure de liste decrivant un radio bearer (RB)
-*/
-typedef struct  RB_desc_s {
-  Transaction_t       Trans_id   ; ///< transaction associe au RB
-  RB_ID               Rb_id      ; ///< ID du RB
-  RB_TYPE             RB_type    ; ///< type de RB
-  QOS_CLASS_T         QoS_class  ; ///< index sur la classe de QoS du RB
-  L2_ID               L2_id[2]   ; ///< ID de niveau 2 des noeuds du RB
-  MAC_RLC_MEAS_T      Rb_meas[2] ; ///< Description de mesures RB associes a chaque noeud
-  struct  RB_desc_s  *next       ; ///< pointeur sur le prochain descripteur de RB
-} RB_desc_t ;
-
-// ---------------------------------------------------------------------------
-
-
-RB_desc_t *add_rb( RB_desc_t **rb_entry,Transaction_t  Trans_id, QOS_CLASS_T QoS_class, L2_ID *L2_id ) ;
-void del_rb_by_rbid( RB_desc_t **rb_entry, RB_ID Rb_id ) ;
-void del_rb_by_transid( RB_desc_t **rb_entry, Transaction_t Trans_id ) ;
-void del_all_rb( RB_desc_t **rb_entry ) ;
-RB_desc_t *get_rb_desc_by_rbid( RB_desc_t *rb_entry, RB_ID Rb_id ) ;
-RB_desc_t *get_rb_desc_by_transid(RB_desc_t *rb_entry, Transaction_t Trans_id ) ;
-void update_rb_desc( RB_desc_t *rb_entry, Transaction_t Trans_id, RB_ID Rb_id, RB_TYPE RB_type );
-void update_rb_meas( RB_desc_t *rb_entry, RB_ID Rb_id, L2_ID*L2_id, MAC_RLC_MEAS_T *Rb_meas );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* RB_DB_H */
diff --git a/openair3/MESH/RRM/rb_mngt.c b/openair3/MESH/RRM/rb_mngt.c
deleted file mode 100644
index f049bc96a7..0000000000
--- a/openair3/MESH/RRM/rb_mngt.c
+++ /dev/null
@@ -1,571 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rb_mngt.c
-
-\brief      Fonctions permettant la gestion des radio bearers du cluster par
-            le cluster head
-
-\author     BURLOT Pascal
-
-\date       29/08/08
-
-
-\par     Historique:
-        P.BURLOT 2009-01-20
-            + separation de la file de message CMM/RRM a envoyer en 2 files
-              distinctes ( file_send_cmm_msg, file_send_rrc_msg)
-        L. IACOBELLI 2010-01-05
-            + inclusions
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "L3_rrc_interface.h"
-#include "cmm_rrm_interface.h"
-#include "rrm_sock.h"
-#include "rrc_rrm_msg.h"
-#include "cmm_msg.h"
-#include "pusu_msg.h"
-#include "msg_mngt.h"
-#include "rb_db.h"
-#include "neighbor_db.h"
-#include "sens_db.h"
-#include "channels_db.h"
-#include "rrm_util.h"
-#include "transact.h"
-#include "rrm_constant.h"
-#include "rrm.h"
-#include "rb_mngt.h"
-
-//! Met un message dans la file des messages a envoyer
-#define PUT_CMM_MSG(m)  put_msg(  &(rrm->file_send_cmm_msg), 0, rrm->cmm.s,m )  //mod_lor_10_01_25
-#define PUT_PUSU_MSG(m) put_msg(  &(rrm->file_send_cmm_msg), 0, rrm->pusu.s,m)  //mod_lor_10_01_25
-#define PUT_RRC_MSG(m)  put_msg(  &(rrm->file_send_rrc_msg), 0, rrm->rrc.s,m )  //mod_lor_10_01_25
-
-/*
- *  =========================================================================
- *  OUVERTURE D'UN RADIO BEARER
- *  =========================================================================
- */
-
-/*!
-*******************************************************************************
- \brief CMM connection setup request.  Only in CH. It asks to create a
- * connection p2p between CH and MR
-*/
-int cmm_cx_setup_req(
-  Instance_t    inst      , //!< Identification de l'instance
-  L2_ID         Src       , //!< L2 source MAC address
-  L2_ID         Dst       , //!< L2 destination MAC address
-  QOS_CLASS_T   QoS_class , //!< QOS class index
-  Transaction_t Trans_id    //!< Transaction ID
-)
-{
-  int ret = -1 ;
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( (rrm->state == CLUSTERHEAD_INIT1 ) || (rrm->state == CLUSTERHEAD ) ) {
-    L2_ID src_dst[2] ;
-    memcpy(&src_dst[0], &Src, sizeof(L2_ID)) ;
-    memcpy(&src_dst[1], &Dst, sizeof(L2_ID)) ;
-
-    pthread_mutex_lock( &( rrm->cmm.exclu ) ) ;
-    //fprintf(stderr,"item_trans in CMM_CX_SETUP_REQ=%d node %d\n",rrm->cmm.trans_cnt,rrm->id);//dbg
-    add_item_transact( &(rrm->cmm.transaction), Trans_id,INT_CMM,CMM_CX_SETUP_REQ, 0,NO_PARENT);
-    pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-
-    /** \todo Evaluer si le RB peut etre cree avant d'envoyer la commande au RRC */
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    rrm->rrc.trans_cnt++ ;
-    //fprintf(stderr,"item_trans in RRM_RB_ESTABLISH_REQ=%d node %d\n",rrm->rrc.trans_cnt,rrm->id);//dbg
-    add_item_transact( &(rrm->rrc.transaction), rrm->rrc.trans_cnt ,INT_RRC,RRM_RB_ESTABLISH_REQ,Trans_id,PARENT);
-    add_rb( &(rrm->rrc.pRbEntry), rrm->rrc.trans_cnt, QoS_class, &src_dst[0] ) ;
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-    PUT_RRC_MSG(
-      msg_rrm_rb_establish_req(inst,
-                               &Lchan_desc[QoS_class],
-                               &Mac_rlc_meas_desc[QoS_class],
-                               &src_dst[0] ,
-                               rrm->rrc.trans_cnt,
-                               NULL,NONE_L3)
-    ) ;
-
-    if(QoS_class == QOS_DTCH_D) { //faire le srb2 seulement a l'attachement (ouverture du DTCH IP par Defaut)
-      pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-      rrm->rrc.trans_cnt++ ;
-      //fprintf(stderr,"item_trans in RRM_RB_ESTABLISH_REQ 2=%d node %d\n",rrm->rrc.trans_cnt,rrm->id);//dbg
-      add_item_transact( &(rrm->rrc.transaction), rrm->rrc.trans_cnt ,INT_RRC,RRM_RB_ESTABLISH_REQ,0,NO_PARENT);
-      add_rb( &(rrm->rrc.pRbEntry), rrm->rrc.trans_cnt, QOS_SRB2, &src_dst[0] ) ;
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-
-      PUT_RRC_MSG(
-        msg_rrm_rb_establish_req(inst,
-                                 &Lchan_desc[QOS_SRB2],
-                                 &Mac_rlc_meas_desc[QOS_SRB2],
-                                 &src_dst[0] ,
-                                 rrm->rrc.trans_cnt,
-                                 rrm->L3_info,rrm->L3_info_t)
-      ) ;
-    }
-
-    ret = 0 ;
-  } else {
-    if ( rrm->state == CLUSTERHEAD_INIT0 ) {
-      L2_ID src_dst[2] ;
-
-      pthread_mutex_lock( &( rrm->cmm.exclu ) ) ;
-      //fprintf(stderr,"item_trans in CMM_CX_SETUP_REQ 2=%d node %d\n",rrm->cmm.trans_cnt,rrm->id);//dbg
-      add_item_transact( &(rrm->cmm.transaction), Trans_id, INT_CMM, CMM_CX_SETUP_REQ,0,NO_PARENT);
-      pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-
-      /** \todo Evaluer si le RB peut etre cree avant de solliciter le RRC */
-      pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-
-      memcpy(&src_dst[0], &Src, sizeof(L2_ID)) ;
-      memcpy(&src_dst[1], &Dst, sizeof(L2_ID)) ;
-
-      rrm->rrc.trans_cnt++ ;
-      PUT_RRC_MSG(
-        msg_rrm_rb_establish_req(inst,
-                                 &Lchan_desc[QOS_DTCH_B],
-                                 &Mac_rlc_meas_desc[QOS_DTCH_B],
-                                 &src_dst[0] ,
-                                 rrm->rrc.trans_cnt,
-                                 rrm->L3_info,rrm->L3_info_t)
-      ) ;
-      //fprintf(stderr,"item_trans in RRM_RB_ESTABLISH_REQ 3=%d node %d\n",rrm->rrc.trans_cnt,rrm->id);//dbg
-      add_item_transact( &(rrm->rrc.transaction), rrm->rrc.trans_cnt ,INT_RRC,RRM_RB_ESTABLISH_REQ,Trans_id,PARENT);
-
-      add_rb( &(rrm->rrc.pRbEntry), rrm->rrc.trans_cnt, QOS_DTCH_B, &src_dst[0] ) ;
-
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-      rrm->state = CLUSTERHEAD_INIT1 ;
-      fprintf(stderr,"[RRM] CLUSTERHEAD_INIT1\n" );
-      ret = 0 ;
-    } else
-      fprintf(stderr,"[RRM] CMM_CX_SETUP_REQ (%d) is not allowed (Only CH):etat=%d\n", Trans_id, rrm->state);
-  }
-
-  return ret ;
-}
-
-/*!
-*******************************************************************************
-\brief RRC response to rb_establish_req.  RRC Acknowledgement of reception of
-       rrc_rb_establishment_req.
-*/
-void rrc_rb_establish_resp(
-  Instance_t    inst     , //!< Identification de l'instance
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( (rrm->state == CLUSTERHEAD)
-       || (rrm->state == CLUSTERHEAD_INIT0)
-       || (rrm->state == CLUSTERHEAD_INIT1)
-     ) {
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    set_ttl_transact(rrm->rrc.transaction, Trans_id, TTL_DEFAULT_VALUE ) ;
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-  } else
-    fprintf(stderr,"[RRM] RRC_RB_ESTABLISH_RESP (%d) is not allowed (Only CH):etat=%d\n",Trans_id,rrm->state);
-}
-/*!
-*******************************************************************************
-\brief Liberation d'un radio bearer
- */
-static void rb_release_req(
-  Instance_t    inst           , ///< Identification de l'instance
-  rrm_t        *rrm            , ///< pointeur sur l'instance du RRM
-  RB_ID         Rb_id          , ///< Id du RB a liberer
-  unsigned int  parentTransact , ///< Transaction parent  ( a l'origne de la requete )
-  unsigned int  status_parent    ///< Status du parent
-)
-{
-  rrm->rrc.trans_cnt++ ;
-  PUT_RRC_MSG( msg_rrm_rb_release_req(inst,Rb_id, rrm->rrc.trans_cnt) );
-  add_item_transact( &(rrm->rrc.transaction), rrm->rrc.trans_cnt, INT_RRC, RRM_RB_RELEASE_REQ, parentTransact,status_parent);
-}
-
-/*!
-*******************************************************************************
-\brief RRC confirmation of rb_establish_req.  RRC confirmation of
-        rrc_rb_establishment_req after transactions are complete.
-        Essentially for CH only (except SRB0/1)
-*/
-void rrc_rb_establish_cfm(
-  Instance_t    inst     , //!< Identification de l'instance
-  RB_ID         Rb_id    , //!< Radio Bearer ID used by RRC
-  RB_TYPE       RB_type  , //!< Radio Bearer Type
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( (rrm->state == CLUSTERHEAD)
-       || (rrm->state == CLUSTERHEAD_INIT0)
-       || (rrm->state == CLUSTERHEAD_INIT1)
-     ) {
-    transact_t *pTransact ;
-
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    pTransact = get_item_transact(rrm->rrc.transaction,Trans_id ) ;
-
-    if ( pTransact == NULL ) {
-      fprintf(stderr,"[RRM] rrc_rb_establish_cfm (%d) unknown transaction\n",Trans_id);
-      // comme la transaction est inconnue, on libere immediatement le
-      // tuyau nouvellement  cree (au niveau du RRC uniquement)
-      rb_release_req( inst, rrm,Rb_id,0,NO_PARENT );
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-    } else {
-      unsigned int parent_id = pTransact->parent_id ;
-      unsigned int status_parent = pTransact->parent_status ;
-
-      update_rb_desc(rrm->rrc.pRbEntry, Trans_id, Rb_id, RB_type );
-      del_item_transact( &(rrm->rrc.transaction),Trans_id ) ;
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-      if ( status_parent ) {
-        transact_t *pTransactParent;
-
-        pthread_mutex_lock( &( rrm->cmm.exclu ) ) ;
-        pTransactParent = get_item_transact(rrm->cmm.transaction,parent_id ) ;
-
-        if ( pTransactParent != NULL ) {
-          PUT_CMM_MSG( msg_rrm_cx_setup_cnf(inst,Rb_id,pTransactParent->id ));
-
-          if ( rrm->state == CLUSTERHEAD_INIT1 )
-            rrm->state = CLUSTERHEAD ;
-
-          del_item_transact( &(rrm->cmm.transaction),pTransactParent->id ) ;
-          pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-        } else {
-          // comme la transaction parent est inconnue, on libere
-          // immediatement le  tuyau nouvellement  cree (au niveau
-          // du RRC uniquement)
-          pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-
-          pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-          rb_release_req( inst, rrm,Rb_id, 0, NO_PARENT );
-          del_rb_by_rbid( &(rrm->rrc.pRbEntry), Rb_id ) ;
-          pthread_mutex_unlock( &( rrm->rrc.exclu ) );
-        }
-      }
-
-      pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-    }
-  } else
-    fprintf(stderr,"[RRM] RRC_RB_ESTABLISH_CFM (%d) is not allowed (Only CH):etat=%d\n",Trans_id,rrm->state);
-}
-
-/*
- *  =========================================================================
- *  MODICATION D'UN RADIO BEARER
- *  =========================================================================
- */
-
-/*!
-*******************************************************************************
-\brief CMM connection modify request.  Only in CH.
-
-*/
-int cmm_cx_modify_req(
-  Instance_t    inst      , //!< Identification de l'instance
-  RB_ID         Rb_id     , //!< L2 Rb_id
-  QOS_CLASS_T   QoS_class , //!< QOS class index
-  Transaction_t Trans_id    //!< Transaction ID
-)
-{
-  int ret = -1 ;
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( rrm->state == CLUSTERHEAD ) {
-    RB_desc_t *pRb ;
-
-    pthread_mutex_lock( &( rrm->cmm.exclu ) ) ;
-    add_item_transact( &(rrm->cmm.transaction), Trans_id,INT_CMM,CMM_CX_MODIFY_REQ,0,NO_PARENT);
-    pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-
-    /** \todo Evaluer si le RB peut etre modifier avant de solliciter le RRC */
-    pRb = (RB_desc_t *) get_rb_desc_by_rbid( rrm->rrc.pRbEntry, Rb_id ) ;
-
-    if ( pRb != NULL ) {
-      pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-      rrm->rrc.trans_cnt++ ;
-
-      PUT_RRC_MSG(
-        msg_rrm_rb_modify_req( inst,
-                               &Lchan_desc[QoS_class],
-                               &Mac_rlc_meas_desc[QoS_class],
-                               Rb_id,
-                               rrm->rrc.trans_cnt)
-      ) ;
-
-      add_item_transact( &(rrm->rrc.transaction), rrm->rrc.trans_cnt ,INT_RRC,RRM_RB_MODIFY_REQ,Trans_id,PARENT);
-      add_rb( &(rrm->rrc.pRbEntry), rrm->rrc.trans_cnt, QoS_class, &pRb->L2_id[0] ) ;
-
-      pRb->QoS_class =  QoS_class ;
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-    }
-
-    ret = 0 ;
-  } else
-    fprintf(stderr,"[RRM] CMM_CX_MODIFY_REQ (%d) is not allowed (Only CH):etat=%d\n",Trans_id,rrm->state);
-
-  return ret ;
-}
-/*!
-*******************************************************************************
-\brief RRC response to rb_modify_req
-*/
-void rrc_rb_modify_resp(
-  Instance_t    inst     , //!< Identification de l'instance
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( (rrm->state == CLUSTERHEAD)
-       || (rrm->state == CLUSTERHEAD_INIT0)
-       || (rrm->state == CLUSTERHEAD_INIT1)
-     ) {
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    set_ttl_transact(rrm->rrc.transaction,Trans_id, TTL_DEFAULT_VALUE) ;
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-  } else
-    fprintf(stderr,"[RRM] RRC_RB_MODIFY_RESP (%d) is not allowed (Only CH):etat=%d\n",Trans_id,rrm->state);
-}
-/*!
-*******************************************************************************
-\brief RRC confirmation of rb_modify_req
-*/
-void rrc_rb_modify_cfm(
-  Instance_t    inst     , //!< Identification de l'instance
-  RB_ID         Rb_id    , //!< Radio Bearer ID used by RRC
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( rrm->state == CLUSTERHEAD ) {
-    transact_t *pTransact ;
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    pTransact = get_item_transact(rrm->rrc.transaction,Trans_id ) ;
-
-    if ( pTransact == NULL ) {
-      fprintf(stderr,"[RRM] rrc_rb_modify_cfm (%d) unknown transaction\n",Trans_id);
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-    } else {
-      unsigned int parent_id = pTransact->parent_id ;
-      unsigned int status_parent = pTransact->parent_status ;
-
-      RB_desc_t * pRb = (RB_desc_t *) get_rb_desc_by_rbid( rrm->rrc.pRbEntry, Rb_id ) ;
-
-      if ( pRb != NULL ) {
-        RB_TYPE RB_type = pRb->RB_type ;
-        // détruit l'ancienne description
-        del_rb_by_rbid( &(rrm->rrc.pRbEntry), Rb_id ) ;
-        // mise à jour de la nouvelle
-        update_rb_desc(rrm->rrc.pRbEntry, Trans_id, Rb_id, RB_type );
-      }
-
-      del_item_transact( &(rrm->rrc.transaction),Trans_id ) ;
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-      pthread_mutex_lock( &( rrm->cmm.exclu ) ) ;
-
-      if ( status_parent ) {
-        transact_t *pTransactParent = get_item_transact(rrm->cmm.transaction,parent_id ) ;
-
-        if ( pTransactParent != NULL ) {
-          PUT_CMM_MSG( msg_rrm_cx_modify_cnf(inst,pTransactParent->id ));
-          del_item_transact( &(rrm->cmm.transaction),pTransactParent->id ) ;
-        } else // la transaction parent est inconnue, on ne fait rien
-          fprintf(stderr, "[RRM] RRC_RB_MODIFY_CFM (%d) : the parent transaction (%d) is unknown\n",Trans_id,parent_id);
-      }
-
-      pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-    }
-  } else
-    fprintf(stderr,"[RRM] RRC_RB_MODIFY_CFM (%d) is not allowed (Only CH):etat=%d\n",Trans_id,rrm->state);
-}
-
-/*
- *  =========================================================================
- *  LIBERATION D'UN RADIO BEARER
- *  =========================================================================
- */
-
-/*!
-*******************************************************************************
-\brief CMM connection release request.  Only in CH.
- */
-int cmm_cx_release_req(
-  Instance_t    inst     , //!< Identification de l'instance
-  RB_ID         Rb_id    , //!< L2 Rb_id
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  int ret = -1 ;
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( rrm->state == CLUSTERHEAD ) {
-    pthread_mutex_lock( &( rrm->cmm.exclu ) ) ;
-    add_item_transact( &(rrm->cmm.transaction), Trans_id,INT_CMM,CMM_CX_RELEASE_REQ,0,NO_PARENT);
-    pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    rb_release_req( inst, rrm,Rb_id,Trans_id, PARENT );
-    del_rb_by_rbid( &(rrm->rrc.pRbEntry), Rb_id ) ;
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-    ret = 0 ;
-  } else
-    fprintf(stderr,"[RRM] CMM_CX_RELEASE_REQ (%d) is not allowed (Only CH):etat=%d\n",Trans_id,rrm->state);
-
-  return ret ;
-}
-
-/*!
-*******************************************************************************
-\brief RRC response to rb_release_req
-*/
-void rrc_rb_release_resp(
-  Instance_t    inst     , //!< Identification de l'instance
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( rrm->state == CLUSTERHEAD ) {
-    transact_t *pTransact ;
-
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    pTransact = get_item_transact(rrm->rrc.transaction,Trans_id ) ;
-
-    if ( pTransact == NULL ) {
-      fprintf(stderr,"[RRM] rrc_rb_release_resp (%d) unknown transaction\n",Trans_id);
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-    } else {
-      unsigned int parent_id = pTransact->parent_id ;
-      unsigned int status_parent = pTransact->parent_status ;
-
-      del_item_transact( &(rrm->rrc.transaction),Trans_id ) ;
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-      pthread_mutex_lock( &( rrm->cmm.exclu ) ) ;
-
-      if ( status_parent ) {
-        transact_t *pTransactParent = get_item_transact(rrm->cmm.transaction,parent_id ) ;
-
-        if ( pTransactParent != NULL ) {
-          PUT_CMM_MSG( msg_rrm_cx_release_cnf(inst,pTransactParent->id ) );
-          del_item_transact( &(rrm->cmm.transaction),pTransactParent->id ) ;
-        } else // la transaction parent est inconnue, on ne fait rien
-          fprintf(stderr,"[RRM] RRC_RB_RELEASE_RESP (%d) : the parent transaction (%d) is unknown\n",Trans_id,parent_id);
-      }
-
-      pthread_mutex_unlock( &( rrm->cmm.exclu ) ) ;
-    }
-  } else
-    fprintf(stderr,"[RRM] RRC_RB_RELEASE_RESP (%d) is not allowed (Only CH):etat=%d\n",Trans_id,rrm->state);
-}
-
-/*
- *  =========================================================================
- *  MESURES SUR UN RADIO BEARER
- *  =========================================================================
- */
-/*!
-*******************************************************************************
-\brief RRC measurement indication
- */
-void rrc_rb_meas_ind(
-  Instance_t     inst         , //!< Identification de l'instance
-  RB_ID          Rb_id        , //!< Radio Bearer ID
-  L2_ID          L2_id        , //!< Layer 2 (MAC) IDs for link
-  MEAS_MODE      Meas_mode    , //!< Measurement mode (periodic or event-driven)
-  MAC_RLC_MEAS_T Mac_rlc_meas , //!< MAC/RLC measurements
-  Transaction_t  Trans_id       //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ( rrm->state == CLUSTERHEAD ) {
-    PUT_RRC_MSG( msg_rrm_rb_meas_resp(inst,Trans_id) );
-
-    if ( Meas_mode == PERIODIC ) {
-      RB_desc_t *pRb ;
-      int ii_rb = 1 ;
-      int transaction_link_info ;
-
-      // update database of RB
-      pthread_mutex_lock(   &( rrm->rrc.exclu )  ) ;
-      update_rb_meas( rrm->rrc.pRbEntry, Rb_id, &L2_id, &Mac_rlc_meas );
-      pthread_mutex_unlock( &( rrm->rrc.exclu )  ) ;
-
-      pthread_mutex_lock( &( rrm->pusu.exclu ) ) ;
-      rrm->pusu.trans_cnt++ ;
-      transaction_link_info = rrm->pusu.trans_cnt ;
-      add_item_transact( &(rrm->pusu.transaction), transaction_link_info,INT_PUSU,RRM_LINK_INFO_IND,0,NO_PARENT);
-      pthread_mutex_unlock( &( rrm->pusu.exclu ) ) ;
-
-      pRb = get_rb_desc_by_rbid( rrm->rrc.pRbEntry, Rb_id ) ;
-
-      if ( memcmp(&L2_id, &pRb->L2_id[1], sizeof(L2_ID ) )  == 0 )
-        ii_rb=0 ;
-
-      PUT_PUSU_MSG(
-        msg_rrm_link_info_ind(inst, L2_id , pRb->L2_id[ii_rb] , Rb_id,
-                              Mac_rlc_meas.Rssi ,Mac_rlc_meas.Spec_eff, transaction_link_info )
-      );
-    }
-  } else
-    fprintf(stderr,"[RRM] RRC_RB_MEAS_IND (%d) is not allowed (Only CH):etat=%d\n",Trans_id,rrm->state);
-}
diff --git a/openair3/MESH/RRM/rb_mngt.h b/openair3/MESH/RRM/rb_mngt.h
deleted file mode 100644
index dafe810975..0000000000
--- a/openair3/MESH/RRM/rb_mngt.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file     rb_mngt.h
-
-\brief    Fichier d'entete contenant les declarations des types, des defines ,
-      et des fonctions relatives a la gestion des radio bearers par
-      le cluster head.
-
-\author   BURLOT Pascal
-
-\date     29/08/08
-
-
-\par     Historique:
-      $Author$  $Date$  $Revision$
-      $Id$
-      $Log$
-
-*******************************************************************************
-*/
-
-#ifndef RB_MNGT_H
-#define RB_MNGT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// ---------------------------------------------------------------------------
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* RB_MNGT_H */
diff --git a/openair3/MESH/RRM/rrc_2_rrm_msg.c b/openair3/MESH/RRM/rrc_2_rrm_msg.c
deleted file mode 100644
index b6294d1727..0000000000
--- a/openair3/MESH/RRM/rrc_2_rrm_msg.c
+++ /dev/null
@@ -1,724 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrc_2_rrm_msg.c
-
-\brief      Fonctions permettant le formattage des donnees pour l'envoi d'un
-            message sur le socket entre le  RRC et le RRM
-
-\author     BURLOT Pascal
-
-\date       16/07/08
-
-
-\par     Historique:
-        P.BURLOT 2009-01-20
-            Correction de bug (debordement memoire) remplacement de la macro
-            RRM_CALLOC() par RRM_CALLOC2() dans la fonction msg_rrc_sensing_meas_ind()
-        L. IACOBELLI 2010-01-05
-            + new messages for sensing
-
-*******************************************************************************
-*/
-#ifdef RRC_EMUL
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include "L3_rrc_defs.h"
-#include "rrm_sock.h"
-#include "L3_rrc_interface.h"
-#include "rrc_rrm_msg.h"
-#include "rrm_util.h"
-//#include "sensing_rrm_msg.h" //mod_lor_10_04_15
-
-#else
-
-#include "defs.h"
-
-#endif
-
-#ifdef TRACE
-//! Macro creant la chaine a partir du nom de la variable
-#define STRINGIZER(x) #x
-//! Tableau pour le mode trace faisant la translation entre le numero et le nom du message
-const char *Str_msg_rrc_rrm[NB_MSG_RRC_RRM] = {
-  STRINGIZER(RRM_RB_ESTABLISH_REQ     ),
-  STRINGIZER(RRC_RB_ESTABLISH_RESP    ),
-  STRINGIZER(RRC_RB_ESTABLISH_CFM     ),
-  STRINGIZER(RRM_RB_MODIFY_REQ        ),
-  STRINGIZER(RRC_RB_MODIFY_RESP       ),
-  STRINGIZER(RRC_RB_MODIFY_CFM        ),
-  STRINGIZER(RRM_RB_RELEASE_REQ       ),
-  STRINGIZER(RRC_RB_RELEASE_RESP      ),
-  STRINGIZER(RRC_MR_ATTACH_IND        ),
-  STRINGIZER(RRM_SENSING_MEAS_REQ     ),
-  STRINGIZER(RRC_SENSING_MEAS_RESP    ),
-  STRINGIZER(RRC_CX_ESTABLISH_IND     ),
-  STRINGIZER(RRC_PHY_SYNCH_TO_MR_IND  ),
-  STRINGIZER(RRC_PHY_SYNCH_TO_CH_IND  ),
-  STRINGIZER(RRCI_CX_ESTABLISH_RESP   ),
-  STRINGIZER(RRC_SENSING_MEAS_IND     ),
-  STRINGIZER(RRM_SENSING_MEAS_RESP    ),
-  STRINGIZER(RRC_RB_MEAS_IND          ),
-  STRINGIZER(RRM_RB_MEAS_RESP         ),
-  STRINGIZER(RRM_INIT_CH_REQ          ),
-  STRINGIZER(RRCI_INIT_MR_REQ         ),
-  STRINGIZER(RRC_UPDATE_SENS          ),
-  STRINGIZER(RRM_INIT_MON_REQ         ),
-  STRINGIZER(RRM_INIT_SCAN_REQ        ),
-  STRINGIZER(RRC_INIT_SCAN_REQ        ),
-  STRINGIZER(RRM_SCAN_ORD             ),
-  // STRINGIZER(UPDATE_SENS_RESULTS_3    ), //mod_lor_10_01_25
-  STRINGIZER(RRM_END_SCAN_REQ         ),
-  STRINGIZER(RRC_END_SCAN_REQ         ),
-  STRINGIZER(RRC_END_SCAN_CONF        ),
-  // STRINGIZER(OPEN_FREQ_QUERY_4        ),
-  // STRINGIZER(UPDATE_OPEN_FREQ_7       ),
-  // STRINGIZER(UPDATE_SN_OCC_FREQ_5     ),
-  STRINGIZER(RRM_UP_FREQ_ASS          ),
-  STRINGIZER(RRM_END_SCAN_CONF        ),
-  STRINGIZER(RRC_UP_FREQ_ASS          ),//add_lor_10_11_05
-  STRINGIZER(RRM_UP_FREQ_ASS_SEC      ),//add_lor_10_11_05
-  STRINGIZER(RRC_UP_FREQ_ASS_SEC      )/*,//add_lor_10_11_05
-    STRINGIZER(RRC_OPEN_FREQ            ),
-    STRINGIZER(RRM_OPEN_FREQ            ),
-    STRINGIZER(RRM_UPDATE_SN_FREQ       ),
-    STRINGIZER(RRC_UPDATE_SN_FREQ       ),
-    STRINGIZER(RRM_CLUST_SCAN_REQ       ),
-    STRINGIZER(RRC_CLUST_SCAN_REQ       ),
-    STRINGIZER(RRM_CLUST_SCAN_CONF      ),
-    STRINGIZER(RRM_CLUST_MON_REQ        ),
-    STRINGIZER(RRC_CLUST_MON_REQ        ),
-    STRINGIZER(RRM_CLUST_MON_CONF       ),
-    STRINGIZER(RRM_END_SCAN_CONF        ),
-    STRINGIZER(RRM_INIT_CONN_REQ        ),
-    STRINGIZER(RRC_INIT_CONN_CONF       ),
-    STRINGIZER(RRM_FREQ_ALL_PROP        ),
-    STRINGIZER(RRC_FREQ_ALL_PROP_CONF   ),
-    STRINGIZER(RRM_REP_FREQ_ALL         ),
-    STRINGIZER(RRC_REP_FREQ_ACK         ),
-    STRINGIZER(RRC_INIT_CONN_REQ        ),
-    STRINGIZER(RRM_CONN_SET             ),
-    STRINGIZER(RRC_FREQ_ALL_PROP        ),
-    STRINGIZER(RRM_FREQ_ALL_PROP_CONF   ),
-    STRINGIZER(RRC_REP_FREQ_ALL         ),
-    STRINGIZER(RRM_REP_FREQ_ACK         ) */
-
-} ;
-#endif
-
-/*!
-*******************************************************************************
-\brief  This function initialize the message header
-\return any return value
-*/
-static void init_rrc_msg_head(
-  msg_head_t    *msg_head , //!< message header to initialize
-  Instance_t     inst     , //!< Instance ID
-  MSG_RRC_RRM_T  msg_type , //!< type of message to initialize
-  unsigned int   size     , //!< size of message
-  Transaction_t  Trans_id   //!< transaction id associated to this message
-)
-{
-  if ( msg_head != NULL ) {
-    msg_head->start    = START_MSG ;
-    msg_head->msg_type = 0xFF & msg_type ;
-    msg_head->inst     = inst  ;
-    msg_head->Trans_id = Trans_id  ;
-    msg_head->size     = size;
-  }
-}
-
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message generique de reponse pour les
-          fonctions :
-            - rrc_rb_establish_resp(),rrc_rb_modify_resp(),rrc_rb_modify_resp(),
-            - rrc_rb_release_resp() et rrc_sensing_meas_resp() .
-\return message formate
-*/
-static msg_t *msg_rrc_generic_resp(
-  Instance_t    inst     , //!< Instance ID
-  MSG_RRC_RRM_T msg_type , //!< type of message
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    init_rrc_msg_head(&(msg->head),inst, msg_type, 0 , Trans_id);
-    msg->data = NULL ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_rb_establish_resp().
-\return message formate
-*/
-msg_t *msg_rrc_rb_establish_resp(
-  Instance_t    inst     , //!< Instance ID
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  return msg_rrc_generic_resp( inst, RRC_RB_ESTABLISH_RESP, Trans_id) ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_rb_establish_cfm().
-\return message formate
-*/
-msg_t *msg_rrc_rb_establish_cfm(
-  Instance_t    inst     , //!< Instance ID
-  RB_ID         Rb_id    , //!< Radio Bearer ID used by RRC
-  RB_TYPE       RB_type  , //!< Radio Bearer Type
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrc_rb_establish_cfm_t *p = RRM_CALLOC(rrc_rb_establish_cfm_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRC_RB_ESTABLISH_CFM, sizeof( rrc_rb_establish_cfm_t ) ,Trans_id);
-
-
-      p->Rb_id        = Rb_id ;
-      p->RB_type      = RB_type ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_rb_modify_resp().
-\return message formate
-*/
-msg_t *msg_rrc_rb_modify_resp(
-  Instance_t    inst     , //!< Instance ID
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  return msg_rrc_generic_resp( inst,RRC_RB_MODIFY_RESP, Trans_id) ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_rb_modify_cfm().
-\return message formate
-*/
-msg_t *msg_rrc_rb_modify_cfm(
-  Instance_t    inst     , //!< Instance ID
-  RB_ID         Rb_id    , //!< Radio Bearer ID used by RRC
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrc_rb_modify_cfm_t *p = RRM_CALLOC(rrc_rb_modify_cfm_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRC_RB_MODIFY_CFM, sizeof( rrc_rb_modify_cfm_t ) ,Trans_id);
-
-
-      p->Rb_id        = Rb_id ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-          rrc_rb_release_resp().
-\return message formate
-*/
-msg_t *msg_rrc_rb_release_resp(
-  Instance_t    inst     , //!< Instance ID
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  return msg_rrc_generic_resp( inst,RRC_RB_RELEASE_RESP, Trans_id) ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_MR_attach_ind().
-\return message formate
-*/
-msg_t * msg_rrc_MR_attach_ind(
-  Instance_t    inst     , //!< Instance ID
-  L2_ID         L2_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrc_MR_attach_ind_t *p = RRM_CALLOC(rrc_MR_attach_ind_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRC_MR_ATTACH_IND, sizeof( rrc_MR_attach_ind_t ) ,0);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_sensing_meas_resp().
-\return message formate
-*/
-msg_t *msg_rrc_sensing_meas_resp(
-  Instance_t    inst     , //!< Instance ID
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  return msg_rrc_generic_resp( inst,RRC_SENSING_MEAS_RESP, Trans_id) ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_cx_establish_ind().
-\return message formate
-*/
-msg_t * msg_rrc_cx_establish_ind(
-  Instance_t     inst      , //!< Instance ID
-  L2_ID          L2_id     , //!< Layer 2 (MAC) ID
-  Transaction_t  Trans_id  , //!< Transaction ID
-  unsigned char *L3_info   , //!< Optional L3 Information
-  L3_INFO_T      L3_info_t , //!< Type of L3 Information
-  RB_ID          DTCH_B_id , //!< RBID of broadcast IP service (MR only)
-  RB_ID          DTCH_id     //!< RBID of default IP service (MR only)
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrc_cx_establish_ind_t *p = RRM_CALLOC(rrc_cx_establish_ind_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRC_CX_ESTABLISH_IND, sizeof( rrc_cx_establish_ind_t ) ,Trans_id);
-
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-      p->DTCH_B_id    = DTCH_B_id ;
-      p->DTCH_id      = DTCH_id   ;
-
-      p->L3_info_t    = L3_info_t ;
-
-      if ( L3_info_t == IPv4_ADDR )
-        memcpy( p->L3_info, L3_info, 4 );
-      else if ( L3_info_t == IPv6_ADDR )
-        memcpy( p->L3_info, L3_info, 16 );
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_phy_synch_to_MR_ind().
-\return message formate
-*/
-msg_t * msg_rrc_phy_synch_to_MR_ind(
-  Instance_t     inst  , //!< Instance ID
-  L2_ID          L2_id
-)
-{
-
-  msg_t *smsg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( smsg != NULL ) {
-    rrc_phy_synch_to_MR_ind_t *p = RRM_CALLOC(rrc_phy_synch_to_MR_ind_t , 1) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(smsg->head),inst,RRC_PHY_SYNCH_TO_MR_IND, sizeof( rrc_phy_synch_to_MR_ind_t ) ,0);
-      memcpy(&p->L2_id,(L2_ID*)&L2_id,sizeof(L2_ID));
-    }
-
-    smsg->data = (char *)p ;
-    msg("[msg_rrc_phy_synch_to_MR_ind] from Inst :%d\n",smsg->head.inst);
-  }
-
-  return smsg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-          rrc_phy_synch_to_CH_ind().
-\return message formate
-*/
-msg_t * msg_rrc_phy_synch_to_CH_ind(
-  Instance_t   inst      , //!< Instance ID
-  unsigned int Ch_index  , //!< Clusterhead index
-  L2_ID        L2_id
-)
-{
-  msg_t *smsg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( smsg != NULL ) {
-    rrc_phy_synch_to_CH_ind_t *p = RRM_CALLOC(rrc_phy_synch_to_CH_ind_t , 1) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(smsg->head),inst, RRC_PHY_SYNCH_TO_CH_IND, sizeof( rrc_phy_synch_to_CH_ind_t ) ,0);
-
-      p->Ch_index     = Ch_index  ;
-      memcpy(&p->L2_id,(L2_ID*)&L2_id,sizeof(L2_ID));
-    }
-
-    smsg->data = (char *) p ;
-    msg("[msg_rrc_phy_synch_to_CH_ind] from Inst :%d\n",smsg->head.inst);
-  }
-
-  return smsg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-          rrc_sensing_meas_ind().
-\return message formate
-*/
-msg_t * msg_rrc_sensing_meas_ind(
-  Instance_t      inst         , //!< Instance ID
-  L2_ID           L2_id        , //!< Layer 2 ID (MAC) of sensing node
-  unsigned int    NB_meas      , //!< Layer 2 ID (MAC) of sensing node
-  SENSING_MEAS_T *Sensing_meas , //!< Sensing Information
-  Transaction_t   Trans_id       //!< Transaction ID
-)
-{
-
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof( rrc_sensing_meas_ind_t ) + (NB_meas-1) * sizeof(SENSING_MEAS_T) ;
-    // Note : (NB_meas-1) car la première est incorporé dans  rrc_sensing_meas_ind_t
-    rrc_sensing_meas_ind_t *p   = RRM_CALLOC2(rrc_sensing_meas_ind_t,size ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst, RRC_SENSING_MEAS_IND, size ,Trans_id);
-
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-      if ( NB_meas > 0 ) {
-        memcpy( p->Sensing_meas , Sensing_meas, NB_meas * sizeof(SENSING_MEAS_T) )  ;
-      }
-
-      p->NB_meas      = NB_meas   ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_rb_meas_ind().
-\return message formate
-*/
-msg_t * msg_rrc_rb_meas_ind(
-  Instance_t      inst         , //!< Instance ID
-  RB_ID           Rb_id        , //!< Radio Bearer ID
-  L2_ID           L2_id        , //!< Layer 2 (MAC) IDs for link
-  MEAS_MODE       Meas_mode    , //!< Measurement mode (periodic or event-driven)
-  MAC_RLC_MEAS_T *Mac_rlc_meas , //!< MAC/RLC measurements
-  Transaction_t   Trans_id       //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrc_rb_meas_ind_t *p = RRM_CALLOC(rrc_rb_meas_ind_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst, RRC_RB_MEAS_IND, sizeof( rrc_rb_meas_ind_t ) ,Trans_id);
-
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      memcpy( &(p->Mac_rlc_meas), Mac_rlc_meas, sizeof(L2_ID) )  ;
-
-      p->Rb_id        = Rb_id     ;
-      p->Meas_mode    = Meas_mode ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-
-}
-
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_update_sens().
-\return message formate
-*/
-
-msg_t *msg_rrc_update_sens(
-  Instance_t inst,
-  //double info_time            , //!< Date of the message
-  L2_ID L2_id,
-  unsigned int NB_info,
-  Sens_ch_t *Sens_meas,
-  Transaction_t Trans_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof( rrc_update_sens_t );// + (NB_info-1) * sizeof(Sens_ch_t) ;//mod_lor_10_04_23
-
-    rrc_update_sens_t *p = RRM_CALLOC2(rrc_update_sens_t , size ) ;
-
-    if ( p != NULL ) {
-      //fprintf(stdout,"msg_rrc_update_sens() time : %d\n", NB_info); //dbg
-      init_rrc_msg_head(&(msg->head),inst, RRC_UPDATE_SENS, size ,Trans_id);
-      //fprintf(stdout,"msg_rrc_update_sens() time : %f\n", info_time); //dbg
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-      p->NB_info       = NB_info    ;
-
-      if ( NB_info > 0 ) {
-        memcpy( p->Sens_meas , Sens_meas, NB_info * sizeof(Sens_ch_t) )  ;
-      }
-
-
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_init_scan_req().
-\return message formate
-*/
-
-msg_t *msg_rrc_init_scan_req(
-  Instance_t        inst            , //!< instance ID
-  L2_ID             L2_id           ,
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq,
-  Transaction_t     Trans_id          //!< Transaction ID
-
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrc_init_scan_req_t *p = RRM_CALLOC(rrc_init_scan_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRC_INIT_SCAN_REQ, sizeof( rrc_init_scan_req_t ) ,Trans_id);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      //mod_lor_10_03_12++
-      p->Start_fr     = Start_fr;
-      p->Stop_fr      = Stop_fr;
-      p->Meas_band    = Meas_band;
-      p->Meas_tpf     = Meas_tpf;
-      p->Nb_channels  = Nb_channels;
-      p->Overlap      = Overlap;
-      p->Sampl_freq   = Sampl_freq;
-      //mod_lor_10_03_12--
-
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_end_scan_conf().
-\return message formate
-*/
-
-msg_t *msg_rrc_end_scan_conf(
-  Instance_t        inst            , //!< instance ID
-  L2_ID             L2_id           ,
-  Transaction_t     Trans_id          //!< Transaction ID
-
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrc_end_scan_conf_t *p = RRM_CALLOC(rrc_end_scan_conf_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRC_END_SCAN_CONF, sizeof( rrc_end_scan_conf_t ) ,Trans_id);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_end_scan_req().
-\return message formate
-*/
-msg_t *msg_rrc_end_scan_req(
-  Instance_t    inst,
-  L2_ID         L2_id           ,
-  Transaction_t Trans_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  //fprintf(stdout,"msg_rrc_end_scan_req\n"); //dbg
-  if ( msg != NULL ) {
-    rrc_end_scan_req_t *p = RRM_CALLOC(rrc_end_scan_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRC_END_SCAN_REQ, sizeof( rrc_end_scan_req_t ) ,Trans_id);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrc_init_mon_req().
-\return message formate
-*/
-
-msg_t *msg_rrc_init_mon_req(
-  Instance_t        inst            , //!< instance ID
-  L2_ID             L2_id           ,
-  unsigned int      *ch_to_scan     ,
-  unsigned int      NB_chan         ,
-  unsigned int      interval        ,
-  Transaction_t     Trans_id          //!< Transaction ID
-
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof( rrc_init_mon_req_t ) + (NB_chan-1) * sizeof(unsigned int) ;
-
-    rrc_init_mon_req_t *p = RRM_CALLOC2(rrc_init_mon_req_t , size ) ;
-
-    if ( p != NULL ) {
-      //for (int i=0; i<NB_chan; i++)
-      //  fprintf(stdout,"msg_rrm_init_mon_req(), chan: %d\n", ch_to_scan[i]); //dbg
-      init_rrc_msg_head(&(msg->head),inst,RRC_INIT_MON_REQ, size ,Trans_id);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      p->NB_chan = NB_chan;
-      p->interval = interval;
-
-      if ( NB_chan != 0 )
-        memcpy( p->ch_to_scan, ch_to_scan, NB_chan*sizeof(unsigned int) );
-
-      // for (int i=0; i<NB_chan; i++)
-      //   fprintf(stdout,"msg_rrm_init_mon_req(), after memcpy: %d\n", ch_to_scan[i]); //dbg
-
-      //fprintf(stderr,"pointer ch_to_scan  @%p \n", p->ch_to_scan);//dbg
-      //for (int i=0; i<NB_chan;i++)//dbg
-      //    fprintf(stderr,"channel %d to scan \n", p->ch_to_scan[i]);//dbg
-
-
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
diff --git a/openair3/MESH/RRM/rrc_rrm_msg.h b/openair3/MESH/RRM/rrc_rrm_msg.h
deleted file mode 100644
index ad46fc4819..0000000000
--- a/openair3/MESH/RRM/rrc_rrm_msg.h
+++ /dev/null
@@ -1,508 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrc_msg.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-            et des fonctions relatives aux messages RRC-RRM ou RRC-RRCI.
-
-            Les fonctions servent à créer le buffer de message, remplir
-            l'entete et copier les parametres de fonction. Chaque fonction
-            retourne le message qui pourra être envoye sur le socket entre le
-            CMM et le RRM ou RRCI.
-
-\author     BURLOT Pascal
-
-\date       17/07/08
-
-\par     Historique:
-        L.IACOBELLI 2009-10-19
-            + sensing messages
-
-*******************************************************************************
-*/
-#ifndef __RRC_RRM_MSG_H
-#define __RRC_RRM_MSG_H
-
-#include "L3_rrc_defs.h"
-#include "COMMON/mac_rrc_primitives.h"
-
-#ifdef OPENAIR2_IN
-#include "rrm_sock.h"
-#else
-#include "RRC/MESH/rrc_rrm_interface.h"
-#endif
-//#include "../../../openair2/RRC/MESH/rrc_rrm_interface.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
-*******************************************************************************
-\brief  Enumeration des messages entre RRM/RRCI et le RRC
-*/
-typedef enum {
-  RRM_RB_ESTABLISH_REQ = 0    , ///< Message RRM->RRC : requete d'etablissement d'un RB
-  RRC_RB_ESTABLISH_RESP       , ///< Message RRC->RRM : reponse d'etablissement d'un RB
-  RRC_RB_ESTABLISH_CFM        , ///< Message RRC->RRM : confirmation d'etablissement d'un RB
-  RRM_RB_MODIFY_REQ           , ///< Message RRM->RRC : requete de modification d'un RB
-  RRC_RB_MODIFY_RESP          , ///< Message RRC->RRM : reponse de modification d'un RB
-  RRC_RB_MODIFY_CFM           , ///< Message RRC->RRM : confirmation de modification d'un RB
-  RRM_RB_RELEASE_REQ          , ///< Message RRM->RRC : requete de liberation d'un RB
-  RRC_RB_RELEASE_RESP         , ///< Message RRC->RRM : reponse de liberation d'un RB
-  RRC_MR_ATTACH_IND           , ///< Message RRC->RRM : indication d'attachement d'un MR
-  RRM_SENSING_MEAS_REQ        , ///< Message RRM->RRC : requete de configuration de mesure sensing
-  RRC_SENSING_MEAS_RESP       , ///< 10Message RRC->RRM : reponse de configuration de mesure sensing
-  RRC_CX_ESTABLISH_IND        , ///< Message RRC->RRM : indication de connexion etablie
-  RRC_PHY_SYNCH_TO_MR_IND     , ///< Message RRC->RRM : indication de synchronisation physique a un MR
-  RRC_PHY_SYNCH_TO_CH_IND     , ///< Message RRC->RRM : indication de synchronisation physique a un CH
-  RRCI_CX_ESTABLISH_RESP      , ///< Message RRCI->RRC : reponse de connexion etablie
-  RRC_SENSING_MEAS_IND        , ///< Message RRC->RRM : indication de nouvel mesure de sensing
-  RRM_SENSING_MEAS_RESP       , ///< Message RRM->RRC : reponse a l'indication de nouvel mesure de sensing
-  RRC_RB_MEAS_IND             , ///< Message RRC->RRM : indication de nouvel mesure sur un RB
-  RRM_RB_MEAS_RESP            , ///< Message RRM->RRC : reponse a l'indication de nouvel mesure sur un RB
-  RRM_INIT_CH_REQ             , ///< Message RRM->RRC : init d'un CH
-  RRCI_INIT_MR_REQ            , ///< 20Message RRM->RRC : init d'un MR
-  RRM_INIT_MON_REQ            , ///< Message RRM->RRC : initiation of a scanning monitoring
-  RRM_INIT_SCAN_REQ           , ///< Message RRM->RRC : initiation of a scanning process
-  RRC_INIT_SCAN_REQ           , ///< Message RRC->RRM : initiation of a scanning process
-  //UPDATE_SENS_RESULTS_3       , ///< Message IP       : update to send to CH/FC //mod_lor_10_01_25
-  RRM_END_SCAN_REQ            , ///< Message RRM->RRC : end of a scanning process
-  RRC_END_SCAN_REQ            , ///< Message RRC->RRM : end of a scanning process
-  RRC_END_SCAN_CONF           , ///< Message RRC->RRM : end of a scanning process ack
-  RRC_INIT_MON_REQ            , ///< Message RRM->RRC : initiation of a scanning monitoring
-  //OPEN_FREQ_QUERY_4           , ///< Message IP   : BTS to ask free frequencies to FC
-  //UPDATE_OPEN_FREQ_7          , ///< 30Message IP       : list of frequencies usable by the secondary network
-  //UPDATE_SN_OCC_FREQ_5        , ///< Message IP       : BTS sends used freq. to FC
-  RRM_UP_FREQ_ASS             , ///< Message RRM->RRC : BTS assigns channels to SUs (scen1)
-  RRM_END_SCAN_CONF           , ///< Message RRM->RRC : end of a scanning process
-  RRC_UP_FREQ_ASS             , ///< Message RRC->RRM ://mod_lor_10_06_04
-  RRM_UP_FREQ_ASS_SEC         , ///< Message RRM->RRC : CH assigns channels to SUs (scen2) //add_lor_10_11_05
-  RRC_UP_FREQ_ASS_SEC         , ///< Message RRC->RRM : frequencies assigned by CH (scen2)  //add_lor_10_11_05
-  /*RRC_ASK_FOR_FREQ            , ///< Message RRC->RRM : in FC/CH to report a frequency query
-  RRM_OPEN_FREQ               , ///< Message RRM->RRC : FC communicates open frequencies
-  RRM_UPDATE_SN_FREQ          , ///< Message RRM->RRC : BTS sends used freq. to FC
-  RRC_UPDATE_SN_FREQ          , ///< Message RRC->RRM : FC receives used freq. from BTS
-  RRM_CLUST_SCAN_REQ          , ///< Message RRM->RRC : CH1 contacts CH2 to collaborate for the sensing process
-  RRC_CLUST_SCAN_REQ          , ///< Message RRC->RRM : CH2 receive request to collaborate for the sensing process from CH1
-  RRM_CLUST_SCAN_CONF         , ///< Message RRM->RRC : CH2 confirmrs the beginning of a collaboration process
-  RRM_CLUST_MON_REQ           , ///< Message RRM->RRC : CH1 contacts CH2 to collaborate for the monitoring process
-  RRC_CLUST_MON_REQ           , ///< Message RRC->RRM : CH2 receive request to collaborate for the monitoring process from CH1
-  RRM_CLUST_MON_CONF          , ///< Message RRM->RRC : CH2 confirmrs the beginning of a monitoring process
-  RRM_END_SCAN_CONF           , ///< Message RRM->RRC : CH2 confirmrs the end of the collaborative sensing process at CH1
-  RRM_INIT_CONN_REQ           , ///< Message RRM->RRC : SU 1 requests a connection to SU 2
-  RRC_INIT_CONN_CONF          , ///< Message RRM->RRC : Confirm from SU2 about the requested connection
-  RRM_FREQ_ALL_PROP           , ///< Message RRM->RRC : SU1 sends a proposition of teh frequencies to use
-  RRC_FREQ_ALL_PROP_CONF      , ///< Message RRC->RRM : SU1 receives a confirm on the usable channels
-  RRM_REP_FREQ_ALL            , ///< Message RRM->RRC : SU1 reports to CH the possible channels
-  RRC_REP_FREQ_ACK            , ///< Message RRC->RRM : CH informs all SUs about a channel allocated to 2 SUs
-  RRC_INIT_CONN_REQ           , ///< Message RRC->RRM : Request from SU1 to establish a connection
-  RRM_CONN_SET                , ///< Message RRC->RRM : Response to SU1 and connection settings communicated to rcc
-  RRC_FREQ_ALL_PROP           , ///< Message RRC->RRM : SU1 proposition of frequencies to use
-  RRM_FREQ_ALL_PROP_CONF      , ///< Message RRC->RRM : SU2 choise of frequencies to use
-  RRC_REP_FREQ_ALL            , ///< Message RRM->RRC : SU1 reports to CH the possible channels
-  RRM_REP_FREQ_ACK            , ///< Message RRC->RRM : CH informs all SUs about a channel allocated to 2 SUs
-  */NB_MSG_RRC_RRM                ///< Nombre de message RRM-RRC
-
-}
-MSG_RRC_RRM_T ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_init_ch_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-
-typedef struct   {
-  LCHAN_DESC          Lchan_desc_srb0      ; //!< Logical Channel Descriptor Array
-  LCHAN_DESC          Lchan_desc_srb1      ; //!< Logical Channel Descriptor Array
-  L2_ID               L2_id                ; //!< Layer 2 (MAC) IDs for link
-} rrm_init_ch_req_t ;
-
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_init_mr_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct   {
-  LCHAN_DESC          Lchan_desc_srb0      ; //!< Logical Channel Descriptor Array
-  LCHAN_DESC          Lchan_desc_srb1      ; //!< Logical Channel Descriptor Array
-  unsigned char       CH_index             ; //!< Layer 2 (MAC) IDs for CH
-} rrci_init_mr_req_t ;
-
-
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_rb_establish_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct   {
-  L2_ID               L2_id[2]             ; //!< Layer 2 (MAC) IDs for link
-  LCHAN_DESC          Lchan_desc           ; //!< Logical Channel Descriptor Array
-  MAC_RLC_MEAS_DESC   Mac_rlc_meas_desc    ; //!< MAC/RLC Measurement descriptors for RB
-  L3_INFO_T           L3_info_t            ; //!< Optional L3 Information
-  unsigned char       L3_info[MAX_L3_INFO] ; //!< Type of L3 Information
-} rrm_rb_establish_req_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrc_rb_establish_cfm() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  RB_ID               Rb_id                ; //!< Radio Bearer ID used by RRC
-  RB_TYPE             RB_type              ; //!< Radio Bearer Type
-} rrc_rb_establish_cfm_t        ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_rb_modify_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct   {
-  LCHAN_DESC          Lchan_desc           ; //!< Logical Channel Descriptor Array
-  MAC_RLC_MEAS_DESC   Mac_meas_desc        ; //!< MAC/RLC Measurement descriptors for RB
-  RB_ID               Rb_id                ; //!< Radio Bearer ID
-} rrm_rb_modify_req_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres des fonctions rrc_rb_modify_cfm() et
-        rrm_rb_release_req() dans une structure  permettant le passage des
-        parametres via un socket
-*/
-typedef struct {
-  RB_ID               Rb_id                ; //!< Radio Bearer ID
-} rrc_rb_modify_cfm_t   ,
-rrm_rb_release_req_t  ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrc_MR_attach_ind() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id               ; //!< Layer 2 (MAC) ID
-} rrc_MR_attach_ind_t  ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_sensing_meas_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id                ; //!< Layer 2 (MAC) ID
-  SENSING_MEAS_DESC   Sensing_meas_desc    ; //!< Sensing Measurement Descriptor
-} rrm_sensing_meas_req_t  ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrc_cx_establish_ind() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id                ; //!< Layer 2 (MAC) ID
-  L3_INFO_T           L3_info_t            ; //!< Type of L3 Information
-  unsigned char       L3_info[MAX_L3_INFO] ; //!< Optional L3 Information
-  RB_ID               DTCH_B_id            ; //!< RBID of broadcast IP service (MR only)
-  RB_ID               DTCH_id              ; //!< RBID of default IP service (MR only)
-} rrc_cx_establish_ind_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrc_phy_synch_to_CH_ind() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  unsigned int          Ch_index             ; //!< Clusterhead index
-  L2_ID                 L2_id                ; //!< L2_ID du MR
-} rrc_phy_synch_to_CH_ind_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrc_phy_synch_to_MR_ind() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID           L2_id                ; //!< L2_ID du CH
-} rrc_phy_synch_to_MR_ind_t ;
-
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrci_cx_establish_resp() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id                 ;
-  unsigned char       L3_info[MAX_L3_INFO]  ; //!< Optional L3 Information
-  L3_INFO_T           L3_info_t             ; //!< Type of L3 Information
-} rrci_cx_establish_resp_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrc_sensing_meas_ind_t() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id                 ; //!< Layer 2 ID (MAC) of sensing node
-  unsigned int        NB_meas               ; //!< Layer 2 ID (MAC) of sensing node
-  SENSING_MEAS_T      Sensing_meas[NB_SENS_MAX]; //!< first Sensing Information
-} rrc_sensing_meas_ind_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrc_rb_meas_ind() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  RB_ID              Rb_id                 ; //!< Radio Bearer ID
-  L2_ID              L2_id                 ; //!< Layer 2 (MAC) IDs for link
-  MEAS_MODE          Meas_mode             ; //!< Measurement mode (periodic or event-driven)
-  MAC_RLC_MEAS_T     Mac_rlc_meas          ; //!< MAC/RLC measurements
-} rrc_rb_meas_ind_t;
-
-
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de les fonctions
-        rrm_update_sens()dans une structure permettant le passage
-        des parametres via un socket
-*/
-/*typedef struct {
-    L2_ID               L2_id                  ; //!< Layer 2 ID (MAC) of sensing node
-    unsigned int        NB_info                ; //!< number of sensed channels
-    Sens_ch_t           Sens_meas[NB_SENS_MAX] ; //!< sensing information
-} rrm_update_sens_t ;  */
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres des fonctions rrm_init_mon_req(),
-        rrc_init_mon_req(), rrm_clust_mon_req(), rrc_clust_mon_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id                ; //!< Layer 2 (MAC) ID of destination
-  unsigned int        NB_chan              ; //!< Number of channels to scan
-  unsigned int        interval             ; //!< Time between two sensing sessions
-  unsigned int        ch_to_scan[NB_SENS_MAX]; //!< Vector of channels to scan
-} rrm_init_mon_req_t,
-rrc_init_mon_req_t/*,
- rrm_clust_mon_req_t,
- rrc_clust_mon_req_t*/;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_init_scan_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-//mod_lor_10_03_12++
-typedef struct {
-  unsigned int     Start_fr;      //!< Lowest frequency considered (MHz)
-  unsigned int     Stop_fr;       //!< Highest frequency considered (MHz)
-  unsigned int     Meas_band;     //!< Measurement bandwidth (KHz)
-  unsigned int     Meas_tpf;      //!< Measurement time per sub-band
-  unsigned int     Nb_channels;   //!< Number of sub-bands
-  unsigned int     Overlap;       //!< Overlap factor (%)
-  unsigned int     Sampl_freq;    //!< Sampling frequency (Ms/s)
-} rrm_init_scan_req_t;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrc_init_scan_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID      L2_id              ; //!< Layer 2 (MAC) ID of Fusion Centre
-  unsigned int     Start_fr;      //!< Lowest frequency considered (MHz)
-  unsigned int     Stop_fr;       //!< Highest frequency considered (MHz)
-  unsigned int     Meas_band;     //!< Measurement bandwidth (KHz)
-  unsigned int     Meas_tpf;      //!< Measurement time per sub-band
-  unsigned int     Nb_channels;   //!< Number of sub-bands
-  unsigned int     Overlap;       //!< Overlap factor (%)
-  unsigned int     Sampl_freq;    //!< Sampling frequency (Ms/s)
-} rrc_init_scan_req_t;
-//mod_lor_10_03_12--
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_end_scan_req() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID      L2_id              ; //!< Layer 2 (MAC) ID of destination sensor/FC
-} rrm_end_scan_req_t,
-rrc_end_scan_req_t,
-rrc_end_scan_conf_t;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_up_freq_ass() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id                ; //!< Layer 2 (MAC) ID of SU
-  unsigned int        NB_chan              ; //!< Number of channels
-  CHANNEL_T           ass_channels[NB_SENS_MAX]; //!< description of assigned channelS
-} rrm_up_freq_ass_t ;
-
-/*! //add_lor_10_11_05
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_up_freq_ass() dans
-        une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  L2_ID               L2_id [NB_SENS_MAX]      ; //!< Layer 2 (MAC) ID of SU source
-  L2_ID               L2_id_dest [NB_SENS_MAX] ; //!< Layer 2 (MAC) ID of SU source
-  unsigned int        NB_all                   ; //!< Number of allocated channels
-  CHANNEL_T           ass_channels[NB_SENS_MAX]; //!< description of assigned channelS
-} rrm_up_freq_ass_sec_t ;
-
-///< TYPEDEF VIA IP
-//mod_lor_10_04_27++
-/*!
-*******************************************************************************
-\brief  Definition des parametres de les fonctions
-        rrm_update_sens()dans une structure permettant le passage
-        des parametres via un socket
-*/
-/*typedef struct {
-    L2_ID               L2_id                  ; //!< Layer 2 ID (MAC) of sensing node
-    unsigned int        NB_info                ; //!< Number of sensed channels
-    Sens_ch_t           Sens_meas[NB_SENS_MAX] ; //!< Sensing information
-    double              info_time              ; //!< Data of the information
-} rrm_update_sens_t ; */
-
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de les fonctions rrm_ask_for_freq() et rrc_ask_for_freq()dans
-        une structure permettant le passage des parametres via un socket
-*/
-/*typedef struct {
-    L2_ID      L2_id              ; //!< Layer 2 (MAC) ID of Fusion Centre
-    QOS_CLASS_T      QoS          ; //!< QoS required; if 0 all QoS at disposition
-} open_freq_query_t;*/
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de les fonctions
-        rrc_open_freq() et rrm_open_freq() dans une structure permettant le passage
-        des parametres via un socket
-*/
-/*typedef struct {
-    double              date;
-    L2_ID               L2_id                  ; //!< Layer 2 ID (MAC) of FC/CH
-    unsigned int        NB_chan                ; //!< number of free channels
-    CHANNEL_T           fr_channels[NB_SENS_MAX]; //!< description of free channelS
-} update_open_freq_t;*/
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres des fonctions rrm_update_SN_freq() et
-        rrm_update_SN_freq()dans
-        une structure permettant le passage des parametres via un socket
-*/
-/*typedef struct {
-    L2_ID               L2_id                ; //!< Layer 2 (MAC) ID of FC/BTS
-    unsigned int        NB_chan              ; //!< Number of channels
-    unsigned int        occ_channels[NB_SENS_MAX]; //!< Vector of channels
-} update_SN_occ_freq_t;*/
-//mod_lor_10_04_27--
-
-#ifdef TRACE
-extern const char *Str_msg_rrc_rrm[NB_MSG_RRC_RRM] ;
-#endif
-
-/* Rappel : les paramètres sont identiques aux fonctions
- *          (sans le prefixe msg_ ) du fichier: L3_rrc_interface.h
- */
-
-
-msg_t *msg_rrm_rb_establish_req( Instance_t inst,
-                                 const LCHAN_DESC *Lchan_desc, const MAC_RLC_MEAS_DESC *Mac_rlc_meas_desc,
-                                 L2_ID *L2_id, Transaction_t Trans_id, unsigned char *L3_info, L3_INFO_T L3_info_t );
-
-
-msg_t *msg_rrm_rb_modify_req( Instance_t inst,
-                              const LCHAN_DESC  *Lchan_desc, const MAC_RLC_MEAS_DESC *Mac_meas_desc,
-                              RB_ID Rb_id, Transaction_t Trans_id );
-
-msg_t *msg_rrm_rb_release_req( Instance_t inst, RB_ID Rb_id, Transaction_t Trans_id );
-
-msg_t *msg_rrm_sensing_meas_req( Instance_t inst,
-                                 L2_ID L2_id, SENSING_MEAS_DESC Sensing_meas_desc, Transaction_t Trans_id ) ;
-
-msg_t *msg_rrci_cx_establish_resp( Instance_t inst,
-                                   Transaction_t Trans_id,L2_ID L2_id,
-                                   unsigned char *L3_info, L3_INFO_T L3_info_t );
-
-msg_t *msg_rrm_sensing_meas_resp( Instance_t inst, Transaction_t Trans_id );
-
-
-msg_t *msg_rrm_rb_meas_resp( Instance_t inst, Transaction_t Trans_id );
-
-msg_t *msg_rrm_init_ch_req( Instance_t inst, Transaction_t Trans_id,
-                            const LCHAN_DESC *Lchan_desc_srb0, const LCHAN_DESC *Lchan_desc_srb1,
-                            L2_ID L2_id )  ;
-
-msg_t *msg_rrci_init_mr_req( Instance_t inst,
-                             Transaction_t Trans_id, const LCHAN_DESC *Lchan_desc_srb0,
-                             const LCHAN_DESC  *Lchan_desc_srb1, unsigned char CH_index);
-
-msg_t *msg_rrm_init_mon_req(Instance_t inst, L2_ID L2_id, unsigned int NB_chan,
-                            unsigned int interval, unsigned int *ch_to_scan, Transaction_t Trans_id );
-msg_t *msg_rrm_init_scan_req(Instance_t inst, unsigned int  Start_fr, unsigned int  Stop_fr,unsigned int Meas_band,
-                             unsigned int Meas_tpf, unsigned int Nb_channels,unsigned int Overlap, unsigned int Sampl_freq, Transaction_t Trans_id ); //mod_lor_10_03_12
-msg_t *msg_rrm_end_scan_req( Instance_t inst, L2_ID L2_id, Transaction_t Trans_id );
-msg_t *msg_rrm_up_freq_ass( Instance_t inst, L2_ID L2_id, unsigned int NB_chan, CHANNEL_T *ass_channels);
-msg_t *msg_rrm_end_scan_conf( Instance_t inst, Transaction_t Trans_id);
-msg_t *msg_rrm_up_freq_ass_sec( Instance_t inst, L2_ID *L2_id, L2_ID *L2_id_dest,unsigned int NB_all, CHANNEL_T *ass_channels);//add_lor_10_11_05
-
-
-/*//mod_lor_10_04_27++
-///MESSAGES VIA IP
-msg_t *msg_update_sens_results_3( Instance_t inst, L2_ID L2_id, unsigned int NB_chan, Sens_ch_t *Sens_meas, Transaction_t Trans_id );
-msg_t *msg_open_freq_query_4( Instance_t inst, L2_ID L2_id, QOS_CLASS_T QoS, Transaction_t Trans_id );
-msg_t *msg_update_open_freq_7( Instance_t inst, L2_ID L2_id, unsigned int NB_free_ch, CHANNEL_T *fr_channels, Transaction_t Trans_id);
-msg_t *msg_update_SN_occ_freq_5( Instance_t inst, L2_ID L2_id, unsigned int NB_chan, unsigned int *occ_channels, Transaction_t Trans_id);
-//mod_lor_10_04_27--*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* RRC_MSG_H */
diff --git a/openair3/MESH/RRM/rrm.c b/openair3/MESH/RRM/rrm.c
deleted file mode 100644
index a16e68cf61..0000000000
--- a/openair3/MESH/RRM/rrm.c
+++ /dev/null
@@ -1,2245 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrm.c
-
-\brief      RRM (Radio Ressource Manager )
-
-            Cette application a pour objet
-                - de gérer la ressource radio du cluster
-                - de commander le RRC pour l'ouverture de RB
-                - de recevoir des commandes du CMM
-                - de gérer le voisinage
-
-\author     BURLOT Pascal
-
-\date       10/07/08
-
-
-\par     Historique:
-        P.BURLOT 2009-01-20
-            + separation de la file de message CMM/RRM a envoyer en 2 files
-              distinctes ( file_send_cmm_msg, file_send_rrc_msg)
-            + l'envoi de message via la fifo:
-                - envoi du header
-                - puis des donnees s'il y en a
-            + reception des donnees de la fifo:
-                - copie du message dans la file d'attente des messages
-                - traitement du cas du message n'ayant pas de data (ex: response )
-        L.IACOBELLI 2009-10-19
-            + sensing database
-            + channels database
-            + new cases
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <fcntl.h>
-#include <pthread.h>
-
-#include "debug.h"
-
-#include "L3_rrc_defs.h"
-#include "L3_rrc_interface.h"
-#include "cmm_rrm_interface.h"
-#include "rrm_sock.h"
-#include "rrc_rrm_msg.h"
-#include "ip_msg.h"                 //mod_lor_10_04_27
-#include "sensing_rrm_msg.h"
-#include "cmm_msg.h"
-#include "pusu_msg.h"
-#include "msg_mngt.h"
-#include "neighbor_db.h"
-#include "rb_db.h"
-#include "sens_db.h"
-#include "channels_db.h"
-#include "transact.h"
-#include "rrm_constant.h"
-#include "rrm_util.h"
-#include "rrm.h"
-
-#include "forms.h"                  //mod_eure_lor
-#include "sensing_form.h"           //mod_eure_lor
-#include "SN_freq_form.h"           //mod_lor_10_06_01
-#include "sens_scen_2_form.h"       //mod_lor_10_11_04
-#include "all_freq_to_users_form.h" //mod_lor_10_11_04
-#include "sens_CH1_scen_2.h"        //mod_lor_10_11_04
-#include "sens_sensor.h"        //mod_lor_11_02_18
-
-
-/*
-** ----------------------------------------------------------------------------
-** DEFINE LOCAL
-** ----------------------------------------------------------------------------
-*/
-//mod_lor_10_05_18++
-/*!
-*******************************************************************************
-\brief Definition of IP @ in main entities. i.e. they have to correspond
-        to the ones in node_info vector in emul_interface.c
-*/
-static unsigned char FC_L3id [4]= {0x0A,0x00,0x01,0x01};
-static unsigned char BTS_L3id [4]= {0x0A,0x00,0x02,0x02};
-static unsigned char CH_COLL_L3id [4]= {0x0A,0x00,0x02,0x02};
-FD_sensing_form *form;
-FD_Secondary_Network_frequencies *SN_form; //mod_lor_10_06_01
-FD_sens_scen_2 *Sens_form_CH2;             //mod_lor_10_11_04
-FD_all_freq_to_users *Chann_form;          //mod_lor_10_11_04
-FD_sens_CH1_scen_2 *Sens_form_CH1;         //mod_lor_10_11_04
-FD_sens_sensor *Sens_sensor_form;          //mod_lor_11_02_18
-static int SN_waiting = 0;                 //mod_lor_10_06_02
-//mod_lor_10_05_18--
-/*
-** ----------------------------------------------------------------------------
-** DECLARATION DE NOUVEAU TYPE
-** ----------------------------------------------------------------------------
-*/
-
-/*!
-*******************************************************************************
-\brief Structure de data passe en parametre au threads
-*/
-struct data_thread {
-  char *name              ; ///< Nom du thread
-  char *sock_path_local   ; ///< fichier du "rrm->..." pour le socket Unix
-  char *sock_path_dest    ; ///< fichier du "...->rrm " pour le socket Unix
-  sock_rrm_t  s           ; ///< Descripteur du socket
-}  ;
-
-//mod_lor_10_01_25++
-struct data_thread_int {
-  char *name              ; ///< Nom du thread
-  unsigned char *sock_path_local  ; ///< local IP address for internet socket
-  int local_port          ; ///< local IP port for internet socket
-  unsigned char *sock_path_dest   ; ///< dest IP address for internet socket
-  int dest_port           ; ///< dest IP port for internet socket
-  sock_rrm_int_t  s       ; ///< Descripteur du socket
-  int instance            ; ///<instance rrm
-}  ;
-//mod_lor_10_01_25--
-
-#ifdef RRC_KERNEL_MODE
-
-#define RRC2RRM_FIFO 14
-#define RRM2RRC_FIFO 15
-
-#define RX_MSG_STARTED 0; //mod_lor_10_01_25
-/*!
-*******************************************************************************
-\brief Structure regroupant les handles des fifos pour la communication en
-       mode KERNEL
-*/
-typedef struct {
-  int rrc_2_rrm_fifo;
-  int rrm_2_rrc_fifo;
-} RRM_FIFOS;
-
-#endif /* RRC_KERNEL_MODE */
-
-/*
-** ----------------------------------------------------------------------------
-** DECLARATION DES VARIABLES GLOBALES PUBLIQUES
-** ----------------------------------------------------------------------------
-*/
-rrm_t rrm_inst[MAX_RRM] ;
-int   nb_inst = -1 ;
-
-/*
-** ----------------------------------------------------------------------------
-** DECLARATION DES VARIABLES GLOBALES PRIVEES
-** ----------------------------------------------------------------------------
-*/
-#ifdef RRC_KERNEL_MODE
-static RRM_FIFOS Rrm_fifos;
-#endif
-
-static int flag_not_exit = 1 ;
-static pthread_t pthread_recv_rrc_msg_hnd,
-       pthread_recv_cmm_msg_hnd ,
-
-       pthread_send_rrc_msg_hnd ,
-
-       pthread_send_cmm_msg_hnd ,
-
-       pthread_recv_pusu_msg_hnd ,
-       pthread_recv_sensing_msg_hnd ,
-       pthread_send_sensing_msg_hnd ,
-
-       pthread_recv_int_msg_hnd ,
-       pthread_send_ip_msg_hnd ,
-
-       pthread_ttl_hnd ;
-static unsigned int cnt_timer = 0;
-static float st_fr = 2.42e6; //mod_lor_10_06_01
-static float end_fr = 2.46e6; //mod_lor_10_06_01
-
-#ifdef TRACE
-static FILE *cmm2rrm_fd  = NULL ;
-static FILE *rrc2rrm_fd  = NULL ;
-static FILE *pusu2rrm_fd = NULL ;
-static FILE *sensing2rrm_fd = NULL ;
-static FILE *ip2rrm_fd = NULL ;
-#endif
-static FILE *output_2 = NULL; //mod_lor_10_04_20
-
-/*
-** ----------------------------------------------------------------------------
-** DECLARATION DES FONCTIONS
-** ----------------------------------------------------------------------------
-*/
-//mod_eure_lor++
-/*!
-*******************************************************************************
-\brief  function to plot the spectrum sensing results
-
-\return NULL
-*/
-
-void plot_spectra(Sens_ch_t *S, unsigned int NB_info, /*FD_sensing_form *form,*/ unsigned int sensor)
-{
-
-  float f[MAX_NUM_SB*NB_info],spec_dBm[MAX_NUM_SB*NB_info];
-  //float f[100],spec_dBm[100];
-  unsigned int tot_sub_bands = MAX_NUM_SB*NB_info;
-  unsigned int SB_BW;
-  int i, j, k=0;
-
-  //printf("nb_info %d tot sub: %d \n",NB_info, tot_sub_bands);//dbg
-  // Compute frequencies and store in f
-  for (i=0; i<NB_info ; i++) {
-    SB_BW = (S[i].Final_f-S[i].Start_f)/MAX_NUM_SB;
-
-    for (j=0; j< MAX_NUM_SB; j++) {
-      f[k]=S[i].Start_f+(SB_BW*j)+(SB_BW/2);
-      // Transfer power measurements to spec_dBm (float)
-      spec_dBm[k] = S[i].mu0[j];
-      //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-      k++;
-    }
-  }
-
-  if (sensor == 1) {
-    fl_set_xyplot_xbounds(form->spec_SN1,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(form->spec_SN1,-115,-70);
-
-    fl_set_xyplot_data(form->spec_SN1,f,spec_dBm,tot_sub_bands,"","","");
-  } else if (sensor == 2) {
-    fl_set_xyplot_xbounds(form->spec_SN2,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(form->spec_SN2,-115,-70);
-
-    fl_set_xyplot_data(form->spec_SN2,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == 3) {
-    fl_set_xyplot_xbounds(form->spec_SN3,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(form->spec_SN3,-115,-70);
-
-    fl_set_xyplot_data(form->spec_SN3,f,spec_dBm,tot_sub_bands,"","","");
-  } else
-    printf("Error! Sensor %d not considered",sensor);
-
-  fl_check_forms();
-}//mod_eure_lor--
-
-//mod_lor_10_06_01++
-/*!
-*******************************************************************************
-\brief  function to plot the selected channels
-
-\return NULL
-*/
-
-void plot_SN_channels(CHANNELS_DB_T *channels_db, unsigned int NB_info, unsigned int *selected, /*FD_Secondary_Network_frequencies *SN_form,*/ unsigned int rrm_id)
-{
-
-  float f[SB_NEEDED_FOR_SN*NB_info],spec_dBm[SB_NEEDED_FOR_SN*NB_info];
-  CHANNELS_DB_T *pCurrent;
-  //float f[100],spec_dBm[100];
-  unsigned int tot_sub_bands = SB_NEEDED_FOR_SN*NB_info;
-  unsigned int SB_BW;
-  float Start_fr, Final_fr;
-  int i, j, k=0;
-
-  //printf("nb_info %d tot sub: %d \n",NB_info, tot_sub_bands);//dbg
-  // Compute frequencies and store in f
-  for (i=0; i<NB_info ; i++) {
-    pCurrent = get_chann_db_info(channels_db,selected[i]);
-    SB_BW = (pCurrent->channel.Final_f-pCurrent->channel.Start_f)/SB_NEEDED_FOR_SN;
-
-    for (j=0; j< SB_NEEDED_FOR_SN; j++) {
-      f[k]=pCurrent->channel.Start_f+(SB_BW*j)+(SB_BW/2);
-      // Transfer power measurements to spec_dBm (float)
-      spec_dBm[k] = 1;
-      //printf ("for k = %d f: %f; spec_dBm %f\n",k,f[k], spec_dBm[k]);//dbg
-      //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-      k++;
-    }
-  }
-
-  Start_fr = st_fr;
-  Final_fr = end_fr;
-  //printf ("start: %f; end %f\n",f[0], f[k-1]);//dbg
-
-  if (rrm_id == BTS_ID) {
-    fl_set_xyplot_xbounds(SN_form->Selected_frequencies,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(SN_form->Selected_frequencies,0,2);
-
-    fl_set_xyplot_data(SN_form->Selected_frequencies,f,spec_dBm,tot_sub_bands,"","","");
-  } else if (rrm_id == FC_ID) {
-    fl_set_xyplot_xbounds(form->Secondary_Network_frequencies,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(form->Secondary_Network_frequencies,0,2);
-
-    fl_set_xyplot_data(form->Secondary_Network_frequencies,f,spec_dBm,tot_sub_bands,"","","");
-  }
-
-  fl_check_forms();
-}
-//mod_lor_10_06_01--
-
-//add_lor_10_11_04++
-/*!
-*******************************************************************************
-\brief  function to plot the spectrum sensing results in cluster 1
-
-\return NULL
-*/
-void plot_spectra_CH1(Sens_ch_t *S, unsigned int NB_info, /*FD_sens_CH1_scen_2 *Sens_form_CH1,*/ int sensor)
-{
-
-  float f[MAX_NUM_SB*NB_info],spec_dBm[MAX_NUM_SB*NB_info];
-  //float f[100],spec_dBm[100];
-  unsigned int tot_sub_bands = MAX_NUM_SB*NB_info;
-  unsigned int SB_BW;
-  int i, j, k=0;
-
-  //printf("nb_info %d tot sub: %d \n",NB_info, tot_sub_bands);//dbg
-  // Compute frequencies and store in f
-  if (sensor!=-1) {
-    for (i=0; i<NB_info ; i++) {
-      SB_BW = (S[i].Final_f-S[i].Start_f)/MAX_NUM_SB;
-
-      for (j=0; j< MAX_NUM_SB; j++) {
-        f[k]=S[i].Start_f+(SB_BW*j)+(SB_BW/2);
-        // Transfer power measurements to spec_dBm (float)
-        spec_dBm[k] = S[i].mu0[j];
-        //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-        k++;
-      }
-    }
-  } else {
-    for (i=0; i<NB_info ; i++) {
-      SB_BW = (S[i].Final_f-S[i].Start_f)/MAX_NUM_SB;
-
-      for (j=0; j< MAX_NUM_SB; j++) {
-        f[k]=S[i].Start_f+(SB_BW*j)+(SB_BW/2);
-        // Transfer power measurements to spec_dBm (float)
-        spec_dBm[k] = (S[i].is_free[j]+1)%2;
-        //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-        k++;
-      }
-    }
-  }
-
-  if (sensor == 1) {
-    fl_set_xyplot_xbounds(Sens_form_CH1->User_1_sens,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH1->User_1_sens,-115,-70);
-
-    fl_set_xyplot_data(Sens_form_CH1->User_1_sens,f,spec_dBm,tot_sub_bands,"","","");
-
-  } else if (sensor == 2) {
-    fl_set_xyplot_xbounds(Sens_form_CH1->User_2_sens,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH1->User_2_sens,-115,-70);
-
-    fl_set_xyplot_data(Sens_form_CH1->User_2_sens,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == 3) {
-    fl_set_xyplot_xbounds(Sens_form_CH1->User_3_sens,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH1->User_3_sens,-115,-70);
-
-    fl_set_xyplot_data(Sens_form_CH1->User_3_sens,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == 4) {
-    fl_set_xyplot_xbounds(Sens_form_CH1->User_4_sens,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH1->User_4_sens,-115,-70);
-
-    fl_set_xyplot_data(Sens_form_CH1->User_4_sens,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == -1) {
-    fl_set_xyplot_xbounds(Sens_form_CH1->Cluster_2_sensing,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH1->Cluster_2_sensing,0,2);
-
-    fl_set_xyplot_data(Sens_form_CH1->Cluster_2_sensing,f,spec_dBm,tot_sub_bands,"","","");
-  } else
-    printf("Error! Sensor %d not considered",sensor);
-
-  fl_check_forms();
-}
-
-/*!
-*******************************************************************************
-\brief  function to plot the spectrum sensing results of collaborative cluster 2
-
-\return NULL
-*/
-void plot_spectra_CH2(Sens_ch_t *S, unsigned int NB_info, /*FD_sensing_form *form,*/ unsigned int sensor)
-{
-
-  float f[MAX_NUM_SB*NB_info],spec_dBm[MAX_NUM_SB*NB_info];
-  //float f[100],spec_dBm[100];
-  unsigned int tot_sub_bands = MAX_NUM_SB*NB_info;
-  unsigned int SB_BW;
-  int i, j, k=0;
-
-  for (i=0; i<NB_info ; i++) {
-    SB_BW = (S[i].Final_f-S[i].Start_f)/MAX_NUM_SB;
-
-    for (j=0; j< MAX_NUM_SB; j++) {
-      f[k]=S[i].Start_f+(SB_BW*j)+(SB_BW/2);
-      // Transfer power measurements to spec_dBm (float)
-      spec_dBm[k] = S[i].mu0[j];
-      //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-      k++;
-    }
-  }
-
-  if (sensor == 1) {
-    fl_set_xyplot_xbounds(Sens_form_CH2->User_1,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH2->User_1,-115,-70);
-
-    fl_set_xyplot_data(Sens_form_CH2->User_1,f,spec_dBm,tot_sub_bands,"","","");
-  } else if (sensor == 2) {
-    fl_set_xyplot_xbounds(Sens_form_CH2->User_2,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH2->User_2,-115,-70);
-
-    fl_set_xyplot_data(Sens_form_CH2->User_2,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == 3) {
-    fl_set_xyplot_xbounds(Sens_form_CH2->User_3,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH2->User_3,-115,-70);
-
-    fl_set_xyplot_data(Sens_form_CH2->User_3,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == 4) {
-    fl_set_xyplot_xbounds(Sens_form_CH2->User_4,(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH2->User_4,-115,-70);
-
-    fl_set_xyplot_data(Sens_form_CH2->User_4,f,spec_dBm,tot_sub_bands,"","","");
-  } else
-    printf("Error! Sensor %d not considered",sensor);
-
-  fl_check_forms();
-}
-
-/*!
-*******************************************************************************
-\brief  function to plot the attributed channel
-
-\return NULL
-*/
-
-void plot_all_chann_scen_2(unsigned int *tx, unsigned int *chann_start, unsigned int *chann_end, unsigned int NB_info, unsigned int rrm_id)
-{
-
-  float Start_fr, Final_fr;
-
-  float f[SB_NEEDED_FOR_SN*NB_info], spec_dBm[SB_NEEDED_FOR_SN*NB_info];
-  Start_fr = st_fr;
-  Final_fr = end_fr;
-
-  unsigned int tot_sub_bands = SB_NEEDED_FOR_SN*NB_info;
-  unsigned int SB_BW ;
-
-  int i, j, k=0;
-
-  // Compute frequencies and store in f
-  for (i=0; i<NB_info ; i++) {
-    SB_BW = (chann_end[i]-chann_start[i])/SB_NEEDED_FOR_SN;
-
-    for (j=0; j< SB_NEEDED_FOR_SN; j++) {
-      f[k]=chann_start[i]+(SB_BW*j)+(SB_BW/2);
-
-      if (tx[i]==1)
-        spec_dBm[k] = 2;
-      else
-        spec_dBm[k] = 1;
-
-      k++;
-    }
-  }
-
-  //printf ("start: %f; end %f\n",f[0], f[k-1]);//dbg
-
-  if (rrm_id == 1) {
-    fl_set_xyplot_xbounds(Chann_form->User_1_channels,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(Chann_form->User_1_channels,0,3);
-    fl_set_xyplot_data(Chann_form->User_1_channels,f,spec_dBm,tot_sub_bands,"","","");
-
-  } else if (rrm_id == 2) {
-    fl_set_xyplot_xbounds(Chann_form->User_2_channels,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(Chann_form->User_2_channels,0,3);
-    fl_set_xyplot_data(Chann_form->User_2_channels,f,spec_dBm,tot_sub_bands,"","","");
-
-  } else if (rrm_id == 3) {
-    fl_set_xyplot_xbounds(Chann_form->User_3_channels,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(Chann_form->User_3_channels,0,3);
-    fl_set_xyplot_data(Chann_form->User_3_channels,f,spec_dBm,tot_sub_bands,"","","");
-
-  } else if (rrm_id == 4) {
-    fl_set_xyplot_xbounds(Chann_form->User_4_channels,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(Chann_form->User_4_channels,0,3);
-    fl_set_xyplot_data(Chann_form->User_4_channels,f,spec_dBm,tot_sub_bands,"","","");
-
-  } else
-    printf("Error! User %d not considered",rrm_id);
-
-  fl_check_forms();
-}
-//add_lor_10_11_04--
-
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des ttl des transactions (rrc ou cmm).
-
-\return NULL
-*/
-static void * thread_processing_ttl (
-  void * p_data /**< parametre du pthread */
-)
-{
-  int ii ;
-  fprintf(stderr,"TTL :starting ... \n");
-  fflush(stdout);
-
-  while ( flag_not_exit) {
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      rrm_t *rrm = &rrm_inst[ii] ;
-
-      pthread_mutex_lock(   &( rrm->cmm.exclu )  ) ;
-      dec_all_ttl_transact( rrm->cmm.transaction ) ;
-      // Trop simpliste et pas fonctionnel , il faut faire une gestion des erreurs de transaction
-      //if (rrm->cmm.transaction!=NULL)
-      //  fprintf(stderr,"delete on cmm of %d\n", ii); //dbg
-      del_all_obseleted_transact( &(rrm->cmm.transaction));
-      pthread_mutex_unlock( &( rrm->cmm.exclu )  ) ;
-
-      pthread_mutex_lock(   &( rrm->rrc.exclu )  ) ;
-      dec_all_ttl_transact( rrm->rrc.transaction ) ;
-      // idem :commentaire ci-dessus
-      //if (rrm->rrc.transaction!=NULL)
-      //  fprintf(stderr,"delete on rrc of %d\n", ii); //dbg
-      del_all_obseleted_transact( &(rrm->rrc.transaction));
-      pthread_mutex_unlock( &( rrm->rrc.exclu )  ) ;
-
-      pthread_mutex_lock(   &( rrm->pusu.exclu )  ) ;
-      dec_all_ttl_transact( rrm->pusu.transaction ) ;
-      // idem :commentaire ci-dessus
-      del_all_obseleted_transact( &(rrm->pusu.transaction));
-      pthread_mutex_unlock( &( rrm->pusu.exclu )  ) ;
-
-      pthread_mutex_lock(   &( rrm->sensing.exclu )  ) ;
-      dec_all_ttl_transact( rrm->sensing.transaction ) ;
-      // idem :commentaire ci-dessus
-      del_all_obseleted_transact( &(rrm->sensing.transaction));
-      pthread_mutex_unlock( &( rrm->sensing.exclu )  ) ;
-
-      //mod_lor_10_01_25++
-      pthread_mutex_lock(   &( rrm->ip.exclu )  ) ;
-      dec_all_ttl_transact( rrm->ip.transaction ) ;
-      // idem :commentaire ci-dessus
-      del_all_obseleted_transact( &(rrm->ip.transaction));
-      pthread_mutex_unlock( &( rrm->ip.exclu )  ) ;
-      //mod_lor_10_01_25--*/
-
-    }
-
-    cnt_timer++;
-    usleep( 2000*1000 ) ;//mod_lor_10_03_01: incrementing timeout
-  }
-
-  fprintf(stderr,"... stopped TTL\n");
-  fflush(stdout);
-  return NULL;
-
-}
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages sortants sur les sockets (rrc ou cmm).
-
-\return NULL
-*/
-static void * thread_send_msg_cmm (
-  void * p_data /**< parametre du pthread */
-)
-{
-  int ii ;
-  int no_msg ;
-  fprintf(stderr,"Thread Send Message: starting ... \n");
-  fflush(stderr);
-  file_msg_t *pItem ;
-
-  while ( flag_not_exit) {
-    no_msg = 0  ;
-
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      rrm_t      *rrm = &rrm_inst[ii] ;
-
-      pItem = get_msg( &(rrm->file_send_cmm_msg) ) ;
-
-
-      if ( pItem == NULL )
-        no_msg++;
-      else {
-        int r =  send_msg( pItem->s, pItem->msg );
-        WARNING(r!=0);
-      }
-
-      RRM_FREE( pItem ) ;
-    }
-
-    if ( no_msg==nb_inst ) // Pas de message
-      usleep(1000);
-  }
-
-  fprintf(stderr,"... stopped Thread Send Message\n");
-  fflush(stderr);
-  return NULL;
-}
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages sortants sur les sockets (rrc ou cmm).
-
-\return NULL
-*/
-static void * thread_send_msg_rrc (
-  void * p_data /**< parametre du pthread */
-)
-{
-  int ii ;
-
-  int no_msg ;
-  fprintf(stderr,"Thread Send Message To RRC: starting ... \n");
-  fflush(stderr);
-  file_msg_t *pItem ;
-
-  while ( flag_not_exit) {
-    no_msg = 0  ;
-
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      rrm_t      *rrm = &rrm_inst[ii] ;
-
-      pItem = get_msg( &(rrm->file_send_rrc_msg) ) ;
-
-
-      if ( pItem == NULL )
-        no_msg++;
-      else {
-
-#ifdef RRC_KERNEL_MODE
-        // envoi du header
-        status = write (Rrm_fifos.rrm_2_rrc_fifo,(char*) pItem->msg, sizeof(msg_head_t) );
-
-        if ( pItem->msg->head.size >0)
-          status = write (Rrm_fifos.rrm_2_rrc_fifo,(pItem->msg)->data, pItem->msg->head.size);
-
-        //printf( "status write: %d \n",status);
-        //printf("send msg to rrc [%d] id msg: %d \n", (pItem->msg)->head.inst, (pItem->msg)->head.msg_type );
-#else
-        int r =  send_msg( pItem->s, pItem->msg );
-        WARNING(r!=0);
-#endif
-      }
-
-      RRM_FREE( pItem ) ;
-    }
-
-    if ( no_msg==nb_inst ) // Pas de message
-      usleep(1000);
-  }
-
-  fprintf(stderr,"... stopped Thread Send Message\n");
-  fflush(stderr);
-  return NULL;
-}
-
-//mod_lor_10_01_25++
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages sortants sur les sockets (rrc ou cmm).
-
-\return NULL
-*/
-static void * thread_send_msg_ip (
-  void * p_data /**< parametre du pthread */
-)
-{
-  int ii ;
-  int no_msg ;
-  fprintf(stderr,"Thread Send Message IP: starting ... \n");
-  fflush(stderr);
-  file_msg_t *pItem ;
-
-  while ( flag_not_exit) {
-    no_msg = 0  ;
-
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      rrm_t      *rrm = &rrm_inst[ii] ;
-
-      pItem = get_msg( &(rrm->file_send_ip_msg) ) ;
-
-
-      if ( pItem == NULL )
-        no_msg++;
-      else {
-        // fprintf(stderr,"Thread Send Message inst %d socket %d msg_type = %d dest %X\n", ii, rrm->ip.s->s,pItem->msg->head.msg_type, rrm->ip.s->in_dest_addr.sin_addr.s_addr); //dbg
-        //fprintf(stderr,"dest in msg%X\n\n\n\n",  pItem->s_int->in_dest_addr.sin_addr.s_addr); //dbg
-
-
-        // if (pItem->msg->head.msg_type == 26)
-        //   msg_fct( "IP -> UPDATE_SENSING_RESULTS_3 inst: %d sockid %d\n", ii, rrm->ip.s->s);//dbg
-        //printf("T4b:ok user %d msg %d\n", rrm->id,pItem->msg->head.msg_type);//dbg
-        int r =  send_msg_int( rrm->ip.s, pItem->msg );
-        //printf("T5b:ok r: %d\n",r);//dbg
-
-        WARNING(r!=0);
-      }
-
-      RRM_FREE( pItem ) ;
-    }
-
-    if ( no_msg==nb_inst ) // Pas de message
-      usleep(1000);
-  }
-
-  fprintf(stderr,"... stopped Thread Send Message\n");
-  fflush(stderr);
-  return NULL;
-}
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages sortants sur les sockets (rrc ou cmm).
-
-\return NULL
-*/
-static void * thread_send_msg_sensing (
-  void * p_data /**< parametre du pthread */
-)
-{
-  int ii ;
-
-  int no_msg ;
-  fprintf(stderr,"Thread Send Message To Sensing Unit: starting ... \n");
-  fflush(stderr);
-  file_msg_t *pItem ;
-
-  while ( flag_not_exit) {
-    no_msg = 0  ;
-
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      rrm_t      *rrm = &rrm_inst[ii] ;
-
-      pItem = get_msg( &(rrm->file_send_sensing_msg) ) ;
-
-
-      if ( pItem == NULL )
-        no_msg++;
-      else {
-        int r =  send_msg( pItem->s, pItem->msg );
-        WARNING(r!=0);
-
-      }
-
-      RRM_FREE( pItem ) ;
-    }
-
-    if ( no_msg==nb_inst ) // Pas de message
-      usleep(1000);
-  }
-
-  fprintf(stderr,"... stopped Thread Send Message\n");
-  fflush(stderr);
-  return NULL;
-}
-
-//mod_lor_10_01_25--*/
-
-
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages entrant sur une interface (rrc, cmm ou sensing).
-
-\return NULL
-*/
-
-static void * thread_recv_msg (
-  void * p_data /**< parametre du pthread */
-)
-{
-  msg_t *msg ;
-  struct data_thread *data = (struct data_thread *) p_data;
-  int sock ;
-
-  fprintf(stderr,"%s interfaces :starting ... %s %s\n",data->name , data->sock_path_local, data->sock_path_dest);
-  fflush(stderr);
-
-  /* ouverture des liens de communications */
-  sock = open_socket( &data->s,  data->sock_path_local, data->sock_path_dest ,0 );
-
-  if ( sock != -1 ) {
-    fprintf(stderr,"   %s -> socket =  %d\n",data->name , sock );
-    fflush(stderr);
-
-    while (flag_not_exit) {
-      msg = (msg_t *) recv_msg(&data->s) ;
-
-      if (msg == NULL ) {
-        fprintf(stderr,"Server closed connection\n");
-        flag_not_exit = 0;
-      } else {
-        int inst = msg->head.inst ;
-        rrm_t      *rrm = &rrm_inst[inst];
-
-        put_msg( &(rrm->file_recv_msg), 0, &data->s, msg) ;//mod_lor_10_01_25
-      }
-    }
-
-    close_socket(&data->s) ;
-  }
-
-  fprintf(stderr,"... stopped %s interfaces\n",data->name);
-  return NULL;
-}
-
-//mod_lor_10_01_25++
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages entrant via ip.
-
-\return NULL
-*/
-
-static void * thread_recv_msg_int (
-  void * p_data /**< parametre du pthread */
-)
-{
-  msg_t *msg ;
-  struct data_thread_int *data = (struct data_thread_int *) p_data;
-  rrm_t      *rrm = &rrm_inst[data->instance];
-  int sock ;
-
-  fprintf(stderr,"%s interfaces :starting on inst. %d ... ",data->name, data->instance  );
-  fprintf(stderr,"\n");
-
-  fflush(stderr);
-
-  /* ouverture des liens de communications */
-  sock = open_socket_int( &data->s,  data->sock_path_local, data->local_port, data->sock_path_dest, data->dest_port,0 );
-  data->s.s = sock;
-  memcpy(rrm->ip.s, &(data->s), sizeof(sock_rrm_int_t));
-  //fprintf(stderr,"IP dest %X \n", rrm->ip.s->in_dest_addr.sin_addr.s_addr);//dbg
-
-  if ( sock != -1 ) {
-    fprintf(stderr,"   %s -> socket =  %d\n",data->name , sock );
-    fflush(stderr);
-
-    while (flag_not_exit) {
-
-      msg = (msg_t *) recv_msg_int(rrm->ip.s) ;
-
-      if (msg == NULL ) {
-        fprintf(stderr,"Server closed connection\n");
-        flag_not_exit = 0;
-      } else {
-        //fprintf(stdout,"Ip dest in FC  when received msg %X\n",rrm_inst[0].ip.s->in_dest_addr.sin_addr.s_addr); //dbg
-        //printf(stderr,"msg received from %X \n", rrm->ip.s->in_dest_addr.sin_addr.s_addr);//dbg
-        put_msg( &(rrm->file_recv_msg), 1, &data->s, msg) ;
-        //fprintf(stdout,"Ip dest in FC after put_msg %X\n",rrm_inst[0].ip.s->in_dest_addr.sin_addr.s_addr); //dbg
-
-      }
-    }
-
-    close_socket_int(&data->s) ;
-  }
-
-  fprintf(stderr,"... stopped %s interfaces\n",data->name);
-  return NULL;
-}
-//mod_lor_10_01_25--
-
-/*******************************************************************************/
-#ifdef RRC_KERNEL_MODE
-char Header_buf[sizeof(msg_head_t)];
-char Data[2400];
-unsigned short  Header_read_idx=0,
-                Data_read_idx=0,
-                Data_to_read=0,
-                Header_size=sizeof(msg_head_t),
-                READ_OK=1;
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages entrant sur l'interface fifo du RRC
-        en mode KERNEL
-
-\return NULL
-*/
-static void * thread_recv_msg_fifo (void * p_data )
-{
-  msg_t      *msg_cpy   ;
-  rrm_t      *rrm       ;
-  msg_head_t *Header    ;
-  int         taille    ;
-  int         inst      ;
-  int         bytes_read;
-
-  msg_fifo("[RRM]: RX MSG_FIFOS %d handler starting....\n",RRC2RRM_FIFO);
-
-  while (flag_not_exit) {
-    if(Header_read_idx < Header_size) {
-      bytes_read = read(Rrm_fifos.rrc_2_rrm_fifo,&Data[Header_read_idx],Header_size-Header_read_idx);
-
-      if(bytes_read <0)
-        continue;
-
-      Header_read_idx+=bytes_read;
-      msg_fifo("[RRM]: RX MSG ON FIFOS %d: Header size %d, bytes_read %d\n",RRC2RRM_FIFO,Header_read_idx,bytes_read);
-
-      if(Header_read_idx == Header_size) {
-        Header=(msg_head_t*)Data;
-        Data_to_read=Header->size;
-        Data_read_idx=Header_read_idx;
-        msg_fifo("[RRM]: RX MSG ON FIFOS %d: Header read completed, Data size %d\n",RRC2RRM_FIFO,Data_to_read);
-        Header = (msg_head_t *) Data;
-      } else
-        continue;
-    }
-
-    if (Data_to_read > 0 ) {
-      bytes_read = read (Rrm_fifos.rrc_2_rrm_fifo,&Data[Data_read_idx],Data_to_read);
-
-      if(bytes_read <0)
-        continue;
-
-      Data_to_read-=bytes_read;
-      Data_read_idx+=bytes_read;
-      msg_fifo("[RRM]: RX MSG ON FIFOS %d: data size %d\n",RRC2RRM_FIFO,Data_read_idx-Header_read_idx);
-
-      if(Data_to_read > 0 )
-        continue;
-
-      Header_read_idx= 0 ;
-      Data_read_idx  = 0 ;
-      Data_to_read   = 0 ;
-      taille         = Header->size + sizeof(msg_head_t) ;
-      msg_cpy        = RRM_MALLOC( msg_t, taille ) ;
-      inst           = Header->inst ;
-      rrm            = &rrm_inst[inst];
-
-      memcpy( msg_cpy, Data , taille ) ;
-      msg_fifo("[RRM]: RX MSG ON FIFOS %d: data read completed, Proccess on inst .... %d\n",RRC2RRM_FIFO,inst);
-      put_msg( &(rrm->file_recv_msg), 0, rrm->rrc.s, msg_cpy) ; //mod_lor_10_01_25
-      msg_fifo("[RRM]: RX MSG ON FIFOS %d: data read completed, Proccess on inst done %d\n",RRC2RRM_FIFO,inst);
-    } else {
-      /* Seulement le header */
-      Header_read_idx= 0 ;
-      Data_read_idx  = 0 ;
-      Data_to_read   = 0 ;
-      taille         = sizeof(msg_head_t) ;
-      msg_cpy        = RRM_MALLOC( msg_t, taille ) ;
-      inst           = Header->inst ;
-      rrm            = &rrm_inst[inst];
-
-      memcpy( msg_cpy, Data , taille ) ;
-      put_msg( &(rrm->file_recv_msg), 0, rrm->rrc.s, msg_cpy) ;//mod_lor_10_01_25
-    }
-  }
-
-  return NULL;
-}
-#endif
-/*!
-*******************************************************************************
-\brief  traitement des messages entrant sur l'interface CMM
-
-\return Auncune valeur
-*/
-static void processing_msg_cmm(
-  rrm_t       *rrm        , ///< Donnee relative a une instance du RRM
-  msg_head_t  *header     , ///< Entete du message
-  char        *msg        , ///< Message recu
-  int         len_msg       ///< Longueur du message
-)
-{
-#ifdef TRACE
-
-  if ( header->msg_type < NB_MSG_CMM_RRM )
-    fprintf(cmm2rrm_fd,"%lf CMM->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_cmm_rrm[header->msg_type], header->msg_type,header->Trans_id);
-  else
-    fprintf(cmm2rrm_fd,"%lf CMM->RRM %-30s %d %d\n",get_currentclock(),"inconnu", header->msg_type,header->Trans_id);
-
-  fflush(cmm2rrm_fd);
-#endif
-
-  switch ( header->msg_type ) {
-  case CMM_CX_SETUP_REQ: {
-    cmm_cx_setup_req_t *p = (cmm_cx_setup_req_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_CX_SETUP_REQ\n",header->inst);
-
-    if ( cmm_cx_setup_req(header->inst,p->Src,p->Dst,p->QoS_class,header->Trans_id ) ) {
-      /* RB_ID = 0xFFFF => RB error */
-      put_msg( &(rrm->file_send_cmm_msg), 0,
-               rrm->cmm.s, msg_rrm_cx_setup_cnf(header->inst,0xFFFF , header->Trans_id )) ;//mod_lor_10_01_25
-    }
-  }
-  break ;
-
-  case CMM_CX_MODIFY_REQ: {
-    cmm_cx_modify_req_t *p = (cmm_cx_modify_req_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_CX_MODIFY_REQ\n",header->inst);
-    cmm_cx_modify_req(header->inst,p->Rb_id,p->QoS_class,header->Trans_id )  ;
-  }
-  break ;
-
-  case CMM_CX_RELEASE_REQ : {
-    cmm_cx_release_req_t *p = (cmm_cx_release_req_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_CX_RELEASE_REQ\n",header->inst);
-    cmm_cx_release_req(header->inst,p->Rb_id,header->Trans_id )  ;
-  }
-  break ;
-
-  case CMM_CX_RELEASE_ALL_REQ : {
-    //cmm_cx_release_all_req_t *p = (cmm_cx_release_all_req_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_CX_RELEASE_ALL_REQ\n",header->inst);
-  }
-  break ;
-
-  case CMM_ATTACH_CNF : { ///< The thread that allows
-    cmm_attach_cnf_t *p = (cmm_attach_cnf_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_ATTACH_CNF\n",header->inst);
-
-    //mod_lor_10_01_25++
-#ifndef    RRC_EMUL
-
-    if (rrm->ip.s->s == -1) {
-      //mod_lor_10_05_06++
-      unsigned char tmp [4];
-      /*for (int i=0; i<10;i++ )
-          if (memcmp( &(node_info[i].L2_id), &(p->L2_id), sizeof(L2_ID) )){
-              fprintf(stderr,"Inst. to connect with %d\n",i);
-              break;
-          }//memcpy()*/
-
-      //mod_lor_10_05_18++: destination addresses depends on
-      //scenario and on role, they are declared at beginning of file
-      if (SCEN_2_CENTR && rrm->id >= FIRST_SECOND_CLUSTER_USER_ID) { //mod_lor_11_01_06
-        tmp[0]=CH_COLL_L3id[0];
-        tmp[1]=CH_COLL_L3id[1];
-        tmp[2]=CH_COLL_L3id[2];
-        tmp[3]=CH_COLL_L3id[3];
-      } else if (rrm->id == 5) {
-        tmp[0]=BTS_L3id[0];
-        tmp[1]=BTS_L3id[1];
-        tmp[2]=BTS_L3id[2];
-        tmp[3]=BTS_L3id[3];
-      } else {
-        tmp[0]=FC_L3id[0];
-        tmp[1]=FC_L3id[1];
-        tmp[2]=FC_L3id[2];
-        tmp[3]=FC_L3id[3];
-      }//mod_lor_10_05_18--
-
-      //unsigned char tmp [4]={0x0A,0x00,0x01,0x01};
-      /*fprintf(stderr,"IP_addr :");//dbg //mod_lor_10_05_06
-      for (int i=0;i<4;i++)//dbg
-          fprintf(stderr," %X",tmp[i]);//dbg
-      fprintf(stderr,"\n");//dbg*/
-
-      //mod_lor_10_05_06--
-      fprintf(stderr,"IP interface starting inst. %d\n",rrm->id);
-
-      if (rrm->id != 5) {
-        int sock = open_socket_int(rrm->ip.s, p->L3_info, 0, tmp, 0, header->inst);
-
-        if ( sock != -1 ) {
-          fprintf(stderr,"   Ip -> socket =  %d\n", rrm->ip.s->s );
-          fflush(stderr);
-        } else
-          fprintf(stderr," Error in IP socket opening \n");
-      }
-    } else
-      fprintf(stderr," Socket IP for inst %d already opened %d \n",rrm->id,rrm->ip.s->s);
-
-#endif            //mod_lor_10_01_25--*/
-
-    cmm_attach_cnf( header->inst, p->L2_id, p->L3_info_t, p->L3_info, header->Trans_id ) ;
-  }
-  break ;
-
-  case CMM_INIT_MR_REQ : {
-    msg_fct( "[CMM]>[RRM]:%d:CMM_INIT_MR_REQ ????\n",header->inst);
-  }
-  break ;
-
-  case CMM_INIT_CH_REQ : {
-    cmm_init_ch_req_t *p = (cmm_init_ch_req_t *) msg ;
-    //mod_lor_10_03_01++
-
-    struct data_thread_int DataIp;
-
-    DataIp.name = "IP"             ; ///< Nom du thread
-    DataIp.sock_path_local=p->L3_info;///< local IP address for internet socket
-    DataIp.local_port = 7000          ; ///< local IP port for internet socket
-
-    //mod_lor_10_03_01++: setting for topology with FC and BTS on instances 0 and 1
-    //mod_lor_10_05_18++
-    if (rrm->role == FUSIONCENTER) {
-      if (SCEN_1)
-        DataIp.sock_path_dest = BTS_L3id ; ///< dest IP address for internet socket
-      else if (SCEN_2_CENTR)
-        DataIp.sock_path_dest = CH_COLL_L3id ; ///< dest IP address for internet socket
-    } else if (rrm->role == BTS ||rrm->role == CH_COLL) { //mod_lor_10_04_27
-      DataIp.sock_path_dest = FC_L3id  ; ///< dest IP address for internet socket
-    } else
-      fprintf (stderr, "wrong node role %d \n", rrm->role);
-
-    //mod_lor_10_05_18--
-    //mod_lor_10_03_01--
-    DataIp.dest_port = 0          ; ///< dest IP port for internet socket
-    DataIp.s.s = -1      ;
-    DataIp.instance = rrm->id;
-    //fprintf(stderr,"L3_local ");//dbg
-    //print_L3_id( IPv4_ADDR,  rrm->L3_info );
-    //fprintf(stderr,"\n");//dbg
-
-    int ret = pthread_create ( &pthread_recv_int_msg_hnd, NULL, thread_recv_msg_int , &DataIp );
-
-    if (ret) {
-      fprintf (stderr, "%s", strerror (ret));
-      exit(-1) ;
-    }
-
-    sleep(5);
-    //mod_lor_10_03_01--
-    cmm_init_ch_req(header->inst,p->L3_info_t,&(p->L3_info[0]));
-    msg_fct( "[CMM]>[RRM]:%d:CMM_INIT_CH_REQ\n",header->inst);
-
-  }
-  break ;
-
-  case CMM_INIT_SENSING : {
-    cmm_init_sensing_t *p = (cmm_init_sensing_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_INIT_SENSING\n",header->inst);
-    rrm->sensing.sens_active=1;//mod_lor_10_05_07
-    //st_fr = p->Start_fr; //mod_lor_10_06_01
-    //end_fr = p->Stop_fr; //mod_lor_10_06_01
-    cmm_init_sensing(header->inst,p->Start_fr ,p->Stop_fr,p->Meas_band,p->Meas_tpf,
-                     p->Nb_channels, p->Overlap,p->Sampl_freq);
-
-  }
-  break ;
-
-  case CMM_INIT_COLL_SENSING : { //add_lor_10_11_08
-    cmm_init_coll_sensing_t *p = (cmm_init_coll_sensing_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_INIT_COLL_SENSING\n",header->inst);
-    rrm->sensing.sens_active=1;
-    cmm_init_coll_sensing(header->inst,p->Start_fr ,p->Stop_fr,p->Meas_band,p->Meas_tpf,
-                          p->Nb_channels, p->Overlap,p->Sampl_freq);
-
-  }
-  break ;
-
-  case CMM_STOP_SENSING : {
-    msg_fct( "[CMM]>[RRM]:%d:CMM_STOP_SENSING\n",rrm->id);
-    rrm->sensing.sens_active=0;//mod_lor_10_05_07
-    //print_sens_db(rrm->rrc.pSensEntry);//dbg
-    cmm_stop_sensing(header->inst);
-  }
-  break ;
-
-  case CMM_ASK_FREQ : {
-    msg_fct( "[CMM]>[RRM]:%d:CMM_ASK_FREQ\n",header->inst);
-    cmm_ask_freq(header->inst);
-  }
-  break ;
-
-  case CMM_NEED_TO_TX : { //add_lor_10_10_28
-    cmm_need_to_tx_t *p = (cmm_need_to_tx_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_NEED_TO_TX\n",header->inst);
-    cmm_need_to_tx(header->inst, p->dest,p->QoS_class);
-  }
-  break ;
-
-  case CMM_USER_DISC : { //add_lor_10_11_08
-    msg_fct( "[CMM]>[RRM]:%d:CMM_USER_DISC\n",header->inst);
-    cmm_user_disc(header->inst);
-  }
-  break ;
-
-  case CMM_LINK_DISC : { //add_lor_10_11_09
-    cmm_link_disk_t *p = (cmm_link_disk_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_LINK_DISC with user %d\n",header->inst, p->dest);
-    cmm_link_disc(header->inst, p->dest);
-  }
-  break ;
-
-  default :
-    fprintf(stderr,"CMM:\n") ;
-    printHex(msg,len_msg,1) ;
-  }
-}
-/*!
-*******************************************************************************
-\brief  traitement des messages entrant sur l'interface RRC
-
-\return Aucune valeur
-*/
-static void processing_msg_rrc(
-  rrm_t *rrm          , ///< Donnee relative a une instance du RRM
-  msg_head_t *header  , ///< Entete du message
-  char *msg           , ///< Message recu
-  int len_msg           ///< Longueur du message
-)
-{
-#ifdef TRACE
-
-  if ( header->msg_type < NB_MSG_RRC_RRM )
-    fprintf(rrc2rrm_fd,"%lf RRC->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_rrc_rrm[header->msg_type],header->msg_type,header->Trans_id);
-  else
-    fprintf(rrc2rrm_fd,"%lf RRC->RRM %-30s %d %d\n",get_currentclock(),"inconnu",header->msg_type,header->Trans_id);
-
-  fflush(rrc2rrm_fd);
-#endif
-
-  switch ( header->msg_type ) {
-  case RRC_RB_ESTABLISH_RESP: {
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_ESTABLISH_RESP %d \n",header->inst, header->Trans_id );
-    rrc_rb_establish_resp(header->inst,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_RB_ESTABLISH_CFM: {
-    rrc_rb_establish_cfm_t *p = (rrc_rb_establish_cfm_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_ESTABLISH_CFM (%d)  %d \n",header->inst,p->Rb_id, header->Trans_id);
-    rrc_rb_establish_cfm(header->inst,p->Rb_id,p->RB_type,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_RB_MODIFY_RESP: {
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_MODIFY_RESP  %d \n",header->inst, header->Trans_id);
-    rrc_rb_modify_resp(header->inst,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_RB_MODIFY_CFM: {
-    rrc_rb_modify_cfm_t *p = (rrc_rb_modify_cfm_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_MODIFY_CFM (%d) %d \n",header->inst,p->Rb_id, header->Trans_id);
-    rrc_rb_modify_cfm(header->inst,p->Rb_id,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_RB_RELEASE_RESP: {
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_RELEASE_RESP %d \n",header->inst, header->Trans_id);
-    rrc_rb_release_resp(header->inst,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_MR_ATTACH_IND : {
-    rrc_MR_attach_ind_t *p = (rrc_MR_attach_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_MR_ATTACH_IND (Node %02d) %d \n",header->inst, p->L2_id.L2_id[0], header->Trans_id);
-    rrc_MR_attach_ind(header->inst,p->L2_id) ;
-  }
-  break ;
-
-  case RRC_SENSING_MEAS_RESP: {
-    msg_fct( "[RRC]>[RRM]:%d:RRC_SENSING_MEAS_RESP %d \n",header->inst, header->Trans_id);
-    rrc_sensing_meas_resp(header->inst,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_CX_ESTABLISH_IND: {
-    rrc_cx_establish_ind_t *p = (rrc_cx_establish_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_CX_ESTABLISH_IND (Node %02d) %d \n",header->inst, p->L2_id.L2_id[0], header->Trans_id);
-
-    rrc_cx_establish_ind(header->inst,p->L2_id,header->Trans_id,
-                         p->L3_info,p->L3_info_t,
-                         p->DTCH_B_id,p->DTCH_id) ;
-
-    //mod_lor_10_01_25++
-    if (rrm->state == MESHROUTER) {
-      memcpy(rrm->L3_info_corr,p->L3_info, IPv4_ADDR);
-
-    }
-
-    //mod_lor_10_01_25--*/
-  }
-  break ;
-
-  case RRC_PHY_SYNCH_TO_MR_IND : {
-    rrc_phy_synch_to_MR_ind_t *p = (rrc_phy_synch_to_MR_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_PHY_SYNCH_TO_MR_IND.... (Node %02d) %d \n",header->inst, p->L2_id.L2_id[0], header->Trans_id);
-    rrc_phy_synch_to_MR_ind(header->inst,p->L2_id) ;
-    //msg_fct( "[RRC]>[RRM]:%d:RRC_PHY_SYNCH_TO_MR_IND Done\n",header->inst);
-  }
-  break ;
-
-  case RRC_PHY_SYNCH_TO_CH_IND : {
-    rrc_phy_synch_to_CH_ind_t *p = (rrc_phy_synch_to_CH_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_PHY_SYNCH_TO_CH_IND.... %d (Node %02d) %d \n",header->inst, p->Ch_index, p->L2_id.L2_id[0], header->Trans_id);
-    rrc_phy_synch_to_CH_ind(header->inst,p->Ch_index,p->L2_id ) ;
-    //msg_fct( "[RRC]>[RRM]:%d:RRC_PHY_SYNCH_TO_CH_IND Done\n",header->inst);
-
-  }
-  break ;
-
-  case RRC_SENSING_MEAS_IND : {
-    rrc_sensing_meas_ind_t *p  = (rrc_sensing_meas_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_SENSING_MEAS_IND (Node %02d) %d \n",header->inst, p->L2_id.L2_id[0], header->Trans_id);
-    rrc_sensing_meas_ind( header->inst,p->L2_id, p->NB_meas, p->Sensing_meas, header->Trans_id );
-  }
-  break ;
-
-  case RRC_RB_MEAS_IND : {
-    rrc_rb_meas_ind_t *p  = (rrc_rb_meas_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_MEAS_IND (Noede %02d) %d \n",header->inst, p->L2_id.L2_id[0], header->Trans_id);
-    rrc_rb_meas_ind( header->inst, p->Rb_id, p->L2_id, p->Meas_mode, p->Mac_rlc_meas, header->Trans_id );
-  }
-  break ;
-
-
-  case RRC_INIT_SCAN_REQ : {
-    rrc_init_scan_req_t *p  = (rrc_init_scan_req_t *) msg ;
-    //  fprintf(stdout,"sens_database before:\n");//dbg
-    //  print_sens_db( rrm->rrc.pSensEntry );//dbg
-    msg_fct( "[RRC]>[RRM]:%d:RRC_INIT_SCAN_REQ  %d \n",header->inst, header->Trans_id);
-    rrm->sensing.sens_active=1;//mod_lor_10_04_21
-
-    rrc_init_scan_req( header->inst, p->L2_id, p->Start_fr ,p->Stop_fr,p->Meas_band,p->Meas_tpf,
-                       p->Nb_channels, p->Overlap,p->Sampl_freq, header->Trans_id );
-
-    //    fprintf(stdout,"sens_database:\n");//dbg
-    //    print_sens_db( rrm->rrc.pSensEntry );//dbg
-
-  }
-  break ;
-
-  case RRC_END_SCAN_CONF : {
-    rrc_end_scan_conf_t *p  = (rrc_end_scan_conf_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_END_SCAN_CONF  %d (Node ",header->inst, header->Trans_id);
-
-    for ( int i=0; i<8; i++)
-      msg_fct("%02X", p->L2_id.L2_id[i]);
-
-    msg_fct( ")\n");
-    rrc_end_scan_conf( header->inst, p->L2_id, header->Trans_id );
-  }
-  break ;
-
-  case RRC_END_SCAN_REQ : {
-    rrc_end_scan_req_t *p  = (rrc_end_scan_req_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_END_SCAN_REQ %d \n",header->inst, header->Trans_id);
-    rrm->sensing.sens_active=0;//mod_lor_10_04_21
-    rrc_end_scan_req( header->inst, p->L2_id, header->Trans_id );
-  }
-  break ;
-
-  case RRC_INIT_MON_REQ : {
-    rrc_init_mon_req_t *p  = (rrc_init_mon_req_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_INIT_MON_REQ %d (Node ",header->inst, header->Trans_id);
-
-    for ( int i=0; i<8; i++)
-      msg_fct("%02X", p->L2_id.L2_id[i]);
-
-    msg_fct( ")\n");
-    rrc_init_mon_req( header->inst, p->L2_id, p->ch_to_scan, p->NB_chan, p->interval, header->Trans_id );
-  }
-  break ;
-
-  //mod_lor_10_06_04++
-  case RRC_UP_FREQ_ASS : {
-    //rrm_up_freq_ass_t *p  = (rrm_up_freq_ass_t *) msg ;
-    //int i;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_UP_FREQ_ASS \n",header->inst);
-
-  }
-  break;
-
-  //mod_lor_10_06_04--
-  //mod_lor_10_11_05++
-  case RRC_UP_FREQ_ASS_SEC : {
-    rrm_up_freq_ass_sec_t *p  = (rrm_up_freq_ass_sec_t *) msg ;
-    int i;
-    unsigned int chann_start[NB_SENS_MAX];
-    unsigned int chann_end[NB_SENS_MAX];
-    unsigned int tx[NB_SENS_MAX];
-    unsigned int tot_ch = 0;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_UP_FREQ_ASS_SEC ch %d\n",header->inst,p->NB_all);
-
-    for (i=0; i<p->NB_all; i++) {
-      if (memcmp( &(p->L2_id[i]), &(rrm->L2_id), sizeof(L2_ID) )==0) {
-        printf("USER:%d:Transmission on channel %d from %d to %d\n\n",header->inst,p->ass_channels[i].Ch_id, p->ass_channels[i].Start_f, p->ass_channels[i].Final_f);
-        chann_start[tot_ch] = p->ass_channels[i].Start_f;
-        chann_end[tot_ch]   = p->ass_channels[i].Final_f;
-        tx[tot_ch]          = 1;
-        tot_ch++;
-      }
-
-      if (memcmp( &(p->L2_id_dest[i]), &(rrm->L2_id), sizeof(L2_ID) )==0) {
-        printf("USER:%d:Ready to receive on channel %d from %d to %d\n\n",header->inst,p->ass_channels[i].Ch_id, p->ass_channels[i].Start_f, p->ass_channels[i].Final_f);
-        chann_start[tot_ch] = p->ass_channels[i].Start_f;
-        chann_end[tot_ch]   = p->ass_channels[i].Final_f;
-        tx[tot_ch]          = 0;
-        tot_ch++;
-      }
-    }
-
-    plot_all_chann_scen_2(tx, chann_start, chann_end, tot_ch, header->inst-FIRST_SENSOR_ID+1);
-
-
-  }
-  break;
-  //mod_lor_10_11_05--
-
-  default :
-    fprintf(stderr,"RRC:\n") ;
-    printHex(msg,len_msg,1) ;
-  }
-
-}
-
-static void processing_msg_sensing(
-  rrm_t       *rrm        , ///< Donnee relative a une instance du RRM
-  msg_head_t  *header     , ///< Entete du message
-  char        *msg        , ///< Message recu
-  int         len_msg       ///< Longueur du message
-)
-{
-
-#ifdef TRACE
-
-  if ( header->msg_type < NB_MSG_SENSING_RRM )
-    fprintf(sensing2rrm_fd,"%lf SENSING->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_sensing_rrm[header->msg_type],header->msg_type,header->Trans_id);
-  else
-    fprintf(sensing2rrm_fd,"%lf SENSING->RRM %-30s %d %d\n",get_currentclock(),"inconnu",header->msg_type,header->Trans_id);
-
-  fflush(sensing2rrm_fd);
-#endif
-
-  switch ( (MSG_SENSING_RRM_T)header->msg_type ) {
-
-  case SNS_UPDATE_SENS : {
-    rrc_update_sens_t *p  = (rrc_update_sens_t *) msg ;
-
-    if (rrm->sensing.sens_active) {//mod_lor_10_05_07
-      msg_fct( "[SENSING]>[RRM]:%d:SNS_UPDATE_SENS \n",header->inst);
-
-      if (SCEN_1)
-        plot_spectra(p->Sens_meas, p->NB_info,  header->inst-FIRST_SENSOR_ID+1);
-      //mod_lor_10_11_04++
-      else if (SCEN_2_CENTR && !COLL_CLUST)
-        plot_spectra_CH1(p->Sens_meas, p->NB_info,  header->inst-FIRST_SENSOR_ID+1);
-      else if (SCEN_2_CENTR && COLL_CLUST)
-        plot_spectra_CH2(p->Sens_meas, p->NB_info,  header->inst-FIRST_SENSOR_ID+1);
-
-      //mod_lor_10_11_04--
-
-      rrc_update_sens( header->inst, rrm->L2_id, p->NB_info, p->Sens_meas, p->info_time );  //fix info_time & understand trans_id
-    }//mod_lor_10_05_07
-  }
-  break ;
-
-  //mod_lor_10_04_14++
-  case SNS_END_SCAN_CONF : {
-
-    msg_fct( "[SENSING]>[RRM]:%d:SNS_END_SCAN_CONF\n",header->inst);
-
-    sns_end_scan_conf( header->inst );
-  }
-  break ;
-
-  default :
-    fprintf(stderr,"SENSING:%d:\n",header->msg_type) ;
-    printHex(msg,len_msg,1) ;
-  }//mod_lor_10_04_14--
-}
-
-
-/*!
-*******************************************************************************
-\brief  traitement des messages entrant sur l'interface PUSU
-
-\return Aucune valeur
-*/
-static void processing_msg_pusu(
-  rrm_t *rrm          , ///< Donnee relative a une instance du RRM
-  msg_head_t *header  , ///< Entete du message
-  char *msg           , ///< Message recu
-  int len_msg           ///< Longueur du message
-)
-{
-  transact_t *pTransact ;
-
-  pthread_mutex_lock( &( rrm->pusu.exclu ) ) ;
-  pTransact = get_item_transact(rrm->pusu.transaction,header->Trans_id ) ;
-
-  if ( pTransact == NULL ) {
-    fprintf(stderr,"[RRM] %d PUSU Response (%d): unknown transaction\n",header->msg_type,header->Trans_id);
-  } else {
-    del_item_transact( &(rrm->pusu.transaction),header->Trans_id ) ;
-  }
-
-  pthread_mutex_unlock( &( rrm->pusu.exclu ) ) ;
-
-#ifdef TRACE
-
-  if ( header->msg_type < NB_MSG_RRM_PUSU )
-    fprintf(pusu2rrm_fd,"%lf PUSU->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_pusu_rrm[header->msg_type],header->msg_type,header->Trans_id);
-  else
-    fprintf(pusu2rrm_fd,"%lf PUSU->RRM %-30s %d %d\n",get_currentclock(),"inconnu",header->msg_type,header->Trans_id);
-
-  fflush(pusu2rrm_fd);
-#endif
-
-  switch ( header->msg_type ) {
-  case PUSU_PUBLISH_RESP: {
-    msg_fct( "[PUSU]>[RRM]:%d:PUSU_PUBLISH_RESP\n",header->inst );
-  }
-  break ;
-
-  case PUSU_UNPUBLISH_RESP: {
-    msg_fct( "[PUSU]>[RRM]:%d:PUSU_UNPUBLISH_RESP\n",header->inst );
-  }
-  break ;
-
-  case PUSU_LINK_INFO_RESP: {
-    msg_fct( "[PUSU]>[RRM]:%d:PUSU_LINK_INFO_RESP\n",header->inst );
-  }
-  break ;
-
-  case PUSU_SENSING_INFO_RESP: {
-    msg_fct( "[PUSU]>[RRM]:%d:PUSU_SENSING_INFO_RESP\n",header->inst );
-  }
-  break ;
-
-  case PUSU_CH_LOAD_RESP: {
-    msg_fct( "[PUSU]>[RRM]:%d:PUSU_CH_LOAD_RESP\n",header->inst );
-  }
-  break ;
-
-  default :
-    fprintf(stderr,"PUSU:%d:\n",header->msg_type) ;
-    printHex(msg,len_msg,1) ;
-  }
-
-}
-
-//mod_lor_10_01_25++
-/*!
-*******************************************************************************
-\brief  traitement des messages entrant via IP
-
-\return Auncune valeur
-*/
-static void processing_msg_ip(
-  rrm_t       *rrm        , ///< Donnee relative a une instance du RRM
-  msg_head_t  *header     , ///< Entete du message
-  char        *msg        , ///< Message recu
-  int         len_msg       ///< Longueur du message
-)
-{
-#ifdef TRACE
-
-  //mod_lor_10_04_27++
-  /*if ( header->msg_type < NB_MSG_RRC_RRM )
-  fprintf(ip2rrm_fd,"%lf IP->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_rrc_rrm[header->msg_type], header->msg_type,header->Trans_id);
-  else
-  fprintf(ip2rrm_fd,"%lf CMM->RRM %-30s %d %d\n",get_currentclock(),"inconnu", header->msg_type,header->Trans_id);
-  fflush(ip2rrm_fd);*/
-  if ( header->msg_type < NB_MSG_IP )//mod_lor_10_04_27
-    fprintf(ip2rrm_fd,"%lf IP->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_ip[header->msg_type], header->msg_type,header->Trans_id);
-  else
-    fprintf(ip2rrm_fd,"%lf IP->RRM %-30s %d %d\n",get_currentclock(),"inconnu", header->msg_type,header->Trans_id);
-
-  fflush(ip2rrm_fd);
-  //mod_lor_10_04_27--
-#endif
-
-  switch ( header->msg_type ) {
-  case UPDATE_SENS_RESULTS_3 : {
-    //fprintf(stderr,"1node entry  @%p \n", rrm->rrc.pSensEntry);//dbg
-    rrm_update_sens_t *p = (rrm_update_sens_t *) msg ;
-
-    //fprintf(stdout,"Ip dest in FC before update%X\n",rrm_inst[0].ip.s->in_dest_addr.sin_addr.s_addr); //dbg
-    if (rrm->sensing.sens_active) { //mod_lor_10_05_07
-      msg_fct( "[IP]>[RRM]:%d:UPDATE_SENS_RESULTS_3 from %d \n",rrm->id, header->inst);
-
-      if (SCEN_1) {
-        if(update_sens_results( rrm->id, p->L2_id, p->NB_info, p->Sens_meas, p->info_time)||SN_waiting == 1) //mod_lor_10_06_02
-          if ((open_freq_query(rrm->id, rrm->L2_id, 0, 1)>0) && SN_waiting)   //mod_lor_10_06_02
-            SN_waiting=0; //mod_lor_10_06_02
-      } else if (SCEN_2_CENTR) { //add_lor_10_11_03
-        update_sens_results( rrm->id, p->L2_id, p->NB_info, p->Sens_meas, p->info_time);
-      }
-
-    } //mod_lor_10_05_07
-
-    //fprintf(stdout,"Ip dest in FC after update%X\n",rrm_inst[0].ip.s->in_dest_addr.sin_addr.s_addr); //dbg
-    //fprintf(stderr,"2node entry  @%p \n", rrm->rrc.pSensEntry);//dbg
-
-  }
-  break ;
-
-  //mod_lor_10_05_07++
-  case UP_CLUST_SENS_RESULTS : {
-    update_coll_sens_t *p = (update_coll_sens_t *) msg ;
-
-    if (rrm->sensing.sens_active) {
-      msg_fct( "[IP]>[RRM]:%d:UP_CLUST_SENS_RESULTS from %d \n",rrm->id, header->inst);
-
-      if (SCEN_2_CENTR && !COLL_CLUST)
-        plot_spectra_CH1(p->Sens_meas, p->NB_info,  -1);
-      else
-        printf("Error!!! this message should be received by Cluster 1\n");
-
-      up_coll_sens_results( rrm->id, p->L2_id, p->NB_info, p->Sens_meas, p->info_time);
-    }
-  }
-  break ;
-
-  //mod_lor_10_05_07--
-  case OPEN_FREQ_QUERY_4 : {
-    open_freq_query_t *p = (open_freq_query_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:OPEN_FREQ_QUERY_4 from %d\n",rrm->id, header->inst);
-    open_freq_query( rrm->id, p->L2_id, p->QoS, header->Trans_id );
-
-  }
-  break ;
-
-  case ASK_FREQ_TO_CH_3 : { //add_lor_10_11_03
-    ask_freq_to_CH_t *p = (ask_freq_to_CH_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:ASK_FREQ_TO_CH_3 from %d\n",rrm->id, header->inst);
-
-    if (ask_freq_to_CH( rrm->id, &(p->L2_id), &(p->L2_id_dest), 1, header->Trans_id )!=0) {
-      printf ("Not available channels... Waiting for a channel...\n");
-      pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-      memcpy(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][0].L2_id,p->L2_id.L2_id, sizeof(L2_ID));
-      memcpy(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][1].L2_id,p->L2_id_dest.L2_id, sizeof(L2_ID));
-      rrm->ip.users_waiting_update++;
-      printf ("N4 tot waiting: %d\n",rrm->ip.users_waiting_update);//db
-      pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-    }
-  }
-  break ;
-
-  case UPDATE_OPEN_FREQ_7 : {
-    update_open_freq_t *p = (update_open_freq_t *) msg ;
-    unsigned int occ_channels[p->NB_chan]; //mod_lor_10_05_18: occ_channels passed as parameter to update open freq.
-    msg_fct( "[IP]>[RRM]:%d:UPDATE_OPEN_FREQ_7 from %d\n",rrm->id, header->inst);
-    unsigned int NB_occ = update_open_freq( rrm->id, p->L2_id, p->NB_chan, occ_channels, p->channels, header->Trans_id );
-
-    if (SCEN_1)
-      plot_SN_channels(rrm->rrc.pChannelsEntry,NB_occ,occ_channels,rrm->id);//mod_lor_10_06_01
-  }
-  break ;
-
-  case UPDATE_SN_OCC_FREQ_5 : {
-    sleep (2); //mod_lor_10_06_02
-    update_SN_occ_freq_t *p = (update_SN_occ_freq_t *) msg ;
-
-    if (p->NB_chan<CH_NEEDED_FOR_SN)    //mod_lor_10_06_02
-      SN_waiting = 1;                 //mod_lor_10_06_02
-    else                                //mod_lor_10_06_02
-      SN_waiting = 0;                 //mod_lor_10_06_02
-
-    msg_fct( "[IP]>[RRM]:%d:UPDATE_SN_OCC_FREQ_5 from %d \n",rrm->id, header->inst);
-
-    if (SCEN_1)
-      plot_SN_channels(rrm->rrc.pChannelsEntry, p->NB_chan, p->occ_channels, rrm->id);//mod_lor_10_06_01
-
-    if(update_SN_occ_freq( rrm->id, p->L2_id, p->NB_chan, p->occ_channels, header->Trans_id )) //mod_lor_10_05_18
-      open_freq_query( rrm->id, p->L2_id, 0, header->Trans_id ); //mod_lor_10_05_18
-
-  }
-  break ;
-
-  //mod_lor_10_05_05++
-  case INIT_COLL_SENS_REQ : {
-    init_coll_sens_req_t *p = (init_coll_sens_req_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:INIT_COLL_SENS_REQ from %d\n",rrm->id, header->inst);
-    rrm->sensing.sens_active=1;//mod_lor_10_05_07
-    memcpy( rrm->L2_id_FC.L2_id, p->L2_id.L2_id, sizeof(L2_ID) );
-    cmm_init_sensing(rrm->id,p->Start_fr ,p->Stop_fr,p->Meas_band,p->Meas_tpf,
-                     p->Nb_channels, p->Overlap,p->Sampl_freq);
-
-  }
-  break ;
-
-  //mod_lor_10_05_05--
-  //mod_lor_10_05_06++
-  case STOP_COLL_SENS : {
-    //init_coll_sens_req_t *p = (init_coll_sens_req_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:STOP_COLL_SENS from %d\n",rrm->id, header->inst);
-    //memcpy( rrm->L2_id_FC.L2_id, p->L2_id.L2_id, sizeof(L2_ID) );
-    rrm->sensing.sens_active=0;//mod_lor_10_05_07
-    cmm_stop_sensing(rrm->id);
-
-  }
-  break ;
-
-  //mod_lor_10_05_06--
-  //mod_lor_10_05_12++
-  case STOP_COLL_SENS_CONF : {
-    stop_coll_sens_conf_t *p = (stop_coll_sens_conf_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:STOP_COLL_SENS_CONF from %d\n",rrm->id, header->inst);
-    rrc_end_scan_conf( header->inst, p->L2_id, header->Trans_id ); //AAA:to_check
-
-  }
-  break ;
-
-  //mod_lor_10_05_12--
-  case USER_DISCONNECT_9 : { //add_lor_10_11_09
-    user_disconnect_t *p = (user_disconnect_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:USER_DISCONNECT from %d\n",rrm->id, header->inst);
-    disconnect_user( rrm->id, p->L2_id );
-
-  }
-  break ;
-
-  case CLOSE_LINK : { //add_lor_10_11_09
-    close_link_t *p = (close_link_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:CLOSE_LINK from %d\n",rrm->id, header->inst);
-    close_active_link( rrm->id, p->L2_id, p->L2_id_dest );
-
-  }
-  break ;
-
-  default :
-    fprintf(stderr,"IP:\n") ;
-    printHex(msg,len_msg,1) ;
-  }
-}
-//mod_lor_10_01_25--
-
-
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages sortants sur les sockets
-        (rrc ou cmm).
-\return none
-*/
-static void rrm_scheduler ( )
-{
-  int ii ;
-  int no_msg ;
-  fprintf(stderr,"RRM Scheduler: starting ... \n");
-  fflush(stderr);
-  file_msg_t *pItem ;
-  //mod_lor_10_04_22++
-  unsigned int priority = 0; ///< to guarantee priority to one rrm (fusion center) during sensing period
-  unsigned int pr_ii = 0; ///< id of the rrm with priority
-  rrm_t      *rrm ;
-
-  //mod_lor_10_04_22--
-  while ( flag_not_exit) {
-    no_msg = 0  ;
-
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      //mod_lor_10_04_22++
-      if (priority) {
-        rrm = &rrm_inst[pr_ii] ;
-        ii--;
-        priority = 0;
-      }
-
-      else {
-        rrm = &rrm_inst[ii] ;
-
-        if (ii > 0 && rrm->sensing.sens_active)
-          priority = 1;
-      }
-
-      //mod_lor_10_04_22--
-      // rrm = &rrm_inst[ii] ;
-      pItem=NULL;
-
-      pItem = get_msg( &(rrm->file_recv_msg)) ;
-
-      if ( pItem == NULL )
-        no_msg++;
-      else {
-        msg_head_t *header = (msg_head_t *) pItem->msg;
-        char *msg = NULL ;
-
-        if ( header != NULL ) {
-          if ( header->size > 0 ) {
-            msg = (char *) (header +1) ;
-          }
-
-          //mod_lor_10_01_25
-          if (pItem->s_type==0) {
-            if ( pItem->s->s == rrm->cmm.s->s )
-              processing_msg_cmm( rrm , header , msg , header->size ) ;
-            else if ( pItem->s->s == rrm->rrc.s->s ) {
-              processing_msg_rrc( rrm , header , msg , header->size ) ;
-            } else if ( pItem->s->s == rrm->sensing.s->s) {
-              processing_msg_sensing( rrm , header , msg , header->size ) ;
-              //fprintf(stderr,"RRM Scheduler: sensing message ... \n"); //dbg
-            } else
-              processing_msg_pusu( rrm , header , msg , header->size ) ;
-          } else {
-            //fprintf(stderr,"RRM Scheduler: ip message ... \n"); //dbg
-            processing_msg_ip( rrm , header , msg , header->size ) ;
-
-          }
-
-          RRM_FREE( pItem->msg) ;
-        }
-
-        RRM_FREE( pItem ) ;
-      }
-    }
-
-    if ( no_msg == nb_inst )
-      usleep(1000);
-
-
-
-  }
-
-  fprintf(stderr,"... stopped RRM Scheduler\n");
-  fflush(stderr);
-}
-/*!
-*******************************************************************************
-\brief This function reads the configuration node file
-*/
-static void get_config_file(char *filename )
-{
-  FILE *fd = fopen( filename , "r" );
-  char buf_line[128] ;
-  int adresse[LENGTH_L2_ID] ;
-  int ii = 0 ;
-
-
-  if ( fd == NULL )
-    return ;
-
-  while ( 1 ) {
-    fgets( buf_line, 127, fd ) ;
-
-    if (feof(fd))
-      break ;
-
-    if ( buf_line[0] == '#' )
-      continue ;
-
-    if ( buf_line[0] == ' ' )
-      continue ;
-
-    if ( buf_line[0] == '\t' )
-      continue ;
-
-    if ( buf_line[0] == '\n' )
-      continue ;
-
-    sscanf( buf_line, "%x %x %x %x %x %x %x %x",
-            &adresse[0],&adresse[1],&adresse[2],&adresse[3],
-            &adresse[4],&adresse[5],&adresse[6],&adresse[7]);
-
-    rrm_inst[ii].id                 = ii ;
-    rrm_inst[ii].L2_id.L2_id[0]     = adresse[0] &  0xFF ;
-    rrm_inst[ii].L2_id.L2_id[1]     = adresse[1] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[2]     = adresse[2] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[3]     = adresse[3] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[4]     = adresse[4] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[5]     = adresse[5] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[6]     = adresse[6] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[7]     = adresse[7] &  0xFF;
-
-    print_L2_id( &rrm_inst[ii].L2_id ) ;
-    fprintf(stderr," (%d) %d \n", ii, buf_line[0] );
-
-    ii++ ;
-
-    adresse[0]=adresse[1]=adresse[2]=adresse[3]=adresse[4]=adresse[5]=adresse[6]=adresse[7]=0;
-    buf_line[0] = 0;
-  }
-
-  nb_inst = ii ;
-
-  fclose(fd) ;
-}
-/*!
-*******************************************************************************
-\brief This function displays the help message (syntax)
-*/
-static void help()
-{
-  fprintf(stderr,"syntax: rrm -i <nombre instance> \n" );
-  fprintf(stderr,"        rrm -f <config file> \n" );
-}
-
-/*!
-*******************************************************************************
-\brief programme principale du RRM
-*/
-int main( int argc , char **argv )
-{
-
-  int ii;
-  int c           =  0;
-  int ret         =  0;
-  int flag_cfg    =  0 ;
-  struct data_thread DataRrc;
-  struct data_thread DataCmm;
-  struct data_thread DataPusu;
-  struct data_thread DataSensing;
-
-  sock_rrm_int_t  DataIpS[MAX_RRM]; //mod_lor_10_01_25
-  pthread_attr_t attr ;
-
-
-
-  /* Vérification des arguments */
-  while ((c = getopt(argc,argv,"i:f:h")) != -1)
-    switch (c) {
-    case 'i':
-      nb_inst=atoi(optarg);
-      break;
-
-    case 'f':
-      get_config_file(optarg);
-      flag_cfg = 1 ;
-      break;
-
-    case 'h':
-      help();
-      exit(0);
-      break;
-
-    default:
-      help();
-      exit(0);
-    }
-
-  if (nb_inst <= 0 ) {
-    fprintf(stderr,"[RRM] Provide a node id\n");
-    exit(-1);
-  }
-
-  if (nb_inst >= MAX_RRM) {
-    fprintf(stderr,"[RRM] the instance number (%d) is upper than MAX_RRM (%d)\n", nb_inst, MAX_RRM);
-    exit(-1);
-  }
-
-#ifdef RRC_KERNEL_MODE
-  msg("RRM INIT :open fifos\n");
-
-  while (( Rrm_fifos.rrc_2_rrm_fifo= open ("/dev/rtf14", O_RDONLY )) < 0) {
-    printf("[RRM][INIT] open fifo  /dev/rtf14 returned %d\n", Rrm_fifos.rrc_2_rrm_fifo);
-    usleep(100);
-  }
-
-  printf ("[RRM][INIT] open fifo  /dev/rtf14 returned %d\n", Rrm_fifos.rrc_2_rrm_fifo);
-
-  while (( Rrm_fifos.rrm_2_rrc_fifo= open ("/dev/rtf15", O_WRONLY |O_NONBLOCK  | O_NDELAY)) < 0) {
-    //| O_BLOCK
-    printf("[RRM][INIT] open fifo  /dev/rtf15 returned %d\n", Rrm_fifos.rrm_2_rrc_fifo);
-    usleep(100);
-  }
-
-  printf("[RRM][INIT] open fifo  /dev/rtf15 returned %d\n", Rrm_fifos.rrm_2_rrc_fifo);
-#endif /* RRC_KERNEL_MODE */
-
-  /* ***** MUTEX ***** */
-  // initialise les attributs des threads
-  pthread_attr_init( &attr ) ;
-  pthread_attr_setschedpolicy( &attr, SCHED_RR ) ;
-
-  DataRrc.name        = "RRC" ;
-  DataRrc.sock_path_local = RRM_RRC_SOCK_PATH ;
-  DataRrc.sock_path_dest  = RRC_RRM_SOCK_PATH ;
-  DataRrc.s.s             = -1 ;
-
-  DataCmm.name        = "CMM" ;
-  DataCmm.sock_path_local = RRM_CMM_SOCK_PATH ;
-  DataCmm.sock_path_dest  = CMM_RRM_SOCK_PATH ;
-  DataCmm.s.s             = -1 ;
-
-  DataPusu.name           = "PUSU" ;
-  DataPusu.sock_path_local= RRM_PUSU_SOCK_PATH ;
-  DataPusu.sock_path_dest = PUSU_RRM_SOCK_PATH ;
-  DataPusu.s.s            = -1 ;
-
-  DataSensing.name           = "SENSING" ;
-  DataSensing.sock_path_local= RRM_SENSING_SOCK_PATH ;
-  DataSensing.sock_path_dest = SENSING_RRM_SOCK_PATH ;
-  DataSensing.s.s            = -1 ;
-
-#ifdef TRACE
-  cmm2rrm_fd  = fopen( "VCD/cmm2rrm.txt" , "w") ;
-  PNULL(cmm2rrm_fd) ;
-
-  rrc2rrm_fd  = fopen( "VCD/rrc2rrm.txt", "w") ;
-  PNULL(rrc2rrm_fd) ;
-
-  pusu2rrm_fd = fopen( "VCD/pusu2rrm.txt", "w") ;
-  PNULL(pusu2rrm_fd) ;
-
-  ip2rrm_fd = fopen( "VCD/ip2rrm.txt", "w") ;
-  PNULL(ip2rrm_fd) ;
-
-  sensing2rrm_fd = fopen( "VCD/sensing2rrm.txt", "w") ;
-  PNULL(sensing2rrm_fd) ;
-
-#endif
-  output_2 = fopen( "VCD/output_2.txt", "w") ; //mod_lor_10_04_20
-  PNULL(output_2) ; //mod_lor_10_04_20
-
-  for ( ii = 0 ; ii < nb_inst ; ii++ ) {
-    DataIpS[ii].s               = -1 ;    //mod_lor_10_01_25
-
-    if ( !flag_cfg ) {
-      rrm_inst[ii].id                 = ii ;
-      rrm_inst[ii].L2_id.L2_id[0]     = ii;
-      rrm_inst[ii].L2_id.L2_id[1]     = 0x00;
-      rrm_inst[ii].L2_id.L2_id[2]     = 0x00;
-      rrm_inst[ii].L2_id.L2_id[3]     = 0xDE;
-      rrm_inst[ii].L2_id.L2_id[4]     = 0xAD;
-      rrm_inst[ii].L2_id.L2_id[5]     = 0xBE;
-      rrm_inst[ii].L2_id.L2_id[6]     = 0xAF;
-      rrm_inst[ii].L2_id.L2_id[7]     = 0x00;
-    }
-
-    pthread_mutex_init( &( rrm_inst[ii].rrc.exclu ), NULL ) ;
-    pthread_mutex_init( &( rrm_inst[ii].cmm.exclu ), NULL ) ;
-    pthread_mutex_init( &( rrm_inst[ii].pusu.exclu ), NULL ) ;
-    pthread_mutex_init( &( rrm_inst[ii].sensing.exclu ), NULL ) ;
-    pthread_mutex_init( &( rrm_inst[ii].ip.exclu ), NULL ) ; //mod_lor_10_01_25
-
-    init_file_msg( &(rrm_inst[ii].file_recv_msg), 1 ) ;
-    init_file_msg( &(rrm_inst[ii].file_send_cmm_msg), 2 ) ;
-    init_file_msg( &(rrm_inst[ii].file_send_rrc_msg), 3 ) ;
-    init_file_msg( &(rrm_inst[ii].file_send_ip_msg), 4 ) ; //mod_lor_10_01_25
-    init_file_msg( &(rrm_inst[ii].file_send_sensing_msg), 5 ) ;
-
-
-    rrm_inst[ii].state              = ISOLATEDNODE ;
-    rrm_inst[ii].role               = NOROLE ;
-    rrm_inst[ii].cmm.trans_cnt      =  1024;
-    rrm_inst[ii].rrc.trans_cnt      =  2048;
-    rrm_inst[ii].pusu.trans_cnt     =  3072;
-    rrm_inst[ii].ip.trans_cnt       =  4096; //mod_lor_10_01_25
-    rrm_inst[ii].sensing.trans_cnt  =  5120; //mod_lor_10_01_25
-
-    rrm_inst[ii].rrc.s              = &DataRrc.s;
-    rrm_inst[ii].cmm.s              = &DataCmm.s;
-    rrm_inst[ii].pusu.s             = &DataPusu.s;
-    rrm_inst[ii].sensing.s          = &DataSensing.s;
-    rrm_inst[ii].ip.s               = &DataIpS[ii]; //mod_lor_10_01_25
-
-    rrm_inst[ii].rrc.transaction    = NULL ;
-    rrm_inst[ii].cmm.transaction    = NULL ;
-    rrm_inst[ii].pusu.transaction   = NULL ;
-    rrm_inst[ii].sensing.transaction= NULL ;
-
-    rrm_inst[ii].sensing.sens_active= 0;        //mod_lor_10_04_21
-    rrm_inst[ii].ip.users_waiting_update=0;     //add_lor_10_11_08
-    rrm_inst[ii].rrc.pNeighborEntry = NULL ;
-    rrm_inst[ii].rrc.pRbEntry       = NULL ;
-    rrm_inst[ii].rrc.pSensEntry     = NULL ;
-    rrm_inst[ii].rrc.pChannelsEntry = NULL ;
-
-  }
-
-
-
-  //open_socket( &DataRrc.s,  DataRrc.sock_path_local, DataRrc.sock_path_dest ,0 );
-
-  /* Creation du thread de reception des messages RRC*/
-  fprintf(stderr,"Creation du thread RRC : %d\n", nb_inst);
-#ifdef RRC_KERNEL_MODE
-  ret = pthread_create ( &pthread_recv_rrc_msg_hnd, NULL, thread_recv_msg_fifo , &DataRrc );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-#else
-  ret = pthread_create ( &pthread_recv_rrc_msg_hnd, NULL, thread_recv_msg , &DataRrc );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-#endif
-  /* Creation du thread de reception des messages CMM */
-  ret = pthread_create (&pthread_recv_cmm_msg_hnd , NULL, thread_recv_msg, &DataCmm );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  /* Creation du thread CMM d'envoi des messages */
-  ret = pthread_create (&pthread_send_cmm_msg_hnd, NULL, thread_send_msg_cmm, NULL );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  /* Creation du thread de reception des messages PUSU */
-  ret = pthread_create (&pthread_recv_pusu_msg_hnd , NULL, thread_recv_msg, &DataPusu );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  /* Creation du thread de reception des messages SENSING */
-  ret = pthread_create (&pthread_recv_sensing_msg_hnd , NULL, thread_recv_msg, &DataSensing );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  /* Creation du thread SENSING d'envoi des messages */
-  ret = pthread_create (&pthread_send_sensing_msg_hnd, NULL, thread_send_msg_sensing, NULL );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  /* Creation du thread RRC d'envoi des messages */
-  ret = pthread_create (&pthread_send_rrc_msg_hnd, NULL, thread_send_msg_rrc, NULL );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  //mod_lor_10_01_25++
-
-  /* Creation du thread IP d'envoi des messages */
-  ret = pthread_create (&pthread_send_ip_msg_hnd, NULL, thread_send_msg_ip, NULL );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  //mod_lor_10_01_25--*/
-
-  /* Creation du thread TTL */
-  ret = pthread_create (&pthread_ttl_hnd , NULL, thread_processing_ttl, NULL);
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  //mod_eure_lor++
-  if (FC_ID>=0 && SCEN_1) { //mod_lor_10_11_04
-    fl_initialize(&argc, argv, "SWN Spectral Measurements", 0, 0);
-    form = create_form_sensing_form();
-    fl_show_form(form->sensing_form,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Spectral Measurements");
-    fl_check_forms();
-  }
-
-  //mod_eure_lor--
-
-  //mod_lor_10_06_01++
-  if (BTS_ID>=0 && SCEN_1) { //mod_lor_10_11_04
-    //fl_initialize(&argc, argv, "Secondary Network Frequencies", 0, 0);
-    SN_form = create_form_Secondary_Network_frequencies();
-    fl_show_form(SN_form->Secondary_Network_frequencies,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Secondary Network Frequencies");
-    fl_check_forms();
-  }
-
-  //mod_lor_10_06_01--
-  //mod_lor_10_11_04++
-  if (SCEN_2_CENTR && COLL_CLUST) {
-    fl_initialize(&argc, argv, "Cluster 2", 0, 0);
-    Sens_form_CH2 = create_form_sens_scen_2();
-    fl_show_form(Sens_form_CH2->sens_scen_2,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Cluster 2: Sensing");
-    fl_check_forms();
-  }
-
-  if (SCEN_2_CENTR && !COLL_CLUST) {
-    fl_initialize(&argc, argv, "Cluster 1", 0, 0);
-    Sens_form_CH1 = create_form_sens_CH1_scen_2();
-    fl_show_form(Sens_form_CH1->sens_CH1_scen_2,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Cluster 1: Sensing");
-    fl_check_forms();
-
-    Chann_form = create_form_all_freq_to_users();
-    fl_show_form(Chann_form->all_freq_to_users,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Cluster 1: Used channels");
-    fl_check_forms();
-  }
-
-  //mod_lor_10_11_04--
-
-  /* main loop */
-  rrm_scheduler( ) ;
-
-  /* Attente de la fin des threads. */
-  pthread_join (pthread_recv_cmm_msg_hnd, NULL);
-  pthread_join (pthread_recv_rrc_msg_hnd, NULL);
-  pthread_join (pthread_recv_pusu_msg_hnd, NULL);
-  pthread_join (pthread_recv_sensing_msg_hnd, NULL);
-  pthread_join (pthread_send_cmm_msg_hnd, NULL);
-  pthread_join (pthread_send_rrc_msg_hnd, NULL);
-  pthread_join (pthread_send_sensing_msg_hnd, NULL);
-  pthread_join (pthread_send_ip_msg_hnd, NULL);
-  pthread_join (pthread_ttl_hnd, NULL);
-
-
-#ifdef TRACE
-  fclose(cmm2rrm_fd ) ;
-  fclose(rrc2rrm_fd ) ;
-  fclose(pusu2rrm_fd ) ;
-  fclose(sensing2rrm_fd ) ;
-
-#endif
-  fclose(output_2 ) ; //mod_lor_10_04_20
-
-  return 0 ;
-}
-
diff --git a/openair3/MESH/RRM/rrm.cfg b/openair3/MESH/RRM/rrm.cfg
deleted file mode 100644
index 255f3b195a..0000000000
--- a/openair3/MESH/RRM/rrm.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-# L2_ID  des noeuds
-0xAA 0x55 0x77 0x33 0xCC 0xFF 0xDD 0xBB
diff --git a/openair3/MESH/RRM/rrm.h b/openair3/MESH/RRM/rrm.h
deleted file mode 100644
index 56e84ded8a..0000000000
--- a/openair3/MESH/RRM/rrm.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrm.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-et des fonctions relatives aux fonctions du RRM (Radio Resource Management ).
-
-\author     BURLOT Pascal
-
-\date       15/07/08
-
-
-\par     Historique:
-P.BURLOT 2009-01-20
-+ separation de la file de message CMM/RRM a envoyer en 2 files
-distinctes ( file_send_cmm_msg, file_send_rrc_msg)
-L.IACOBELLI 2009-10-19
-+ sensing database
-+ Fusion centre and BTS role
-
-*******************************************************************************
-*/
-
-#ifndef RRM_H
-#define RRM_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
-*******************************************************************************
-\brief Nombre max. d'instance de RRM (Emulation)
-*/
-#define MAX_RRM     10
-
-
-/*!
-*******************************************************************************
-\brief Structure definissant une instance RRM
-*/
-
-
-typedef struct {
-  int  id                                 ; ///< identification de l'instance RRM
-  enum {
-    ISOLATEDNODE=0   , ///< Node is in a isolated State
-    CLUSTERHEAD_INIT0, ///< Node is in a Cluster Head initialization State
-    CLUSTERHEAD_INIT1, ///< Node is in a Cluster Head initialization State
-    CLUSTERHEAD      , ///< Node is in a Cluster Head State
-    MESHROUTER       , ///< Node is in a Mesh Router State
-  } state                             ; ///< etat de l'instance
-  enum {
-    NOROLE=0         , ///< Node has not a specific role
-    FUSIONCENTER     , ///< Node acts as Fusion Center
-    BTS              , ///< Node acts as BTS
-    CH_COLL            ///< Node acts as Cluster Head collaborating with the CH at the address L2_id_FC
-  } role                              ; ///< role of the node
-
-  L2_ID               L2_id               ; ///< identification de niveau L2
-  L2_ID               L2_id_FC            ; ///< Fusion Centre or Cluster Head address. In CH1 of sendora scenario 2 centralized it is the address of the other CH
-  L3_INFO_T           L3_info_t           ; ///< type de l'identification de niveau L3
-
-  unsigned char       L3_info[MAX_L3_INFO]; ///< identification de niveau L3
-  //mod_lor_10_01_25
-  unsigned char       L3_info_corr[MAX_L3_INFO]; ///< identification de niveau L3 du correspondant: FC si le noeud est un senseur ou la BS, BS si le noeud est le FC, CH1 for CH2, CH2 for CH1
-
-  file_head_t         file_send_cmm_msg   ; ///< File des messages en emission
-  file_head_t         file_send_rrc_msg   ; ///< File des messages en emission
-  file_head_t         file_send_sensing_msg   ; ///< File des messages en emission
-  file_head_t         file_send_ip_msg    ; ///< File des messages en emission //mod_lor_10_01_25
-  file_head_t         file_recv_msg       ; ///< File des messages en reception
-
-  struct {
-    sock_rrm_t      *s                  ; ///< Socket associé a l'interface CMM
-    unsigned int    trans_cnt           ; ///< Compteur de transaction avec l'interface CMM
-    transact_t     *transaction         ; ///< liste des transactions non terminees
-    pthread_mutex_t exclu               ; ///< mutex pour le partage de structure
-
-
-  } cmm                 ; ///<  info relatif a l'interface CMM
-
-  struct {
-#ifdef TRACE
-    FILE *fd              ; ///< Fichier pour trace de debug : action RRM->RRC
-#endif
-    sock_rrm_t    *s          ; ///< Socket associé a l'interface RRC
-    unsigned int  trans_cnt       ; ///< Compteur de transaction avec l'interface RRC
-    transact_t  *transaction    ; ///< liste des transactions non terminees
-    pthread_mutex_t exclu       ; ///< mutex pour le partage de structure
-
-    neighbor_desc_t *pNeighborEntry   ; ///< Descripteur sur le voisinage
-    RB_desc_t     *pRbEntry       ; ///< Descripteur sur les RB (radio bearer) ouverts
-    Sens_node_t     *pSensEntry       ; ///< Desrcipteur sur les info du sensing
-    CHANNELS_DB_T   *pChannelsEntry   ; ///< Desrcipteur sur les info des canaux
-  } rrc                 ; ///<  info relatif a l'interface rrc
-
-  struct {
-    sock_rrm_t      *s                  ; ///< Socket associé a l'interface PUSU
-    unsigned int    trans_cnt           ; ///< Compteur de transaction avec l'interface PUSU
-    transact_t      *transaction        ; ///< liste des transactions non terminees
-    pthread_mutex_t exclu               ; ///< mutex pour le partage de structure
-  } pusu                                ; ///<  info relatif a l'interface pusu
-
-  struct {
-    sock_rrm_t      *s                  ; ///< Socket associé a l'interface SENSING
-    unsigned int    trans_cnt           ; ///< Compteur de transaction avec l'interface SENSING
-    transact_t      *transaction        ; ///< liste des transactions non terminees
-    unsigned int    sens_active         ; ///< flag to determine if node is performing sensing //mod_lor_10_04_21
-    pthread_mutex_t exclu               ; ///< mutex pour le partage de structure
-  } sensing                           ; ///<  info relatif a l'interface SENSING
-
-  //mod_lor_10_04_20++
-  struct {
-    sock_rrm_t      *s                  ; ///< Socket associé a l'interface SENSING
-    pthread_mutex_t exclu               ; ///< mutex pour le partage de structure
-  } graph ;
-  //mod_lor_10_04_20--
-
-  //mod_lor_10_01_25++
-  struct {
-    sock_rrm_int_t  *s                                ; ///< Socket associé a l'IP
-    unsigned int    trans_cnt                         ; ///< Compteur de transaction avec l'interface IP
-    transact_t      *transaction                      ; ///< liste des transactions non terminees
-    unsigned int    waiting_SN_update                 ; ///< flag to know if an update is expected from SN about frequencies in use //mod_lor_10_05_18
-    unsigned int    users_waiting_update              ; ///< flag to know if there are users that wait for channels //add_lor_10_11_08
-    L2_ID           L2_id_wait_users[NB_SENS_MAX][2]  ; ///< vector of users waiting for channels //add_lor_10_11_08
-    pthread_mutex_t exclu                             ; ///< mutex pour le partage de structure
-  } ip                                  ; ///<  info relatif a l'interface IP
-  //mod_lor_10_01_25--
-
-} rrm_t ;
-
-extern rrm_t rrm_inst[MAX_RRM] ;
-extern int   nb_inst ;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* RRM_H */
diff --git a/openair3/MESH/RRM/rrm.sh b/openair3/MESH/RRM/rrm.sh
deleted file mode 100644
index 7f5133216b..0000000000
--- a/openair3/MESH/RRM/rrm.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-killall emul_int
-killall rrm
-
-xterm -T CMM -hold -e ./emul_int  &
-sleep 2
-./rrm -i 6  #2> log.txt
-#sleep 1
-#./emul_int
-
diff --git a/openair3/MESH/RRM/rrm_2_rrc_msg.c b/openair3/MESH/RRM/rrm_2_rrc_msg.c
deleted file mode 100644
index 245c73f58f..0000000000
--- a/openair3/MESH/RRM/rrm_2_rrc_msg.c
+++ /dev/null
@@ -1,838 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrm_2_rrc_msg.c
-
-\brief      Fonctions permettant le formattage des donnees pour l'envoi d'un
-            message sur le socket entre le  RRC et le RRM
-
-\author     BURLOT Pascal
-
-\date       16/07/08
-
-
-\par     Historique:
-        P.BURLOT 2009-01-20
-            + L2_id: ajout de memcpy() dans msg_rrci_cx_establish_resp()
-
-        L. IACOBELLI 2010-01-05
-            + new messages for sensing
-            + messages sent via ip
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include "L3_rrc_defs.h"
-#include "rrm_sock.h"
-#include "L3_rrc_interface.h"
-#include "rrc_rrm_msg.h"
-#include "rrm_util.h"
-
-#ifdef TRACE
-//! Macro creant la chaine a partir du nom de la variable
-#define STRINGIZER(x) #x
-//! Tableau pour le mode trace faisant la translation entre le numero et le nom du message
-const char *Str_msg_rrc_rrm[NB_MSG_RRC_RRM] = {
-  STRINGIZER(RRM_RB_ESTABLISH_REQ     ),
-  STRINGIZER(RRC_RB_ESTABLISH_RESP    ),
-  STRINGIZER(RRC_RB_ESTABLISH_CFM     ),
-  STRINGIZER(RRM_RB_MODIFY_REQ        ),
-  STRINGIZER(RRC_RB_MODIFY_RESP       ),
-  STRINGIZER(RRC_RB_MODIFY_CFM        ),
-  STRINGIZER(RRM_RB_RELEASE_REQ       ),
-  STRINGIZER(RRC_RB_RELEASE_RESP      ),
-  STRINGIZER(RRC_MR_ATTACH_IND        ),
-  STRINGIZER(RRM_SENSING_MEAS_REQ     ),
-  STRINGIZER(RRC_SENSING_MEAS_RESP    ),
-  STRINGIZER(RRC_CX_ESTABLISH_IND     ),
-  STRINGIZER(RRC_PHY_SYNCH_TO_MR_IND  ),
-  STRINGIZER(RRC_PHY_SYNCH_TO_CH_IND  ),
-  STRINGIZER(RRCI_CX_ESTABLISH_RESP   ),
-  STRINGIZER(RRC_SENSING_MEAS_IND     ),
-  STRINGIZER(RRM_SENSING_MEAS_RESP    ),
-  STRINGIZER(RRC_RB_MEAS_IND          ),
-  STRINGIZER(RRM_RB_MEAS_RESP         ),
-  STRINGIZER(RRM_INIT_CH_REQ          ),
-  STRINGIZER(RRM_INIT_MR_REQ          ),
-  STRINGIZER(RRM_INIT_MON_REQ         ),
-  STRINGIZER(RRM_INIT_SCAN_REQ        ),
-  STRINGIZER(RRC_INIT_SCAN_REQ        ),
-  STRINGIZER(UPDATE_SENS_RESULTS_3    ), //mod_lor_10_01_25
-  STRINGIZER(RRM_END_SCAN_REQ         ),
-  STRINGIZER(RRC_END_SCAN_REQ         ),
-  STRINGIZER(RRC_END_SCAN_CONF        ),
-  STRINGIZER(RRC_INIT_MON_REQ         ),
-  STRINGIZER(OPEN_FREQ_QUERY_4        ),
-  STRINGIZER(UPDATE_OPEN_FREQ_7       ),
-  STRINGIZER(UPDATE_SN_OCC_FREQ_5     ),
-  STRINGIZER(RRM_UP_FREQ_ASS          ),
-  STRINGIZER(RRM_END_SCAN_CONF        ),
-  STRINGIZER(RRC_UP_FREQ_ASS          ),//add_lor_10_11_05
-  STRINGIZER(RRM_UP_FREQ_ASS_SEC      ),//add_lor_10_11_05
-  STRINGIZER(RRC_UP_FREQ_ASS_SEC      )/*,//add_lor_10_11_05
-    STRINGIZER(RRM_OPEN_FREQ            ),
-    STRINGIZER(RRM_UPDATE_SN_FREQ       ),
-    STRINGIZER(RRC_UPDATE_SN_FREQ       ),
-    STRINGIZER(RRM_CLUST_SCAN_REQ       ),
-    STRINGIZER(RRC_CLUST_SCAN_REQ       ),
-    STRINGIZER(RRM_CLUST_SCAN_CONF      ),
-    STRINGIZER(RRM_CLUST_MON_REQ        ),
-    STRINGIZER(RRC_CLUST_MON_REQ        ),
-    STRINGIZER(RRM_CLUST_MON_CONF       ),
-    STRINGIZER(RRM_END_SCAN_CONF        ),
-    STRINGIZER(RRM_INIT_CONN_REQ        ),
-    STRINGIZER(RRC_INIT_CONN_CONF       ),
-    STRINGIZER(RRM_FREQ_ALL_PROP        ),
-    STRINGIZER(RRC_FREQ_ALL_PROP_CONF   ),
-    STRINGIZER(RRM_REP_FREQ_ALL         ),
-    STRINGIZER(RRC_REP_FREQ_ACK         ),
-    STRINGIZER(RRC_INIT_CONN_REQ        ),
-    STRINGIZER(RRM_CONN_SET             ),
-    STRINGIZER(RRC_FREQ_ALL_PROP        ),
-    STRINGIZER(RRM_FREQ_ALL_PROP_CONF   ),
-    STRINGIZER(RRC_REP_FREQ_ALL         ),
-    STRINGIZER(RRM_REP_FREQ_ACK         )  */
-
-} ;
-#endif
-
-/*!
-*******************************************************************************
-\brief  This function initialize the message header
-\return any return value
-*/
-static void init_rrc_msg_head(
-  msg_head_t    *msg_head , //!< message header to initialize
-  Instance_t     inst     , //!< instance ID
-  MSG_RRC_RRM_T  msg_type , //!< type of message to initialize
-  unsigned int   size     , //!< size of message
-  Transaction_t  Trans_id   //!< transaction id associated to this message
-)
-{
-  if ( msg_head != NULL ) {
-    msg_head->start    = START_MSG ;
-    msg_head->msg_type = 0xFF & msg_type ;
-    msg_head->inst     = inst  ;
-    msg_head->Trans_id = Trans_id  ;
-    msg_head->size     = size;
-  }
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_rb_establish_req().
-\return message formate
-*/
-msg_t *msg_rrm_rb_establish_req(
-  Instance_t               inst              , //!< instance ID
-  const LCHAN_DESC        *Lchan_desc        , //!< Logical Channel Descriptor Array
-  const MAC_RLC_MEAS_DESC *Mac_rlc_meas_desc , //!< MAC/RLC Measurement descriptors for RB
-  L2_ID                   *L2_id             , //!< Layer 2 (MAC) IDs for link
-  Transaction_t            Trans_id          , //!< Transaction ID
-  unsigned char           *L3_info           , //!< Optional L3 Information
-  L3_INFO_T                L3_info_t           //!< Type of L3 Information
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrm_rb_establish_req_t *p = RRM_CALLOC(rrm_rb_establish_req_t ,1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRM_RB_ESTABLISH_REQ, sizeof( rrm_rb_establish_req_t) ,Trans_id);
-
-      memcpy(&(p->Lchan_desc), Lchan_desc, sizeof(LCHAN_DESC) );
-      memcpy(&(p->Mac_rlc_meas_desc), Mac_rlc_meas_desc, sizeof(MAC_RLC_MEAS_DESC) );
-      memcpy(&(p->L2_id[0]), L2_id, 2*sizeof(L2_ID) ); // SRC+DST
-      p->L3_info_t    = L3_info_t ;
-
-      if ( L3_info_t != NONE_L3 )
-        memcpy( p->L3_info, L3_info, L3_info_t );
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_rb_modify_req().
-\return message formate
-*/
-msg_t *msg_rrm_rb_modify_req(
-  Instance_t               inst          , //!< instance ID
-  const LCHAN_DESC        *Lchan_desc    , //!< Logical Channel Descriptor Array
-  const MAC_RLC_MEAS_DESC *Mac_meas_desc , //!< MAC/RLC Measurement descriptors for RB
-  RB_ID                    Rb_id         , //!< Radio Bearer ID
-  Transaction_t            Trans_id        //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrm_rb_modify_req_t *p = RRM_CALLOC(rrm_rb_modify_req_t , 1) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRM_RB_MODIFY_REQ, sizeof( rrm_rb_modify_req_t) ,Trans_id);
-
-      memcpy(&(p->Lchan_desc), Lchan_desc, sizeof(LCHAN_DESC) );
-      memcpy(&(p->Mac_meas_desc), Mac_meas_desc, sizeof(MAC_RLC_MEAS_DESC) );
-
-      p->Rb_id    = Rb_id ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_rb_release_req().
-\return message formate
-*/
-msg_t *msg_rrm_rb_release_req(
-  Instance_t    inst     , //!< instance ID
-  RB_ID         Rb_id    , //!< Radio Bearer ID
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrm_rb_release_req_t *p = RRM_CALLOC(rrm_rb_release_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRM_RB_RELEASE_REQ, sizeof( rrm_rb_release_req_t) ,Trans_id);
-
-      p->Rb_id    = Rb_id ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_sensing_meas_req().
-\return message formate
-*/
-msg_t *msg_rrm_sensing_meas_req(
-  Instance_t          inst              , //!< instance ID
-  L2_ID               L2_id             , //!< Layer 2 (MAC) ID
-  SENSING_MEAS_DESC   Sensing_meas_desc , //!< Sensing Measurement Descriptor
-  Transaction_t       Trans_id            //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrm_sensing_meas_req_t *p = RRM_CALLOC(rrm_sensing_meas_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRM_SENSING_MEAS_REQ, sizeof( rrm_sensing_meas_req_t) ,Trans_id);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      memcpy(&(p->Sensing_meas_desc), &Sensing_meas_desc, sizeof(SENSING_MEAS_DESC)) ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-          rrci_cx_establish_resp().
-\return message formate
-*/
-msg_t * msg_rrci_cx_establish_resp(
-  Instance_t     inst      , //!< instance ID
-  Transaction_t  Trans_id  , //!< Transaction ID
-  L2_ID          L2_id     , //!< Layer 2 (MAC) ID
-  unsigned char *L3_info   , //!< Optional L3 Information
-  L3_INFO_T      L3_info_t   //!< Type of L3 Information
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrci_cx_establish_resp_t *p = RRM_CALLOC(rrci_cx_establish_resp_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRCI_CX_ESTABLISH_RESP, sizeof( rrci_cx_establish_resp_t ) ,Trans_id);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      p->L3_info_t    = L3_info_t     ;
-
-      if ( L3_info_t != NONE_L3 )
-        memcpy( p->L3_info, L3_info, L3_info_t );
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message generique de reponse pour les
-          fonctions :
-            - msg_rrm_sensing_meas_resp(),  msg_rrm_rb_meas_resp().
-\return message formate
-*/
-static msg_t *msg_rrm_generic_resp(
-  Instance_t    inst     , //!< instance ID
-  MSG_RRC_RRM_T msg_type , //!< type of message
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    init_rrc_msg_head(&(msg->head),inst,msg_type, 0, Trans_id);
-    msg->data = NULL ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_sensing_meas_resp().
-\return message formate
-*/
-msg_t * msg_rrm_sensing_meas_resp(
-  Instance_t    inst     , //!< instance ID
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  return msg_rrm_generic_resp( inst,RRM_SENSING_MEAS_RESP, Trans_id) ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_rb_meas_resp().
-\return message formate
-*/
-msg_t * msg_rrm_rb_meas_resp(
-  Instance_t    inst     , //!< instance ID
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  return msg_rrm_generic_resp( inst,RRM_RB_MEAS_RESP, Trans_id) ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_init_ch_req().
-\return message formate
-*/
-msg_t *msg_rrm_init_ch_req(
-  Instance_t        inst            , //!< instance ID
-  Transaction_t     Trans_id        , //!< Transaction ID
-  const LCHAN_DESC *Lchan_desc_srb0 , //!< Logical Channel Descriptor - SRB0
-  const LCHAN_DESC *Lchan_desc_srb1 , //!< Logical Channel Descriptor - SRB1
-  L2_ID             L2_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrm_init_ch_req_t *p = RRM_CALLOC(rrm_init_ch_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRM_INIT_CH_REQ, sizeof( rrm_init_ch_req_t ) ,Trans_id);
-
-      memcpy(&(p->Lchan_desc_srb0), Lchan_desc_srb0, sizeof(LCHAN_DESC) );
-      memcpy(&(p->Lchan_desc_srb1), Lchan_desc_srb1, sizeof(LCHAN_DESC) );
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_init_mr_req().
-\return message formate
-*/
-
-msg_t *msg_rrci_init_mr_req(
-  Instance_t        inst            , //!< instance ID
-  Transaction_t     Trans_id        , //!< Transaction ID
-  const LCHAN_DESC *Lchan_desc_srb0 , //!< Logical Channel Descriptor - SRB0
-  const LCHAN_DESC *Lchan_desc_srb1 , //!< Logical Channel Descriptor - SRB1
-  unsigned char     CH_index          //!< index to identify the CH
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrci_init_mr_req_t *p = RRM_CALLOC(rrci_init_mr_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRCI_INIT_MR_REQ, sizeof( rrci_init_mr_req_t ) ,Trans_id);
-
-      memcpy(&(p->Lchan_desc_srb0), Lchan_desc_srb0, sizeof(LCHAN_DESC) );
-      memcpy(&(p->Lchan_desc_srb1), Lchan_desc_srb1, sizeof(LCHAN_DESC) );
-      p->CH_index = CH_index ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_init_mon_req().
-\return message formate
-*/
-
-msg_t *msg_rrm_init_mon_req(
-  Instance_t        inst            , //!< instance ID
-  L2_ID             L2_id           ,
-  unsigned int      NB_chan         ,
-  unsigned int      interval        ,
-  unsigned int      *ch_to_scan     ,
-  Transaction_t     Trans_id          //!< Transaction ID
-
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof( rrm_init_mon_req_t ) + (NB_chan-1) * sizeof(unsigned int) ;
-
-    rrm_init_mon_req_t *p = RRM_CALLOC2(rrm_init_mon_req_t , size ) ;
-
-    if ( p != NULL ) {
-
-      //for (int i=0; i<NB_chan; i++)
-      //  fprintf(stdout,"msg_rrm_init_mon_req(), chan: %d\n", ch_to_scan[i]); //dbg
-      init_rrc_msg_head(&(msg->head),inst,RRM_INIT_MON_REQ, size ,Trans_id);
-
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      p->NB_chan = NB_chan;
-      p->interval = interval;
-
-      if ( NB_chan != 0 )
-        memcpy( p->ch_to_scan, ch_to_scan, NB_chan*sizeof(unsigned int) );
-
-
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_init_scan_req().
-\return message formate
-*/
-
-msg_t *msg_rrm_init_scan_req(
-  Instance_t       inst            , //!< instance ID
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq,
-  Transaction_t    Trans_id          //!< Transaction ID
-
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrm_init_scan_req_t *p = RRM_CALLOC(rrm_init_scan_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRM_INIT_SCAN_REQ, sizeof( rrm_init_scan_req_t ) ,Trans_id);
-
-      //mod_lor_10_03_12++
-      p->Start_fr     = Start_fr;
-      p->Stop_fr      = Stop_fr;
-      p->Meas_band    = Meas_band;
-      p->Meas_tpf     = Meas_tpf;
-      p->Nb_channels  = Nb_channels;
-      p->Overlap      = Overlap;
-      p->Sampl_freq   = Sampl_freq;
-      //mod_lor_10_03_12--
-
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_end_scan_req().
-\return message formate
-*/
-
-msg_t *msg_rrm_end_scan_req(
-  Instance_t    inst,
-  L2_ID         L2_id           ,
-  Transaction_t Trans_id
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    rrm_end_scan_req_t *p = RRM_CALLOC(rrm_end_scan_req_t , 1 ) ;
-
-    if ( p != NULL ) {
-      init_rrc_msg_head(&(msg->head),inst,RRM_END_SCAN_REQ, sizeof( rrm_end_scan_req_t ) ,Trans_id);
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-/*!//add_lor_10_11_05
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_up_freq_ass_sec().
-\return message formate
-*/
-
-msg_t *msg_rrm_up_freq_ass_sec(
-  Instance_t inst             , //!< instance ID
-  L2_ID *L2_id                , //!< Layer 2 (MAC) ID vector of SUs starting tx
-  L2_ID *L2_id_dest           , //!< Layer 2 (MAC) ID vector of SUs receiving tx
-  unsigned int NB_all         , //!< Number of allocated links
-  CHANNEL_T *ass_channels       //!< Vector of allocated links
-)
-
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-  int i;
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof(  rrm_up_freq_ass_sec_t );
-    //printf ("size rrm_up_freq_ass_t %d\n", size);//dbg
-    rrm_up_freq_ass_sec_t *p = RRM_CALLOC2( rrm_up_freq_ass_sec_t , size ) ;
-
-
-    if ( p != NULL ) {
-
-
-      init_rrc_msg_head(&(msg->head),inst,RRM_UP_FREQ_ASS_SEC, size,0);
-      p->NB_all = NB_all;
-
-      for (i=0; i<NB_all; i++) {
-        memcpy( p->L2_id[i].L2_id, L2_id[i].L2_id, sizeof(L2_ID) )  ;
-        memcpy( p->L2_id_dest[i].L2_id, L2_id_dest[i].L2_id, sizeof(L2_ID) )  ;
-      }
-
-      memcpy( p->ass_channels, ass_channels, NB_all*sizeof(CHANNEL_T) );
-
-    }
-
-    msg->data = (char *) p ;
-
-  }
-
-  return msg ;
-}
-
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_up_freq_ass().
-\return message formate
-*/
-
-msg_t *msg_rrm_up_freq_ass(
-  Instance_t inst             , //!< instance ID
-  L2_ID L2_id                 , //!< Layer 2 (MAC) ID of SU
-  unsigned int NB_chan        ,
-  CHANNEL_T *ass_channels
-)
-
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof(  rrm_up_freq_ass_t );// + (NB_chan-1) * sizeof(CHANNEL_T) ;//mod_lor_10_04_23
-    rrm_up_freq_ass_t *p = RRM_CALLOC2( rrm_up_freq_ass_t , size ) ;
-
-
-    if ( p != NULL ) {
-
-
-      init_rrc_msg_head(&(msg->head),inst,RRM_UP_FREQ_ASS, size,0);
-      p->NB_chan = NB_chan;
-      memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-      memcpy( p->ass_channels, ass_channels, NB_chan*sizeof(CHANNEL_T) );
-
-    }
-
-    msg->data = (char *) p ;
-
-  }
-
-  return msg ;
-}
-
-
-///! MESSAGES SENT VIA IP
-//mod_lor_10_04_27++
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        update_sens_results_3().
-\return message formate
-*/
-/*msg_t *msg_update_sens_results_3(
-    Instance_t inst,
-    L2_ID L2_id,                //!< FC L2_id
-    unsigned int NB_info,
-    Sens_ch_t *Sens_meas,
-    Transaction_t Trans_id
-    )
-{
-    msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-    if ( msg != NULL )
-    {
-        unsigned int size = sizeof( rrm_update_sens_t );// + (NB_info-1) * sizeof(Sens_ch_t) ; //mod_lor_10_04_23
-
-        rrm_update_sens_t *p = RRM_CALLOC2(rrm_update_sens_t , size ) ;
-
-        if ( p != NULL )
-        {
-            //fprintf(stderr,"rrmUSR 1 \n");//dbg
-            init_rrc_msg_head(&(msg->head),inst, UPDATE_SENS_RESULTS_3, size ,Trans_id);
-
-            memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-            p->NB_info       = NB_info    ;
-            p->info_time     = 0 ;
-
-            if ( NB_info > 0 )
-            {
-                memcpy( p->Sens_meas , Sens_meas, NB_info * sizeof(Sens_ch_t) )  ;
-            }
-            //fprintf(stdout,"msg_rrm_update_sens()2 : NB_chan %d\n", p->NB_info);//dbg
-            //fprintf(stdout,"NB_chan %d\n", p->NB_info);
-              //  for (int i=0; i<NB_info; i++)
-               // Sens_ch_t *ch = p->Sens_meas; ch!=NULL; ch=ch->next)
-            //fprintf(stdout,"channel in msg arr: %d\n", ch->Ch_id); //dbg
-
-        }
-        //fprintf(stderr,"rrmUSR end \n");//dbg
-        msg->data = (char *) p ;
-    }
-
-    return msg ;
-
-}*/
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        open_freq_query_4().
-\return message formate
-*//*
-msg_t *msg_open_freq_query_4(
-    Instance_t    inst,
-    L2_ID         L2_id           ,
-    QOS_CLASS_T   QoS             ,
-    Transaction_t Trans_id
-    )
-{
-    msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-    if ( msg != NULL )
-    {
-        open_freq_query_t *p = RRM_CALLOC(open_freq_query_t , 1 ) ;
-
-        if ( p != NULL )
-        {
-            init_rrc_msg_head(&(msg->head),inst,OPEN_FREQ_QUERY_4, sizeof( open_freq_query_t ) ,Trans_id);
-            memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-            p->QoS = QoS;
-        }
-        msg->data = (char *) p ;
-    }
-    return msg ;
-}*/
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_open_freq().
-\return message formate
-*//*
-msg_t *msg_update_open_freq_7(
-    Instance_t    inst,
-    L2_ID         L2_id           ,
-    unsigned int NB_free_ch,
-    CHANNEL_T *fr_channels,
-    Transaction_t Trans_id
-    )
-{
-    msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-    if ( msg != NULL )
-    {
-        unsigned int size = sizeof( update_open_freq_t );// + (NB_free_ch-1) * sizeof(CHANNEL_T) ;//mod_lor_10_04_23
-
-        update_open_freq_t *p = RRM_CALLOC2(update_open_freq_t , size ) ;
-
-        if ( p != NULL )
-        {
-            init_rrc_msg_head(&(msg->head),inst,UPDATE_OPEN_FREQ_7, size ,Trans_id);
-            memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-            p->NB_chan       = NB_free_ch    ;
-
-            if ( NB_free_ch > 0 )
-            {
-                memcpy( p->fr_channels , fr_channels, NB_free_ch * sizeof(CHANNEL_T) )  ;
-            }
-        }
-        msg->data = (char *) p ;
-    }
-    return msg ;
-}*/
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_update_SN_freq().
-\return message formate
-*/
-/*
-msg_t *msg_update_SN_occ_freq_5(
-        Instance_t inst             , //!< instance ID
-        L2_ID L2_id                 , //!< Layer 2 (MAC) ID of FC
-        unsigned int NB_chan        ,
-        unsigned int *occ_channels      ,
-        Transaction_t Trans_id        //!< Transaction ID
-        )
-
-{
-    msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-    //fprintf(stdout,"rrc_end_scan_ord() cp1\n"); //dbg
-
-    if ( msg != NULL )
-    {
-        unsigned int size = sizeof( update_SN_occ_freq_t );// + (NB_chan-1) * sizeof(unsigned int) ;//mod_lor_10_04_23
-        update_SN_occ_freq_t *p = RRM_CALLOC2(update_SN_occ_freq_t , size ) ;
-
-        if ( p != NULL )
-        {
-
-
-            init_rrc_msg_head(&(msg->head),inst,UPDATE_SN_OCC_FREQ_5, size,Trans_id);
-
-            memcpy( p->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-
-            p->NB_chan = NB_chan;
-            if ( NB_chan != 0 ){
-
-                memcpy( p->occ_channels, occ_channels, NB_chan*sizeof(unsigned int) );
-
-            }
-
-
-        }
-        msg->data = (char *) p ;
-
-    }
-    return msg ;
-}
-//mod_lor_10_04_27--*/
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        sns_end_scan_conf(). It sends confirmation of sensing interruprion to
-        the RRC that will informe the fusion center about it
-\return message formate
-*/
-msg_t * msg_rrm_end_scan_conf(
-  Instance_t    inst     , //!< instance ID
-  Transaction_t Trans_id   //!< Transaction ID
-)
-{
-  return msg_rrm_generic_resp( inst,RRM_END_SCAN_CONF, Trans_id) ;
-}
diff --git a/openair3/MESH/RRM/rrm_2_sensing_msg.c b/openair3/MESH/RRM/rrm_2_sensing_msg.c
deleted file mode 100644
index 5cd1d33133..0000000000
--- a/openair3/MESH/RRM/rrm_2_sensing_msg.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrm_2_rrc_msg.c
-
-\brief      Fonctions permettant le formattage des donnees pour l'envoi d'un
-            message sur le socket entre le  RRC et le RRM
-
-\author     BURLOT Pascal
-
-\date       16/07/08
-
-
-\par     Historique:
-        P.BURLOT 2009-01-20
-            + L2_id: ajout de memcpy() dans msg_rrci_cx_establish_resp()
-
-        L. IACOBELLI 2010-01-05
-            + new messages for sensing
-            + messages sent via ip
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include "L3_rrc_defs.h"
-//#include "rrm_sock.h"
-//#include "L3_rrc_interface.h"
-#include "sensing_rrm_msg.h"
-#include "rrm_util.h"
-
-#ifdef TRACE
-//! Macro creant la chaine a partir du nom de la variable
-#define STRINGIZER(x) #x
-//! Tableau pour le mode trace faisant la translation entre le numero et le nom du message
-const char *Str_msg_sns_rrm[NB_MSG_SNS_RRM] = {
-  STRINGIZER(SNS_UPDATE_SENS          ),
-  STRINGIZER(RRM_SCAN_ORD             ),
-  STRINGIZER(RRM_END_SCAN_ORD         ),
-  STRINGIZER(SNS_END_SCAN_CONF        )
-} ;
-#endif
-
-/*!
-*******************************************************************************
-\brief  This function initialize the message header
-\return any return value
-*/
-static void init_sensing_msg_head(
-  msg_head_t    *msg_head , //!< message header to initialize
-  Instance_t     inst     , //!< instance ID
-  MSG_SENSING_RRM_T  msg_type , //!< type of message to initialize
-  unsigned int   size     , //!< size of message
-  Transaction_t  Trans_id   //!< transaction id associated to this message
-)
-{
-  if ( msg_head != NULL ) {
-    msg_head->start    = START_MSG ;
-    msg_head->msg_type = 0xFF & msg_type ;
-    msg_head->inst     = inst  ;
-    msg_head->Trans_id = Trans_id  ;
-    msg_head->size     = size;
-  }
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_scan_ord().
-\return message formate
-*/
-
-msg_t *msg_rrm_scan_ord(
-  Instance_t inst             , ///< instance ID
-  unsigned int NB_chan        , ///< Number of channels to sens
-  unsigned int Meas_tpf       , ///< time on each carrier           //mod_lor_10_02_19
-  unsigned int Overlap        , ///< overlap factor (percentage)    //mod_lor_10_02_19
-  unsigned int Sampl_nb       , ///< number of samples per sub-band //mod_lor_10_04_01
-  Sens_ch_t    *ch_to_scan    , ///< Vector of channels to scan     //mod_lor_10_02_19
-  Transaction_t Trans_id        ///< Transaction ID
-
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    unsigned int size;
-    /*if ( NB_chan != 0 ){
-        size = sizeof( rrm_scan_ord_t ) + (NB_chan-1) * sizeof(unsigned int) ;
-
-    }else*/
-    size =  sizeof( rrm_scan_ord_t );
-    rrm_scan_ord_t *p = RRM_CALLOC2(rrm_scan_ord_t , size ) ;
-
-
-    if ( p != NULL ) {
-      init_sensing_msg_head(&(msg->head),inst,RRM_SCAN_ORD, size ,Trans_id);
-
-      p->Meas_tpf = Meas_tpf;     //mod_lor_10_02_19
-      p->Overlap = Overlap;       //mod_lor_10_02_19
-      p->Sampl_nb = Sampl_nb; //mod_lor_10_02_19
-      p->NB_chan = NB_chan;
-
-
-      if ( NB_chan != 0 ) {
-
-        memcpy( p->ch_to_scan, ch_to_scan, NB_chan*sizeof(Sens_ch_t) );
-
-      }
-
-      for (int i=0; i<NB_chan; i++)
-        printf("scan_ord i :%d, start %d, end %d sampl %d\n",i,p->ch_to_scan[i].Start_f,p->ch_to_scan[i].Final_f,Sampl_nb);
-
-    }
-
-    msg->data = (char *) p ;
-  }
-
-  return msg ;
-}
-
-
-
-/*!
-*******************************************************************************
-\brief  La fonction formate en un message les parametres de la fonction
-        rrm_end_scan_ord().
-\return message formate
-*/
-
-msg_t *msg_rrm_end_scan_ord(
-  Instance_t inst             , //!< instance ID
-  unsigned int NB_chan        ,
-  unsigned int *channels      ,
-  Transaction_t Trans_id        //!< Transaction ID
-)
-
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-  //fprintf(stdout,"rrc_end_scan_ord() cp1\n"); //dbg
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof( rrm_end_scan_ord_t ); //+ (NB_chan-1) * sizeof(unsigned int) ;
-    rrm_end_scan_ord_t *p = RRM_CALLOC2(rrm_end_scan_ord_t , size ) ;
-
-    if ( p != NULL ) {
-
-
-      init_sensing_msg_head(&(msg->head),inst,RRM_END_SCAN_ORD, size,Trans_id);
-
-
-      p->NB_chan = NB_chan;
-
-      if ( NB_chan != 0 ) {
-
-        memcpy( p->channels, channels, NB_chan*sizeof(unsigned int) );
-
-      }
-
-
-    }
-
-    msg->data = (char *) p ;
-
-  }
-
-  return msg ;
-}
-
diff --git a/openair3/MESH/RRM/rrm_5nodes.sh b/openair3/MESH/RRM/rrm_5nodes.sh
deleted file mode 100755
index 8fefb06439..0000000000
--- a/openair3/MESH/RRM/rrm_5nodes.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-killall emul_int
-killall rrm
-
-xterm -T CMM -hold -e ./emul_int  &
-sleep 2
-./rrm -i 5  #2> log.txt
-#sleep 1
-#./emul_int
-
diff --git a/openair3/MESH/RRM/rrm_SENS.sh b/openair3/MESH/RRM/rrm_SENS.sh
deleted file mode 100644
index e9041b120e..0000000000
--- a/openair3/MESH/RRM/rrm_SENS.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-killall emul_int
-killall graph
-killall rrm
-
-xterm -T COMMAND_CONSOLE -bg '#000000' -fg '#00ff00' -hold -e ./emul_int  &
-
-sleep 2
-
-#xterm -T RRM1 -hold -e 
-./rrm -i 1 #2> log.txt
-
-#sleep 1
-#./emul_int  &
-
-
diff --git a/openair3/MESH/RRM/rrm_SS2_CH1.sh b/openair3/MESH/RRM/rrm_SS2_CH1.sh
deleted file mode 100644
index 29da1e5968..0000000000
--- a/openair3/MESH/RRM/rrm_SS2_CH1.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-killall emul_int
-killall graph
-killall rrm
-
-xterm -T COMMAND_CONSOLE -bg '#000000' -fg '#00ff00' -hold -e ./emul_int  &
-sleep 2
-./rrm -i 4  #2> log.txt
-#sleep 1
-#./emul_int
-
diff --git a/openair3/MESH/RRM/rrm_SS2_global.sh b/openair3/MESH/RRM/rrm_SS2_global.sh
deleted file mode 100644
index df316762ff..0000000000
--- a/openair3/MESH/RRM/rrm_SS2_global.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-killall emul_int
-killall graph
-killall rrm
-
-xterm -T COMMAND_CONSOLE -bg '#000000' -fg '#00ff00' -hold -e ./emul_int  &
-
-sleep 2
-
-#xterm -T RRM1 -hold -e 
-./rrm -i 7 #2> log.txt
-
-#sleep 1
-#./emul_int  &
-
-
diff --git a/openair3/MESH/RRM/rrm_constant.c b/openair3/MESH/RRM/rrm_constant.c
deleted file mode 100644
index c0d6fbedf8..0000000000
--- a/openair3/MESH/RRM/rrm_constant.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrm_constant.c
-
-\brief      Il contient les declarations des constantes et tables relative aux
-            fonctions du RRM (Radio Resource Management ).
-
-\author     BURLOT Pascal
-
-\date       17/07/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-
-#include "L3_rrc_defs.h"
-
-#include "rrm_constant.h"
-
-#ifdef OPENAIR2
-#include "platform_constants.h"
-#else
-
-//Always synchronize with value in openair2/LAYER2/MAC/defs.h
-#define BCCH_PAYLOAD_SIZE_MAX 20
-#define CCCH_PAYLOAD_SIZE_MAX 28
-
-#endif
-
-/*! \todo a definir les valeurs par defaut */
-
-//! \brief descripteur de canal logique en fonction de la QoS
-const  LCHAN_DESC        Lchan_desc[MAX_QOS_CLASS] = {
-  //  Transport    Max    Guaranteed  Max  Delay Target  LCHAN_t
-  //    Block   Transport    Bit      Bit  Class  BLER
-  //    size      Blocks     Rate     Rate
-  { BCCH_PAYLOAD_SIZE_MAX, 15, 64,   128,    1,    0,   LCHAN_BCCH   }, // SRB0
-  { CCCH_PAYLOAD_SIZE_MAX, 15, 64,   128,    1,    0,   LCHAN_CCCH   }, // SRB1
-  {      30,       20,        64,    128,    1,    0,   LCHAN_DCCH   }, // SRB2
-  {      52,       20,        64,    128,    1,    0,   LCHAN_DTCH_B }, // DTCH_B
-  {      52,       20,        64,    128,    1,    0,   LCHAN_DTCH   },
-  {      52,       20,        64,    128,    1,    0,   LCHAN_DTCH   },
-  {      52,       20,        64,    128,    1,    0,   LCHAN_DTCH   },
-  {      52,       20,        64,    128,    1,    0,   LCHAN_DTCH   },
-  {      52,       20,        64,    128,    1,    0,   LCHAN_DTCH   },
-  {      52,       20,        64,    128,    1,    0,   LCHAN_DTCH   },
-};
-
-//! \brief descripteur de la confiuration des mesures en fonction de la QoS
-const MAC_RLC_MEAS_DESC Mac_rlc_meas_desc[MAX_QOS_CLASS] = {
-  /* 0 : QOS_CLASS = SRB0 */
-  {
-    .Meas_trigger={
-      .Rssi=0,.Sinr={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-      .Harq_delay=0,.Bler=0,.Spec_eff=0, .Qdepth = 0
-    } ,
-    .Mac_avg={
-      .Rssi_forgetting_factor=0,.Sinr_forgetting_factor=0,
-      .Harq_delay_forgetting_factor=0,.Bler_forgetting_factor=0,
-      .Spec_eff_forgetting_factor=0
-    } ,
-    .bo_forgetting_factor=0, .sdu_loss_trigger=0, .Rep_amount=0, .Rep_interval=0
-  },
-  /* 1 : QOS_CLASS = SRB1 */
-  {
-    .Meas_trigger={
-      .Rssi=0,.Sinr={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-      .Harq_delay=0,.Bler=0,.Spec_eff=0, .Qdepth = 0
-    } ,
-    .Mac_avg={
-      .Rssi_forgetting_factor=0,.Sinr_forgetting_factor=0,
-      .Harq_delay_forgetting_factor=0,.Bler_forgetting_factor=0,
-      .Spec_eff_forgetting_factor=0
-    } ,
-    .bo_forgetting_factor=0, .sdu_loss_trigger=0, .Rep_amount=0, .Rep_interval=0
-  },
-  /* 2 : QOS_CLASS = SRB2 */
-  {
-    .Meas_trigger={
-      .Rssi=0,.Sinr={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-      .Harq_delay=0,.Bler=0,.Spec_eff=0, .Qdepth = 0
-    } ,
-    .Mac_avg={
-      .Rssi_forgetting_factor=0,.Sinr_forgetting_factor=0,
-      .Harq_delay_forgetting_factor=0,.Bler_forgetting_factor=0,
-      .Spec_eff_forgetting_factor=0
-    } ,
-    .bo_forgetting_factor=0, .sdu_loss_trigger=0, .Rep_amount=0, .Rep_interval=0
-  },
-  /* 3 : QOS_CLASS = DTCH_B */
-  {
-    .Meas_trigger={
-      .Rssi=0,.Sinr={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-      .Harq_delay=0,.Bler=0,.Spec_eff=0, .Qdepth = 0
-    } ,
-    .Mac_avg={
-      .Rssi_forgetting_factor=0,.Sinr_forgetting_factor=0,
-      .Harq_delay_forgetting_factor=0,.Bler_forgetting_factor=0,
-      .Spec_eff_forgetting_factor=0
-    } ,
-    .bo_forgetting_factor=0, .sdu_loss_trigger=0, .Rep_amount=0, .Rep_interval=0
-  },
-  /* 4 : QOS_CLASS  */
-  {
-    .Meas_trigger={
-      .Rssi=0,.Sinr={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-      .Harq_delay=0,.Bler=0,.Spec_eff=0, .Qdepth = 0
-    } ,
-    .Mac_avg={
-      .Rssi_forgetting_factor=0,.Sinr_forgetting_factor=0,
-      .Harq_delay_forgetting_factor=0,.Bler_forgetting_factor=0,
-      .Spec_eff_forgetting_factor=0
-    } ,
-    .bo_forgetting_factor=0, .sdu_loss_trigger=0, .Rep_amount=0, .Rep_interval=0
-  },
-  /* 5 : QOS_CLASS  = CSCH */
-  {
-    .Meas_trigger={
-      .Rssi=0,.Sinr={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-      .Harq_delay=0,.Bler=0,.Spec_eff=0, .Qdepth = 0
-    } ,
-    .Mac_avg={
-      .Rssi_forgetting_factor=0,.Sinr_forgetting_factor=0,
-      .Harq_delay_forgetting_factor=0,.Bler_forgetting_factor=0,
-      .Spec_eff_forgetting_factor=0
-    } ,
-    .bo_forgetting_factor=0, .sdu_loss_trigger=0, .Rep_amount=0, .Rep_interval=0
-  },
-  /* 6 : QOS_CLASS  = CPCH */
-  {
-    .Meas_trigger={
-      .Rssi=0,.Sinr={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-      .Harq_delay=0,.Bler=0,.Spec_eff=0, .Qdepth = 0
-    } ,
-    .Mac_avg={
-      .Rssi_forgetting_factor=0,.Sinr_forgetting_factor=0,
-      .Harq_delay_forgetting_factor=0,.Bler_forgetting_factor=0,
-      .Spec_eff_forgetting_factor=0
-    } ,
-    .bo_forgetting_factor=0, .sdu_loss_trigger=0, .Rep_amount=0, .Rep_interval=0
-  },
-  /* 7 : QOS_CLASS  */
-  {
-    .Meas_trigger={
-      .Rssi=0,.Sinr={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-      .Harq_delay=0,.Bler=0,.Spec_eff=0, .Qdepth = 0
-    } ,
-    .Mac_avg={
-      .Rssi_forgetting_factor=0,.Sinr_forgetting_factor=0,
-      .Harq_delay_forgetting_factor=0,.Bler_forgetting_factor=0,
-      .Spec_eff_forgetting_factor=0
-    } ,
-    .bo_forgetting_factor=0, .sdu_loss_trigger=0, .Rep_amount=0, .Rep_interval=0
-  },
-  /* 8 : QOS_CLASS  */
-  {
-    .Meas_trigger={
-      .Rssi=0,.Sinr={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-      .Harq_delay=0,.Bler=0,.Spec_eff=0, .Qdepth = 0
-    } ,
-    .Mac_avg={
-      .Rssi_forgetting_factor=0,.Sinr_forgetting_factor=0,
-      .Harq_delay_forgetting_factor=0,.Bler_forgetting_factor=0,
-      .Spec_eff_forgetting_factor=0
-    } ,
-    .bo_forgetting_factor=0, .sdu_loss_trigger=0, .Rep_amount=0, .Rep_interval=0
-  },
-  /* 9 : QOS_CLASS  */
-  {
-    .Meas_trigger={
-      .Rssi=0,.Sinr={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-      .Harq_delay=0,.Bler=0,.Spec_eff=0, .Qdepth = 0
-    } ,
-    .Mac_avg={
-      .Rssi_forgetting_factor=0,.Sinr_forgetting_factor=0,
-      .Harq_delay_forgetting_factor=0,.Bler_forgetting_factor=0,
-      .Spec_eff_forgetting_factor=0
-    } ,
-    .bo_forgetting_factor=0, .sdu_loss_trigger=0, .Rep_amount=0, .Rep_interval=0
-  }
-};
-
-//! \brief descripteur de la configuration des mesures de voisinage
-const SENSING_MEAS_DESC Sensing_meas_desc = {
-  //  RSSI_Threshold    RSSI_F_Factor      Rep_interval
-  0,                  0,              0
-};
-
-
-
-
diff --git a/openair3/MESH/RRM/rrm_constant.h b/openair3/MESH/RRM/rrm_constant.h
deleted file mode 100644
index 7abbf5bb31..0000000000
--- a/openair3/MESH/RRM/rrm_constant.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file     rrm_constant.h
-
-\brief    Fichier d'entete contenant les declarations des types, des defines ,
-      et des fonctions relatives aux constantes du RRM
-      (Radio Resource Management ).
-
-\author   BURLOT Pascal
-
-\date     15/07/08
-
-
-\par     Historique:
-      $Author$  $Date$  $Revision$
-      $Id$
-      $Log$
-
-*******************************************************************************
-*/
-
-#ifndef RRM_CONSTANT_H
-#define RRM_CONSTANT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//! Index QoS pour le radio Bearer SRB0
-#define QOS_SRB0    0
-//! Index QoS pour le radio Bearer SRB1
-#define QOS_SRB1    1
-//! Index QoS pour le radio Bearer SRB2
-#define QOS_SRB2    2
-//! Index QoS pour le radio Bearer DTCH_B
-#define QOS_DTCH_B    3
-//! Index QoS pour le radio Bearer DTCH_D
-#define QOS_DTCH_D    4
-//! Index QoS pour le radio Bearer DTCH_USER1
-#define QOS_DTCH_USER1  5
-//! Index QoS pour le radio Bearer DTCH_USER2
-#define QOS_DTCH_USER2  6
-//! Index QoS pour le radio Bearer DTCH_USER3
-#define QOS_DTCH_USER3  7
-//! Index QoS pour le radio Bearer DTCH_USER4
-#define QOS_DTCH_USER4  8
-//! Index QoS pour le radio Bearer DTCH_USER5
-#define QOS_DTCH_USER5  9
-//! Nombre d'index de QoS
-#define MAX_QOS_CLASS   10
-
-
-extern const  LCHAN_DESC        Lchan_desc[MAX_QOS_CLASS] ;
-extern const  MAC_RLC_MEAS_DESC Mac_rlc_meas_desc[MAX_QOS_CLASS] ;
-extern const SENSING_MEAS_DESC  Sensing_meas_desc ;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* RRM_CONSTANT_H */
diff --git a/openair3/MESH/RRM/rrm_graph.c b/openair3/MESH/RRM/rrm_graph.c
deleted file mode 100644
index db05b7a602..0000000000
--- a/openair3/MESH/RRM/rrm_graph.c
+++ /dev/null
@@ -1,2833 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrm_graph.c
-
-\brief      RRM (Radio Ressource Manager )
-
-            Cette application a pour objet
-                - de gérer la ressource radio du cluster
-                - de commander le RRC pour l'ouverture de RB
-                - de recevoir des commandes du CMM
-                - de gérer le voisinage
-
-\author     IACOBELLI Lorenzo
-
-\date       20/04/2010
-
-
-\par     Historique:
-
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <fcntl.h>
-#include <pthread.h>
-
-#include "debug.h"
-
-#include "L3_rrc_defs.h"
-#include "L3_rrc_interface.h"
-#include "cmm_rrm_interface.h"
-#include "rrm_sock.h"
-#include "rrc_rrm_msg.h"
-#include "ip_msg.h" //mod_lor_10_04_27
-#include "sensing_rrm_msg.h"
-#include "cmm_msg.h"
-#include "pusu_msg.h"
-#include "msg_mngt.h"
-#include "neighbor_db.h"
-#include "rb_db.h"
-#include "sens_db.h"
-#include "channels_db.h"
-#include "transact.h"
-#include "rrm_constant.h"
-#include "rrm_util.h"
-#include "rrm.h"
-
-#include "forms.h" //mod_eure_lor
-#include "sensing_form.h"//mod_eure_lor
-#include "SN_freq_form.h" //mod_lor_10_06_01
-#include "sens_scen_2_form.h"       //mod_lor_10_11_04
-#include "all_freq_to_users_form.h" //mod_lor_10_11_04
-#include "sens_CH1_scen_2.h"        //mod_lor_10_11_04
-#include "sens_sensor.h"        //mod_lor_11_02_18
-
-
-/*
-** ----------------------------------------------------------------------------
-** DEFINE LOCAL
-** ----------------------------------------------------------------------------
-*/
-//mod_lor_10_05_18++
-/*!
-*******************************************************************************
-\brief Definition of IP @ in main entities. i.e. they have to correspond
-        to the ones in node_info vector in emul_interface.c
-*/
-static unsigned char FC_L3id [4]= {0xC0,0xA8,0x0C,0x14};
-static unsigned char BTS_L3id [4]= {0x0A,0x00,0x02,0x02};
-static unsigned char CH_COLL_L3id [4]= {0x0A,0x00,0x02,0x02};
-FD_sensing_form *form;
-FD_Secondary_Network_frequencies *SN_form; //mod_lor_10_06_01
-FD_sens_scen_2 *Sens_form_CH2;             //mod_lor_10_11_04
-FD_all_freq_to_users *Chann_form;          //mod_lor_10_11_04
-FD_sens_CH1_scen_2 *Sens_form_CH1;         //mod_lor_10_11_04
-FD_sens_sensor *Sens_sensor_form;             //mod_lor_11_02_18
-static int SN_waiting = 0; //mod_lor_10_06_02
-//mod_lor_10_05_18--
-/*
-** ----------------------------------------------------------------------------
-** DECLARATION DE NOUVEAU TYPE
-** ----------------------------------------------------------------------------
-*/
-
-/*!
-*******************************************************************************
-\brief Structure de data passe en parametre au threads
-*/
-struct data_thread {
-  char *name              ; ///< Nom du thread
-  char *sock_path_local   ; ///< fichier du "rrm->..." pour le socket Unix
-  char *sock_path_dest    ; ///< fichier du "...->rrm " pour le socket Unix
-  sock_rrm_t  s           ; ///< Descripteur du socket
-}  ;
-
-//mod_lor_10_01_25++
-struct data_thread_int {
-  char *name              ; ///< Nom du thread
-  unsigned char *sock_path_local  ; ///< local IP address for internet socket
-  int local_port          ; ///< local IP port for internet socket
-  unsigned char *sock_path_dest   ; ///< dest IP address for internet socket
-  int dest_port           ; ///< dest IP port for internet socket
-  sock_rrm_int_t  s       ; ///< Descripteur du socket
-  int instance            ; ///<instance rrm
-}  ;
-//mod_lor_10_01_25--
-
-#ifdef RRC_KERNEL_MODE
-
-#define RRC2RRM_FIFO 14
-#define RRM2RRC_FIFO 15
-
-#define RX_MSG_STARTED 0; //mod_lor_10_01_25
-/*!
-*******************************************************************************
-\brief Structure regroupant les handles des fifos pour la communication en
-       mode KERNEL
-*/
-typedef struct {
-  int rrc_2_rrm_fifo;
-  int rrm_2_rrc_fifo;
-} RRM_FIFOS;
-
-#endif /* RRC_KERNEL_MODE */
-
-/*
-** ----------------------------------------------------------------------------
-** DECLARATION DES VARIABLES GLOBALES PUBLIQUES
-** ----------------------------------------------------------------------------
-*/
-rrm_t rrm_inst[MAX_RRM] ;
-int   nb_inst = -1 ;
-
-/*
-** ----------------------------------------------------------------------------
-** DECLARATION DES VARIABLES GLOBALES PRIVEES
-** ----------------------------------------------------------------------------
-*/
-#ifdef RRC_KERNEL_MODE
-static RRM_FIFOS Rrm_fifos;
-#endif
-
-static int flag_not_exit = 1 ;
-static pthread_t pthread_recv_rrc_msg_hnd,
-       pthread_recv_cmm_msg_hnd ,
-
-       pthread_send_rrc_msg_hnd ,
-
-       pthread_send_cmm_msg_hnd ,
-
-       pthread_recv_pusu_msg_hnd ,
-       pthread_recv_sensing_msg_hnd ,
-       pthread_send_sensing_msg_hnd ,
-
-       pthread_recv_int_msg_hnd ,
-       pthread_send_ip_msg_hnd ,
-
-       pthread_ttl_hnd ;
-static unsigned int cnt_timer = 0;
-static float st_fr = 2.385e6; //mod_lor_10_06_01
-static float end_fr = 2.412e6; //mod_lor_10_06_01
-
-#ifdef TRACE
-static FILE *cmm2rrm_fd  = NULL ;
-static FILE *rrc2rrm_fd  = NULL ;
-static FILE *pusu2rrm_fd = NULL ;
-static FILE *sensing2rrm_fd = NULL ;
-static FILE *ip2rrm_fd = NULL ;
-#endif
-static FILE *output_2 = NULL; //mod_lor_10_04_20
-
-/*
-** ----------------------------------------------------------------------------
-** DECLARATION DES FONCTIONS
-** ----------------------------------------------------------------------------
-*/
-/*!
-*******************************************************************************
-\brief  Comparaison de deux ID de niveau 2
-
-\return si 0 alors les IDs sont identiques
-*/
-static int L2_ID_cmp(
-  L2_ID *L2_id1, ///< ID de niveau 2
-  L2_ID *L2_id2  ///< ID de niveau 2
-)
-{
-  return memcmp( L2_id1, L2_id2, sizeof(L2_ID) ) ;
-}
-
-//mod_eure_lor++
-/*!
-*******************************************************************************
-\brief  function to plot the spectrum sensing results
-
-\return NULL
-*/
-
-void plot_spectra(Sens_ch_t *S, unsigned int NB_info, FD_sensing_form *form, unsigned int sensor)
-{
-
-  float f[MAX_NUM_SB*NB_info],spec_dBm[MAX_NUM_SB*NB_info];
-  //float f[100],spec_dBm[100];
-  float Start_fr, Final_fr;//add_lor_11_02_16
-  Start_fr = st_fr; //add_lor_11_02_16
-  Final_fr = end_fr;//add_lor_11_02_16
-  unsigned int tot_sub_bands = MAX_NUM_SB*NB_info;
-  unsigned int SB_BW;
-  int i, j, k=0;
-
-  //printf("nb_info %d tot sub: %d \n",NB_info, tot_sub_bands);//dbg
-  // Compute frequencies and store in f
-  for (i=0; i<NB_info ; i++) {
-    SB_BW = (S[i].Final_f-S[i].Start_f)/MAX_NUM_SB;
-
-    for (j=0; j< MAX_NUM_SB; j++) {
-      f[k]=S[i].Start_f+(SB_BW*j)+(SB_BW/2);
-      // Transfer power measurements to spec_dBm (float)
-      spec_dBm[k] = S[i].mu0[j];
-
-      //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-      k++;
-    }
-  }
-
-  /* printf("Before for \n");
-
-   for (i=0;i<100 ;i++) {
-
-           f[i]=i/100.0;
-           // Transfer power measurements to spec_dBm (float)
-           spec_dBm[i] = rand()%20;
-
-           //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]);
-
-
-   }
-   printf("After for %d\n",i);
-   fl_set_xyplot_xbounds(form->spec_SN1,(float)0.0,(float)1.1);
-   fl_set_xyplot_ybounds(form->spec_SN1,(float)0,(float)20);
-   fl_set_xyplot_data(form->spec_SN1,f,spec_dBm,100,"","","");*/
-  //printf("In plot graph of sensor: %d\n", sensor);//dbg
-  if (sensor == 1) {
-    fl_set_xyplot_xbounds(form->spec_SN1,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(form->spec_SN1,0,50);
-
-    fl_set_xyplot_data(form->spec_SN1,f,spec_dBm,tot_sub_bands,"","","");
-  } else if (sensor == 2) {
-    fl_set_xyplot_xbounds(form->spec_SN2,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(form->spec_SN2,0,50);
-
-    fl_set_xyplot_data(form->spec_SN2,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == 3) {
-    fl_set_xyplot_xbounds(form->spec_SN3,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(form->spec_SN3,-115,-70);
-
-    fl_set_xyplot_data(form->spec_SN3,f,spec_dBm,tot_sub_bands,"","","");
-  } else
-    printf("Error! Sensor %d not considered",sensor);
-
-  fl_check_forms();
-}
-//mod_eure_lor--
-//mod_lor_10_06_01++
-/*!
-*******************************************************************************
-\brief  function to plot the selected channels
-
-\return NULL
-*/
-
-void plot_SN_channels(CHANNELS_DB_T *channels_db, unsigned int NB_info, unsigned int *selected, /*FD_Secondary_Network_frequencies *SN_form,*/ unsigned int rrm_id)
-{
-
-  float f[SB_NEEDED_FOR_SN*NB_info],spec_dBm[SB_NEEDED_FOR_SN*NB_info];
-  CHANNELS_DB_T *pCurrent;
-  //float f[100],spec_dBm[100];
-  unsigned int tot_sub_bands = SB_NEEDED_FOR_SN*NB_info;
-  unsigned int SB_BW;
-  float Start_fr, Final_fr;
-  int i, j, k=0;
-  printf("nb_info %d tot sub: %d \n",NB_info, tot_sub_bands);//dbg
-
-  // Compute frequencies and store in f
-  for (i=0; i<NB_info ; i++) {
-    pCurrent = get_chann_db_info(channels_db,selected[i]);
-    SB_BW = (pCurrent->channel.Final_f-pCurrent->channel.Start_f)/SB_NEEDED_FOR_SN;
-
-    for (j=0; j< SB_NEEDED_FOR_SN; j++) {
-      f[k]=pCurrent->channel.Start_f+(SB_BW*j)+(SB_BW/2);
-      // Transfer power measurements to spec_dBm (float)
-      spec_dBm[k] = 1;
-      //printf ("for k = %d f: %f; spec_dBm %f\n",k,f[k], spec_dBm[k]);//dbg
-      //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-      k++;
-    }
-  }
-
-  Start_fr = st_fr;
-  Final_fr = end_fr;
-  printf ("start: %f; end %f\n",f[0], f[k-1]);//dbg
-
-  if (rrm_id == BTS_ID) {
-    fl_set_xyplot_xbounds(SN_form->Selected_frequencies,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(SN_form->Selected_frequencies,0,2);
-
-    fl_set_xyplot_data(SN_form->Selected_frequencies,f,spec_dBm,tot_sub_bands,"","","");
-  } else if (rrm_id == FC_ID) {
-    fl_set_xyplot_xbounds(form->Secondary_Network_frequencies,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(form->Secondary_Network_frequencies,0,2);
-
-    fl_set_xyplot_data(form->Secondary_Network_frequencies,f,spec_dBm,tot_sub_bands,"","","");
-  }
-
-  fl_check_forms();
-}
-//mod_lor_10_06_01--
-//add_lor_10_11_04++
-/*!
-*******************************************************************************
-\brief  function to plot the spectrum sensing results in cluster 1
-
-\return NULL
-*/
-void plot_spectra_CH1(Sens_ch_t *S, unsigned int NB_info, /*FD_sens_CH1_scen_2 *Sens_form_CH1,*/ int sensor)
-{
-
-  float f[MAX_NUM_SB*NB_info],spec_dBm[MAX_NUM_SB*NB_info];
-  //float f[100],spec_dBm[100];
-  float Start_fr, Final_fr;//add_lor_11_01_10
-  Start_fr = st_fr; //add_lor_11_01_10
-  Final_fr = end_fr;//add_lor_11_01_10
-  unsigned int tot_sub_bands = MAX_NUM_SB*NB_info;
-  unsigned int SB_BW;
-  int i, j, k=0;
-
-  //printf("nb_info %d tot sub: %d \n",NB_info, tot_sub_bands);//dbg
-  // Compute frequencies and store in f
-  if (sensor!=-1) {
-    for (i=0; i<NB_info ; i++) {
-      SB_BW = (S[i].Final_f-S[i].Start_f)/MAX_NUM_SB;
-
-      for (j=0; j< MAX_NUM_SB; j++) {
-        f[k]=S[i].Start_f+(SB_BW*j)+(SB_BW/2);
-        // Transfer power measurements to spec_dBm (float)
-        spec_dBm[k] = S[i].mu0[j];
-        //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-        k++;
-      }
-    }
-  } else {
-    for (i=0; i<NB_info ; i++) {
-      SB_BW = (S[i].Final_f-S[i].Start_f)/MAX_NUM_SB;
-
-      for (j=0; j< MAX_NUM_SB; j++) {
-        f[k]=S[i].Start_f+(SB_BW*j)+(SB_BW/2);
-        // Transfer power measurements to spec_dBm (float)
-        spec_dBm[k] = (S[i].is_free[j]+1)%2;
-        //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-        k++;
-      }
-    }
-  }
-
-  if (sensor == 1) {
-    fl_set_xyplot_xbounds(Sens_form_CH1->User_1_sens,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH1->User_1_sens,0,50);
-
-    fl_set_xyplot_data(Sens_form_CH1->User_1_sens,f,spec_dBm,tot_sub_bands,"","","");
-
-  } else if (sensor == 2) {
-    fl_set_xyplot_xbounds(Sens_form_CH1->User_2_sens,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH1->User_2_sens,0,50);
-
-    fl_set_xyplot_data(Sens_form_CH1->User_2_sens,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == 3) {
-    fl_set_xyplot_xbounds(Sens_form_CH1->User_3_sens,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH1->User_3_sens,0,50);
-
-    fl_set_xyplot_data(Sens_form_CH1->User_3_sens,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == 4) {
-    fl_set_xyplot_xbounds(Sens_form_CH1->User_4_sens,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH1->User_4_sens,-110,-80);
-
-    fl_set_xyplot_data(Sens_form_CH1->User_4_sens,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == -1) {
-    fl_set_xyplot_xbounds(Sens_form_CH1->Cluster_2_sensing,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH1->Cluster_2_sensing,0,2);
-
-    fl_set_xyplot_data(Sens_form_CH1->Cluster_2_sensing,f,spec_dBm,tot_sub_bands,"","","");
-  } else
-    printf("Error! User %d not considered 1",sensor); //mod_lor_10_12_07
-
-  fl_check_forms();
-
-}
-
-/*!
-*******************************************************************************
-\brief  function to plot the spectrum sensing results of collaborative cluster 2
-
-\return NULL
-*/
-void plot_spectra_CH2(Sens_ch_t *S, unsigned int NB_info, /*FD_sensing_form *form,*/ unsigned int sensor)
-{
-
-  float f[MAX_NUM_SB*NB_info],spec_dBm[MAX_NUM_SB*NB_info];
-  //float f[100],spec_dBm[100];
-  float Start_fr, Final_fr;//add_lor_11_01_10
-  Start_fr = st_fr; //add_lor_11_01_10
-  Final_fr = end_fr;//add_lor_11_01_10
-  unsigned int tot_sub_bands = MAX_NUM_SB*NB_info;
-  unsigned int SB_BW;
-  int i, j, k=0;
-
-  for (i=0; i<NB_info ; i++) {
-    SB_BW = (S[i].Final_f-S[i].Start_f)/MAX_NUM_SB;
-
-    for (j=0; j< MAX_NUM_SB; j++) {
-      f[k]=S[i].Start_f+(SB_BW*j)+(SB_BW/2);
-      // Transfer power measurements to spec_dBm (float)
-      spec_dBm[k] = S[i].mu0[j];
-      //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-      k++;
-    }
-  }
-
-  if (sensor == 1) {
-    fl_set_xyplot_xbounds(Sens_form_CH2->User_1,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH2->User_1,0,50);
-
-    fl_set_xyplot_data(Sens_form_CH2->User_1,f,spec_dBm,tot_sub_bands,"","","");
-  } else if (sensor == 2) {
-    fl_set_xyplot_xbounds(Sens_form_CH2->User_2,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH2->User_2,0,50);
-
-    fl_set_xyplot_data(Sens_form_CH2->User_2,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == 3) {
-    fl_set_xyplot_xbounds(Sens_form_CH2->User_3,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH2->User_3,-110,-80);
-
-    fl_set_xyplot_data(Sens_form_CH2->User_3,f,spec_dBm,tot_sub_bands,"","","");
-  } else if(sensor == 4) {
-    fl_set_xyplot_xbounds(Sens_form_CH2->User_4,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-    fl_set_xyplot_ybounds(Sens_form_CH2->User_4,-110,-80);
-
-    fl_set_xyplot_data(Sens_form_CH2->User_4,f,spec_dBm,tot_sub_bands,"","","");
-  } else
-    printf("Error! User %d not considered 2",sensor); //mod_lor_10_12_07
-
-  fl_check_forms();
-}
-
-//mod_lor_11_02_18++
-/*!
-*******************************************************************************
-\brief  function to plot the spectrum sensing results of collaborative cluster 2
-
-\return NULL
-*/
-void plot_spectra_sensor(Sens_ch_t *S, unsigned int NB_info)
-{
-
-  float f[NUM_SB*NB_info],spec_dBm[NUM_SB*NB_info];
-  //float f[100],spec_dBm[100];
-  float Start_fr, Final_fr;//add_lor_11_01_10
-  Start_fr = st_fr; //add_lor_11_01_10
-  Final_fr = end_fr;//add_lor_11_01_10
-  unsigned int tot_sub_bands = NUM_SB*NB_info;
-  unsigned int SB_BW;
-  int i, j, k=0;
-
-  if (NB_info>0) {
-    Start_fr = S[0].Start_f; //add_lor_11_01_10
-    Final_fr = S[NB_info-1].Final_f;//add_lor_11_01_10
-  }
-
-  for (i=0; i<NB_info ; i++) {
-    SB_BW = (S[i].Final_f-S[i].Start_f)/NUM_SB;
-
-    for (j=0; j< NUM_SB; j++) {
-      f[k]=S[i].Start_f+(SB_BW*j)+(SB_BW/2);
-      // Transfer power measurements to spec_dBm (float)
-      spec_dBm[k] = S[i].mu0[j];
-      //printf("S[i].Start_f %d S[i].mu0[j] %d freq: %f spec_dBm %f \n",S[i].Start_f,  S[i].mu0[j], f[k],  spec_dBm[k]); //dbg
-      k++;
-    }
-  }
-
-  fl_set_xyplot_xbounds(Sens_sensor_form->local_sensing_results,Start_fr,Final_fr);//(float)S[0].Start_f,(float)S[NB_info-1].Final_f);
-  fl_set_xyplot_ybounds(Sens_sensor_form->local_sensing_results,-115,0);
-
-  fl_set_xyplot_data(Sens_sensor_form->local_sensing_results,f,spec_dBm,tot_sub_bands,"","","");
-
-  fl_check_forms();
-}
-//mod_lor_11_02_18--
-/*!
-*******************************************************************************
-\brief  function to plot the attributed channel
-
-\return NULL
-*/
-
-void plot_all_chann_scen_2(unsigned int *tx, unsigned int *chann_start, unsigned int *chann_end, unsigned int NB_info, unsigned int rrm_id)
-{
-
-  float Start_fr, Final_fr;
-
-  float f[SB_NEEDED_FOR_SN*NB_info], spec_dBm[SB_NEEDED_FOR_SN*NB_info];
-  Start_fr = st_fr;
-  Final_fr = end_fr;
-
-  unsigned int tot_sub_bands = SB_NEEDED_FOR_SN*NB_info;
-  unsigned int SB_BW ;
-
-  int i, j, k=0;
-
-  printf ("rrm_id: %d; num_info %d\n",rrm_id, NB_info);//dbg
-
-  // Compute frequencies and store in f
-  for (i=0; i<NB_info ; i++) {
-    SB_BW = (chann_end[i]-chann_start[i])/SB_NEEDED_FOR_SN;
-
-    for (j=0; j< SB_NEEDED_FOR_SN; j++) {
-      f[k]=chann_start[i]+(SB_BW*j)+(SB_BW/2);
-
-      if (tx[i]==1)
-        spec_dBm[k] = 2;
-      else
-        spec_dBm[k] = 1;
-
-      k++;
-    }
-  }
-
-  printf("tot sub: %d k %d\n",tot_sub_bands,k);//dbg
-  printf ("start: %f; end %f\n",f[0], f[k-1]);//dbg
-
-  if (rrm_id == 1) {
-    fl_set_xyplot_xbounds(Chann_form->User_1_channels,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(Chann_form->User_1_channels,0,3);
-    fl_set_xyplot_data(Chann_form->User_1_channels,f,spec_dBm,tot_sub_bands,"","","");
-
-  } else if (rrm_id == 2) {
-    fl_set_xyplot_xbounds(Chann_form->User_2_channels,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(Chann_form->User_2_channels,0,3);
-    fl_set_xyplot_data(Chann_form->User_2_channels,f,spec_dBm,tot_sub_bands,"","","");
-
-  } else if (rrm_id == 3) {
-    fl_set_xyplot_xbounds(Chann_form->User_3_channels,Start_fr,Final_fr);
-    fl_set_xyplot_ybounds(Chann_form->User_3_channels,0,3);
-    fl_set_xyplot_data(Chann_form->User_3_channels,f,spec_dBm,tot_sub_bands,"","","");
-
-  }/*else if (rrm_id == 4){
-
-        fl_set_xyplot_xbounds(Chann_form->User_4_channels,Start_fr,Final_fr);
-        fl_set_xyplot_ybounds(Chann_form->User_4_channels,0,3);
-        fl_set_xyplot_data(Chann_form->User_4_channels,f,spec_dBm,tot_sub_bands,"","","");
-
-    }*/else
-    printf("Error! User %d not considered 3",rrm_id);
-
-  fl_check_forms();
-}
-//add_lor_10_11_04--
-//mod_lor_10_04_20++
-static msg_t *msg_graph_resp(
-  Instance_t    inst     , //!< instance ID
-  int msg_type  //!< type of message
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    msg->head.start    = START_MSG ;
-    msg->head.msg_type = 0xFF & msg_type ;
-    msg->head.inst     = inst  ;
-    msg->head.Trans_id = 0  ;
-    msg->head.size     = 0;
-    msg->data = NULL ;
-  }
-
-  return msg ;
-}
-
-//mod_lor_10_04_20--
-//mod_lor_10_04_21++
-typedef struct {
-  unsigned int        NB_chan              ; //!< Number of channels
-  unsigned int        NB_val               ; //!< Number of values
-  unsigned int        channels[3*NB_SENS_MAX]; //!< Vector of channels //mod_lor_10_07_01: 3*NB_SENS_MAX instead of NB_SENS_MAX
-  unsigned int        val[3*NB_SENS_MAX]    ; //!< Vector of values  //mod_lor_10_07_01: 3*NB_SENS_MAX instead of NB_SENS_MAX
-} gen_sens_info_t ;
-//mod_lor_10_11_09++
-
-
-static msg_t *msg_generic_sens_resp(
-  Instance_t   inst     , //!< instance ID
-  int          msg_type,  //!< type of message
-  unsigned int NB_chan,//!< Number of channels
-  unsigned int NB_val , //!< Number of values
-  unsigned int *channels, //!< Vector of channels
-  unsigned int *val    , //!< Vector of values
-  Transaction_t trans
-)
-{
-  msg_t *msg = RRM_CALLOC(msg_t , 1 ) ;
-
-  if ( msg != NULL ) {
-    unsigned int size = sizeof( gen_sens_info_t );
-    gen_sens_info_t *p = RRM_CALLOC(gen_sens_info_t  ,1 ) ;
-
-    if ( p != NULL ) {
-      msg->head.start    = START_MSG ;
-      msg->head.msg_type = 0xFF & msg_type ;
-      msg->head.inst     = inst  ;
-      msg->head.Trans_id = trans  ;
-      msg->head.size     = size;
-
-      p->NB_chan = NB_chan;
-
-      if ( NB_chan != 0 )
-        memcpy( p->channels, channels, NB_chan*sizeof(unsigned int) );
-
-      p->NB_val = NB_val;
-
-      if ( NB_chan != 0 )
-        memcpy( p->val, val, NB_val*sizeof(unsigned int) );
-
-    }
-
-    msg->data = (char *) p ;
-
-
-  }
-
-  return msg ;
-
-
-}
-
-//mod_lor_10_04_21--
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des ttl des transactions (rrc ou cmm).
-
-\return NULL
-*/
-static void * thread_processing_ttl (
-  void * p_data /**< parametre du pthread */
-)
-{
-  int ii ;
-  fprintf(stderr,"TTL :starting ... \n");
-  fflush(stdout);
-
-  while ( flag_not_exit) {
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      rrm_t *rrm = &rrm_inst[ii] ;
-
-      pthread_mutex_lock(   &( rrm->cmm.exclu )  ) ;
-      dec_all_ttl_transact( rrm->cmm.transaction ) ;
-      // Trop simpliste et pas fonctionnel , il faut faire une gestion des erreurs de transaction
-      //if (rrm->cmm.transaction!=NULL)
-      //  fprintf(stderr,"delete on cmm of %d\n", ii); //dbg
-      del_all_obseleted_transact( &(rrm->cmm.transaction));
-      pthread_mutex_unlock( &( rrm->cmm.exclu )  ) ;
-
-      pthread_mutex_lock(   &( rrm->rrc.exclu )  ) ;
-      dec_all_ttl_transact( rrm->rrc.transaction ) ;
-      // idem :commentaire ci-dessus
-      //if (rrm->rrc.transaction!=NULL)
-      //  fprintf(stderr,"delete on rrc of %d\n", ii); //dbg
-      del_all_obseleted_transact( &(rrm->rrc.transaction));
-      pthread_mutex_unlock( &( rrm->rrc.exclu )  ) ;
-
-      pthread_mutex_lock(   &( rrm->pusu.exclu )  ) ;
-      dec_all_ttl_transact( rrm->pusu.transaction ) ;
-      // idem :commentaire ci-dessus
-      del_all_obseleted_transact( &(rrm->pusu.transaction));
-      pthread_mutex_unlock( &( rrm->pusu.exclu )  ) ;
-
-      pthread_mutex_lock(   &( rrm->sensing.exclu )  ) ;
-      dec_all_ttl_transact( rrm->sensing.transaction ) ;
-      // idem :commentaire ci-dessus
-      del_all_obseleted_transact( &(rrm->sensing.transaction));
-      pthread_mutex_unlock( &( rrm->sensing.exclu )  ) ;
-
-      //mod_lor_10_01_25++
-      pthread_mutex_lock(   &( rrm->ip.exclu )  ) ;
-      dec_all_ttl_transact( rrm->ip.transaction ) ;
-      // idem :commentaire ci-dessus
-      del_all_obseleted_transact( &(rrm->ip.transaction));
-      pthread_mutex_unlock( &( rrm->ip.exclu )  ) ;
-      //mod_lor_10_01_25--*/
-
-    }
-
-    cnt_timer++;
-    usleep( 2000*1000 ) ;//mod_lor_10_03_01: incrementing timeout
-  }
-
-  fprintf(stderr,"... stopped TTL\n");
-  fflush(stdout);
-  return NULL;
-
-}
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages sortants sur les sockets (rrc ou cmm).
-
-\return NULL
-*/
-static void * thread_send_msg_cmm (
-  void * p_data /**< parametre du pthread */
-)
-{
-  int ii ;
-  int no_msg ;
-  fprintf(stderr,"Thread Send Message: starting ... \n");
-  fflush(stderr);
-  file_msg_t *pItem ;
-
-  while ( flag_not_exit) {
-    no_msg = 0  ;
-
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      rrm_t      *rrm = &rrm_inst[ii] ;
-
-      pItem = get_msg( &(rrm->file_send_cmm_msg) ) ;
-
-
-      if ( pItem == NULL )
-        no_msg++;
-      else {
-        int r =  send_msg( pItem->s, pItem->msg );
-        WARNING(r!=0);
-      }
-
-      RRM_FREE( pItem ) ;
-    }
-
-    if ( no_msg==nb_inst ) // Pas de message
-      usleep(1000);
-  }
-
-  fprintf(stderr,"... stopped Thread Send Message\n");
-  fflush(stderr);
-  return NULL;
-}
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages sortants sur les sockets (rrc ou cmm).
-
-\return NULL
-*/
-static void * thread_send_msg_rrc (
-  void * p_data /**< parametre du pthread */
-)
-{
-  int ii ;
-
-  int no_msg ;
-  fprintf(stderr,"Thread Send Message To RRC: starting ... \n");
-  fflush(stderr);
-  file_msg_t *pItem ;
-
-  while ( flag_not_exit) {
-    no_msg = 0  ;
-
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      rrm_t      *rrm = &rrm_inst[ii] ;
-
-      pItem = get_msg( &(rrm->file_send_rrc_msg) ) ;
-
-
-      if ( pItem == NULL )
-        no_msg++;
-      else {
-
-#ifdef RRC_KERNEL_MODE
-        // envoi du header
-        status = write (Rrm_fifos.rrm_2_rrc_fifo,(char*) pItem->msg, sizeof(msg_head_t) );
-
-        if ( pItem->msg->head.size >0)
-          status = write (Rrm_fifos.rrm_2_rrc_fifo,(pItem->msg)->data, pItem->msg->head.size);
-
-        //printf( "status write: %d \n",status);
-        //printf("send msg to rrc [%d] id msg: %d \n", (pItem->msg)->head.inst, (pItem->msg)->head.msg_type );
-#else
-        int r =  send_msg( pItem->s, pItem->msg );
-        WARNING(r!=0);
-#endif
-      }
-
-      RRM_FREE( pItem ) ;
-    }
-
-    if ( no_msg==nb_inst ) // Pas de message
-      usleep(1000);
-  }
-
-  fprintf(stderr,"... stopped Thread Send Message\n");
-  fflush(stderr);
-  return NULL;
-}
-
-//mod_lor_10_01_25++
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages sortants sur les sockets (rrc ou cmm).
-
-\return NULL
-*/
-static void * thread_send_msg_ip (
-  void * p_data /**< parametre du pthread */
-)
-{
-  int ii ;
-  int no_msg ;
-  fprintf(stderr,"Thread Send Message IP: starting ... \n");
-  fflush(stderr);
-  file_msg_t *pItem ;
-
-  while ( flag_not_exit) {
-    no_msg = 0  ;
-
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      rrm_t      *rrm = &rrm_inst[ii] ;
-
-      pItem = get_msg( &(rrm->file_send_ip_msg) ) ;
-
-
-      if ( pItem == NULL )
-        no_msg++;
-      else {
-        //fprintf(stderr,"Thread Send Message inst %d socket %d\n", ii, rrm->ip.s->s); //dbg
-        // if (pItem->msg->head.msg_type == 26)
-        //   msg_fct( "IP -> UPDATE_SENSING_RESULTS_3 inst: %d sockid %d\n", ii, rrm->ip.s->s);//dbg
-        //msg_fct( "before send_msg_int msg: %d socket %d\n", pItem->msg->head.msg_type, rrm->ip.s->s);//dbg
-        int r =  send_msg_int( rrm->ip.s, pItem->msg );
-        //msg_fct( "after send_msg_int \n");//dbg
-
-        WARNING(r!=0);
-      }
-
-      RRM_FREE( pItem ) ;
-    }
-
-    if ( no_msg==nb_inst ) // Pas de message
-      usleep(1000);
-  }
-
-  fprintf(stderr,"... stopped Thread Send Message\n");
-  fflush(stderr);
-  return NULL;
-}
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages sortants sur les sockets (rrc ou cmm).
-
-\return NULL
-*/
-static void * thread_send_msg_sensing (
-  void * p_data /**< parametre du pthread */
-)
-{
-  int ii ;
-
-  int no_msg ;
-  fprintf(stderr,"Thread Send Message To Sensing Unit: starting ... \n");
-  fflush(stderr);
-  file_msg_t *pItem ;
-
-  while ( flag_not_exit) {
-    no_msg = 0  ;
-
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      rrm_t      *rrm = &rrm_inst[ii] ;
-
-      pItem = get_msg( &(rrm->file_send_sensing_msg) ) ;
-
-
-      if ( pItem == NULL )
-        no_msg++;
-      else {
-
-        int r =  send_msg( pItem->s, pItem->msg );
-        WARNING(r!=0);
-
-      }
-
-      RRM_FREE( pItem ) ;
-    }
-
-    if ( no_msg==nb_inst ) // Pas de message
-      usleep(1000);
-  }
-
-  fprintf(stderr,"... stopped Thread Send Message\n");
-  fflush(stderr);
-  return NULL;
-}
-
-//mod_lor_10_01_25--*/
-
-
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages entrant sur une interface (rrc, cmm ou sensing).
-
-\return NULL
-*/
-
-static void * thread_recv_msg (
-  void * p_data /**< parametre du pthread */
-)
-{
-  msg_t *msg ;
-  struct data_thread *data = (struct data_thread *) p_data;
-  int sock ;
-
-  fprintf(stderr,"%s interfaces :starting ... %s %s\n",data->name , data->sock_path_local, data->sock_path_dest);
-  fflush(stderr);
-
-  /* ouverture des liens de communications */
-  sock = open_socket( &data->s,  data->sock_path_local, data->sock_path_dest ,0 );
-
-  if ( sock != -1 ) {
-    fprintf(stderr,"   %s -> socket =  %d\n",data->name , sock );
-    fflush(stderr);
-
-    while (flag_not_exit) {
-      msg = (msg_t *) recv_msg(&data->s) ;
-
-      if (msg == NULL ) {
-        fprintf(stderr,"Server closed connection\n");
-        flag_not_exit = 0;
-      } else {
-        int inst = msg->head.inst ;
-        rrm_t      *rrm = &rrm_inst[inst];
-
-        put_msg( &(rrm->file_recv_msg), 0, &data->s, msg) ;//mod_lor_10_01_25
-      }
-    }
-
-    close_socket(&data->s) ;
-  }
-
-  fprintf(stderr,"... stopped %s interfaces\n",data->name);
-  return NULL;
-}
-
-//mod_lor_10_01_25++
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages entrant via ip.
-
-\return NULL
-*/
-
-static void * thread_recv_msg_int (
-  void * p_data /**< parametre du pthread */
-)
-{
-  msg_t *msg ;
-  struct data_thread_int *data = (struct data_thread_int *) p_data;
-  rrm_t      *rrm = &rrm_inst[data->instance];
-  int sock ;
-
-  fprintf(stderr,"%s interfaces :starting on inst. %d ... ",data->name, data->instance  );
-  fprintf(stderr,"\n");//dbg
-
-  fflush(stderr);
-
-  /* ouverture des liens de communications */
-  sock = open_socket_int( &data->s,  data->sock_path_local, data->local_port, data->sock_path_dest, data->dest_port,0 );
-  data->s.s = sock;
-  memcpy(rrm->ip.s, &(data->s), sizeof(sock_rrm_int_t));
-
-  if ( sock != -1 ) {
-    fprintf(stderr,"   %s -> socket =  %d\n",data->name , sock );
-    fflush(stderr);
-
-    while (flag_not_exit) {
-
-      msg = (msg_t *) recv_msg_int(rrm->ip.s) ;
-
-      if (msg == NULL ) {
-        fprintf(stderr,"Server closed connection\n");
-        flag_not_exit = 0;
-      } else {
-        //fprintf(stderr,"msg received from %X \n", rrm->ip.s->in_dest_addr.sin_addr.s_addr);
-        put_msg( &(rrm->file_recv_msg), 1, &data->s, msg) ;
-
-      }
-    }
-
-    close_socket_int(&data->s) ;
-  }
-
-  fprintf(stderr,"... stopped %s interfaces\n",data->name);
-  return NULL;
-}
-//mod_lor_10_01_25--
-
-/*******************************************************************************/
-#ifdef RRC_KERNEL_MODE
-char Header_buf[sizeof(msg_head_t)];
-char Data[2400];
-unsigned short  Header_read_idx=0,
-                Data_read_idx=0,
-                Data_to_read=0,
-                Header_size=sizeof(msg_head_t),
-                READ_OK=1;
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages entrant sur l'interface fifo du RRC
-        en mode KERNEL
-
-\return NULL
-*/
-static void * thread_recv_msg_fifo (void * p_data )
-{
-  msg_t      *msg_cpy   ;
-  rrm_t      *rrm       ;
-  msg_head_t *Header    ;
-  int         taille    ;
-  int         inst      ;
-  int         bytes_read;
-
-  msg_fifo("[RRM]: RX MSG_FIFOS %d handler starting....\n",RRC2RRM_FIFO);
-
-  while (flag_not_exit) {
-    if(Header_read_idx < Header_size) {
-      bytes_read = read(Rrm_fifos.rrc_2_rrm_fifo,&Data[Header_read_idx],Header_size-Header_read_idx);
-
-      if(bytes_read <0)
-        continue;
-
-      Header_read_idx+=bytes_read;
-      msg_fifo("[RRM]: RX MSG ON FIFOS %d: Header size %d, bytes_read %d\n",RRC2RRM_FIFO,Header_read_idx,bytes_read);
-
-      if(Header_read_idx == Header_size) {
-        Header=(msg_head_t*)Data;
-        Data_to_read=Header->size;
-        Data_read_idx=Header_read_idx;
-        msg_fifo("[RRM]: RX MSG ON FIFOS %d: Header read completed, Data size %d\n",RRC2RRM_FIFO,Data_to_read);
-        Header = (msg_head_t *) Data;
-      } else
-        continue;
-    }
-
-    if (Data_to_read > 0 ) {
-      bytes_read = read (Rrm_fifos.rrc_2_rrm_fifo,&Data[Data_read_idx],Data_to_read);
-
-      if(bytes_read <0)
-        continue;
-
-      Data_to_read-=bytes_read;
-      Data_read_idx+=bytes_read;
-      msg_fifo("[RRM]: RX MSG ON FIFOS %d: data size %d\n",RRC2RRM_FIFO,Data_read_idx-Header_read_idx);
-
-      if(Data_to_read > 0 )
-        continue;
-
-      Header_read_idx= 0 ;
-      Data_read_idx  = 0 ;
-      Data_to_read   = 0 ;
-      taille         = Header->size + sizeof(msg_head_t) ;
-      msg_cpy        = RRM_MALLOC( msg_t, taille ) ;
-      inst           = Header->inst ;
-      rrm            = &rrm_inst[inst];
-
-      memcpy( msg_cpy, Data , taille ) ;
-      msg_fifo("[RRM]: RX MSG ON FIFOS %d: data read completed, Proccess on inst .... %d\n",RRC2RRM_FIFO,inst);
-      put_msg( &(rrm->file_recv_msg), 0, rrm->rrc.s, msg_cpy) ; //mod_lor_10_01_25
-      msg_fifo("[RRM]: RX MSG ON FIFOS %d: data read completed, Proccess on inst done %d\n",RRC2RRM_FIFO,inst);
-    } else {
-      /* Seulement le header */
-      Header_read_idx= 0 ;
-      Data_read_idx  = 0 ;
-      Data_to_read   = 0 ;
-      taille         = sizeof(msg_head_t) ;
-      msg_cpy        = RRM_MALLOC( msg_t, taille ) ;
-      inst           = Header->inst ;
-      rrm            = &rrm_inst[inst];
-
-      memcpy( msg_cpy, Data , taille ) ;
-      put_msg( &(rrm->file_recv_msg), 0, rrm->rrc.s, msg_cpy) ;//mod_lor_10_01_25
-    }
-  }
-
-  return NULL;
-}
-#endif
-/*!
-*******************************************************************************
-\brief  traitement des messages entrant sur l'interface CMM
-
-\return Auncune valeur
-*/
-static void processing_msg_cmm(
-  rrm_t       *rrm        , ///< Donnee relative a une instance du RRM
-  msg_head_t  *header     , ///< Entete du message
-  char        *msg        , ///< Message recu
-  int         len_msg       ///< Longueur du message
-)
-{
-#ifdef TRACE
-
-  if ( header->msg_type < NB_MSG_CMM_RRM )
-    fprintf(cmm2rrm_fd,"%lf CMM->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_cmm_rrm[header->msg_type], header->msg_type,header->Trans_id);
-  else
-    fprintf(cmm2rrm_fd,"%lf CMM->RRM %-30s %d %d\n",get_currentclock(),"inconnu", header->msg_type,header->Trans_id);
-
-  fflush(cmm2rrm_fd);
-#endif
-
-  switch ( header->msg_type ) {
-  case CMM_CX_SETUP_REQ: {
-    cmm_cx_setup_req_t *p = (cmm_cx_setup_req_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_CX_SETUP_REQ\n",header->inst);
-
-    if ( cmm_cx_setup_req(header->inst,p->Src,p->Dst,p->QoS_class,header->Trans_id ) ) {
-      /* RB_ID = 0xFFFF => RB error */
-      put_msg( &(rrm->file_send_cmm_msg), 0,
-               rrm->cmm.s, msg_rrm_cx_setup_cnf(header->inst,0xFFFF , header->Trans_id )) ;//mod_lor_10_01_25
-    }
-
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM +NB_MSG_RRC_RRM;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-  }
-  break ;
-
-  case CMM_CX_MODIFY_REQ: {
-    cmm_cx_modify_req_t *p = (cmm_cx_modify_req_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_CX_MODIFY_REQ\n",header->inst);
-    cmm_cx_modify_req(header->inst,p->Rb_id,p->QoS_class,header->Trans_id )  ;
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM +NB_MSG_RRC_RRM;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-
-  }
-  break ;
-
-  case CMM_CX_RELEASE_REQ : {
-    cmm_cx_release_req_t *p = (cmm_cx_release_req_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_CX_RELEASE_REQ\n",header->inst);
-    cmm_cx_release_req(header->inst,p->Rb_id,header->Trans_id )  ;
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM +NB_MSG_RRC_RRM;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-
-  }
-  break ;
-
-  case CMM_CX_RELEASE_ALL_REQ : {
-    //cmm_cx_release_all_req_t *p = (cmm_cx_release_all_req_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_CX_RELEASE_ALL_REQ\n",header->inst);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM +NB_MSG_RRC_RRM;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-
-  }
-  break ;
-
-  case CMM_ATTACH_CNF : { ///< The thread that allows
-    cmm_attach_cnf_t *p = (cmm_attach_cnf_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_ATTACH_CNF\n",header->inst);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM +NB_MSG_RRC_RRM;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-
-
-
-    //mod_lor_10_01_25++
-#ifndef    RRC_EMUL
-
-    if (rrm->ip.s->s == -1) {
-      //mod_lor_10_05_06++
-      unsigned char tmp [4];
-
-      /*for (int i=0; i<10;i++ )
-          if (memcmp( &(node_info[i].L2_id), &(p->L2_id), sizeof(L2_ID) )){
-              fprintf(stderr,"Inst. to connect with %d\n",i);
-              break;
-          }//memcpy()*/
-      //mod_lor_10_05_18++: destination addresses depends on
-      //scenario and on role, they are declared at beginning of file
-      if (SCEN_2_CENTR && rrm->id >= FIRST_SECOND_CLUSTER_USER_ID) { //mod_lor_11_01_06
-        tmp[0]=CH_COLL_L3id[0];
-        tmp[1]=CH_COLL_L3id[1];
-        tmp[2]=CH_COLL_L3id[2];
-        tmp[3]=CH_COLL_L3id[3];
-      } else {
-        tmp[0]=FC_L3id[0];
-        tmp[1]=FC_L3id[1];
-        tmp[2]=FC_L3id[2];
-        tmp[3]=FC_L3id[3];
-      }//mod_lor_10_05_18--
-
-      //unsigned char tmp [4]={0x0A,0x00,0x01,0x01};
-      /*fprintf(stderr,"IP_addr :");//dbg //mod_lor_10_05_06
-      for (int i=0;i<4;i++)//dbg
-          fprintf(stderr," %X",tmp[i]);//dbg
-      fprintf(stderr,"\n");//dbg*/
-
-      //mod_lor_10_05_06--
-      fprintf(stderr,"IP interface starting inst. %d\n",rrm->id);
-      //dbg++ (add_lor_11_01_06)
-      fprintf(stderr,"Source: ");
-
-      for ( int i=0; i<4; i++)
-        fprintf(stderr,"%02X:", p->L3_info[i]);
-
-      fprintf(stderr,"\nDest: ");
-
-      for (int  i=0; i<4; i++)
-        fprintf(stderr,"%02X:", tmp[i]);
-
-      fprintf(stderr,"\n");
-      //dbg--
-      int sock = open_socket_int(rrm->ip.s, p->L3_info, 0, tmp, 0, header->inst);
-
-      if ( sock != -1 ) {
-        fprintf(stderr,"   Ip -> socket =  %d\n", rrm->ip.s->s );
-        fflush(stderr);
-      } else {
-        fprintf(stderr," Error in IP socket opening \n");
-
-      }
-    } else
-      fprintf(stderr," Socket IP for inst %d already opened %d \n",rrm->id,rrm->ip.s->s);
-
-#endif            //mod_lor_10_01_25--*/
-
-    cmm_attach_cnf( header->inst, p->L2_id, p->L3_info_t, p->L3_info, header->Trans_id ) ;
-
-  }
-  break ;
-
-  case CMM_INIT_MR_REQ : {
-    msg_fct( "[CMM]>[RRM]:%d:CMM_INIT_MR_REQ ????\n",header->inst);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM +NB_MSG_RRC_RRM;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-
-  }
-  break ;
-
-  case CMM_INIT_CH_REQ : {
-    cmm_init_ch_req_t *p = (cmm_init_ch_req_t *) msg ;
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM +NB_MSG_RRC_RRM;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-
-    //mod_lor_10_03_01++
-
-    struct data_thread_int DataIp;
-
-    DataIp.name = "IP"             ; ///< Nom du thread
-    DataIp.sock_path_local=p->L3_info;///< local IP address for internet socket
-    DataIp.local_port = 7000          ; ///< local IP port for internet socket
-
-    //mod_lor_10_03_02++: setting for topology with FC and BTS on instances 0 and 1
-    //mod_lor_10_05_18++
-    if (rrm->role == FUSIONCENTER) {
-      if (SCEN_1)
-        DataIp.sock_path_dest = BTS_L3id ; ///< dest IP address for internet socket
-      else if (SCEN_2_CENTR)
-        DataIp.sock_path_dest = CH_COLL_L3id ; ///< dest IP address for internet socket
-    } else if (rrm->role == BTS ||rrm->role == CH_COLL) { //mod_lor_10_04_27
-      DataIp.sock_path_dest = FC_L3id  ; ///< dest IP address for internet socket
-    } else
-      fprintf (stderr, "wrong node role %d \n", rrm->role);
-
-    //mod_lor_10_05_18--
-    //mod_lor_10_03_02--
-    DataIp.dest_port = 0          ; ///< dest IP port for internet socket
-    DataIp.s.s = -1      ;
-    DataIp.instance = rrm->id;
-    //fprintf(stderr,"L3_local ");//dbg
-    //print_L3_id( IPv4_ADDR,  rrm->L3_info );
-    //fprintf(stderr,"\n");//dbg
-
-    int ret = pthread_create ( &pthread_recv_int_msg_hnd, NULL, thread_recv_msg_int , &DataIp );
-
-    if (ret) {
-      fprintf (stderr, "%s", strerror (ret));
-      exit(-1) ;
-    }
-
-    sleep(5);
-    //mod_lor_10_03_01--
-    cmm_init_ch_req(header->inst,p->L3_info_t,&(p->L3_info[0]));
-    msg_fct( "[CMM]>[RRM]:%d:CMM_INIT_CH_REQ\n",header->inst);
-
-  }
-  break ;
-
-  case CMM_INIT_SENSING : {
-    cmm_init_sensing_t *p = (cmm_init_sensing_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_INIT_SENSING\n",header->inst);
-    rrm->sensing.sens_active=1;//mod_lor_10_05_07
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM +NB_MSG_RRC_RRM;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    //st_fr = p->Start_fr; //mod_lor_10_06_01
-    //end_fr = p->Stop_fr; //mod_lor_10_06_01
-
-    cmm_init_sensing(header->inst,p->Start_fr ,p->Stop_fr,p->Meas_band,p->Meas_tpf,
-                     p->Nb_channels, p->Overlap,p->Sampl_freq);
-    fprintf(output_2,"PROVA\n"); //mod_lor_10_04_20
-
-
-  }
-  break ;
-
-  case CMM_STOP_SENSING : {
-    msg_fct( "[CMM]>[RRM]:%d:CMM_STOP_SENSING\n",rrm->id);
-    rrm->sensing.sens_active=0;//mod_lor_10_05_07
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM +NB_MSG_RRC_RRM;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    //print_sens_db(rrm->rrc.pSensEntry);//dbg
-    cmm_stop_sensing(header->inst);
-  }
-  break ;
-
-  case CMM_ASK_FREQ : {
-    msg_fct( "[CMM]>[RRM]:%d:CMM_ASK_FREQ\n",header->inst);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM +NB_MSG_RRC_RRM;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    cmm_ask_freq(header->inst);
-  }
-  break ;
-
-  case CMM_INIT_COLL_SENSING : { //add_lor_10_11_08
-    cmm_init_coll_sensing_t *p = (cmm_init_coll_sensing_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_INIT_COLL_SENSING\n",header->inst);
-    rrm->sensing.sens_active=1;
-    cmm_init_coll_sensing(header->inst,p->Start_fr ,p->Stop_fr,p->Meas_band,p->Meas_tpf,
-                          p->Nb_channels, p->Overlap,p->Sampl_freq);
-
-  }
-  break ;
-
-  case CMM_NEED_TO_TX : { //add_lor_10_10_28
-    cmm_need_to_tx_t *p = (cmm_need_to_tx_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_NEED_TO_TX\n",header->inst);
-    cmm_need_to_tx(header->inst, p->dest,p->QoS_class);
-  }
-  break ;
-
-  case CMM_USER_DISC : { //add_lor_10_11_08
-    msg_fct( "[CMM]>[RRM]:%d:CMM_USER_DISC\n",header->inst);
-    cmm_user_disc(header->inst);
-  }
-  break ;
-
-  case CMM_LINK_DISC : { //add_lor_10_11_09
-    cmm_link_disk_t *p = (cmm_link_disk_t *) msg ;
-    msg_fct( "[CMM]>[RRM]:%d:CMM_LINK_DISC with user %d\n",header->inst, p->dest);
-    cmm_link_disc(header->inst, p->dest);
-  }
-  break ;
-
-  default :
-    fprintf(stderr,"CMM:\n") ;
-    printHex(msg,len_msg,1) ;
-  }
-}
-/*!
-*******************************************************************************
-\brief  traitement des messages entrant sur l'interface RRC
-
-\return Aucune valeur
-*/
-static void processing_msg_rrc(
-  rrm_t *rrm          , ///< Donnee relative a une instance du RRM
-  msg_head_t *header  , ///< Entete du message
-  char *msg           , ///< Message recu
-  int len_msg           ///< Longueur du message
-)
-{
-#ifdef TRACE
-
-  if ( header->msg_type < NB_MSG_RRC_RRM )
-    fprintf(rrc2rrm_fd,"%lf RRC->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_rrc_rrm[header->msg_type],header->msg_type,header->Trans_id);
-  else
-    fprintf(rrc2rrm_fd,"%lf RRC->RRM %-30s %d %d\n",get_currentclock(),"inconnu",header->msg_type,header->Trans_id);
-
-  fflush(rrc2rrm_fd);
-#endif
-
-  switch ( header->msg_type ) {
-  case RRC_RB_ESTABLISH_RESP: {
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_ESTABLISH_RESP %d \n",header->inst, header->Trans_id );
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_rb_establish_resp(header->inst,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_RB_ESTABLISH_CFM: {
-    rrc_rb_establish_cfm_t *p = (rrc_rb_establish_cfm_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_ESTABLISH_CFM (%d)  %d \n",header->inst,p->Rb_id, header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_rb_establish_cfm(header->inst,p->Rb_id,p->RB_type,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_RB_MODIFY_RESP: {
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_MODIFY_RESP  %d \n",header->inst, header->Trans_id);
-    rrc_rb_modify_resp(header->inst,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_RB_MODIFY_CFM: {
-    rrc_rb_modify_cfm_t *p = (rrc_rb_modify_cfm_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_MODIFY_CFM (%d) %d \n",header->inst,p->Rb_id, header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_rb_modify_cfm(header->inst,p->Rb_id,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_RB_RELEASE_RESP: {
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_RELEASE_RESP %d \n",header->inst, header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_rb_release_resp(header->inst,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_MR_ATTACH_IND : {
-    rrc_MR_attach_ind_t *p = (rrc_MR_attach_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_MR_ATTACH_IND (Node %02d) %d \n",header->inst, p->L2_id.L2_id[0], header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_MR_attach_ind(header->inst,p->L2_id) ;
-  }
-  break ;
-
-  case RRC_SENSING_MEAS_RESP: {
-    msg_fct( "[RRC]>[RRM]:%d:RRC_SENSING_MEAS_RESP %d \n",header->inst, header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_sensing_meas_resp(header->inst,header->Trans_id) ;
-  }
-  break ;
-
-  case RRC_CX_ESTABLISH_IND: {
-    rrc_cx_establish_ind_t *p = (rrc_cx_establish_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_CX_ESTABLISH_IND (Node %02d) %d \n",header->inst, p->L2_id.L2_id[0], header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-
-    rrc_cx_establish_ind(header->inst,p->L2_id,header->Trans_id,
-                         p->L3_info,p->L3_info_t,
-                         p->DTCH_B_id,p->DTCH_id) ;
-
-    //mod_lor_10_01_25++
-    if (rrm->state == MESHROUTER)
-      memcpy(rrm->L3_info_corr,p->L3_info, IPv4_ADDR);
-
-    //mod_lor_10_01_25--*/
-  }
-  break ;
-
-  case RRC_PHY_SYNCH_TO_MR_IND : {
-    rrc_phy_synch_to_MR_ind_t *p = (rrc_phy_synch_to_MR_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_PHY_SYNCH_TO_MR_IND.... (Node %02d) %d \n",header->inst, p->L2_id.L2_id[0], header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_phy_synch_to_MR_ind(header->inst,p->L2_id) ;
-    //msg_fct( "[RRC]>[RRM]:%d:RRC_PHY_SYNCH_TO_MR_IND Done\n",header->inst);
-  }
-  break ;
-
-  case RRC_PHY_SYNCH_TO_CH_IND : {
-    rrc_phy_synch_to_CH_ind_t *p = (rrc_phy_synch_to_CH_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_PHY_SYNCH_TO_CH_IND.... %d (Node %02d) %d \n",header->inst, p->Ch_index, p->L2_id.L2_id[0], header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-
-    //mod_lor_10_04_20--
-    //add_lor_11_01_07++
-    if (SCEN_2_CENTR)
-      sleep(header->inst);
-
-    //add_lor_11_01_07--
-    rrc_phy_synch_to_CH_ind(header->inst,p->Ch_index,p->L2_id ) ;
-    //msg_fct( "[RRC]>[RRM]:%d:RRC_PHY_SYNCH_TO_CH_IND Done\n",header->inst);
-
-  }
-  break ;
-
-  case RRC_SENSING_MEAS_IND : {
-    rrc_sensing_meas_ind_t *p  = (rrc_sensing_meas_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_SENSING_MEAS_IND (Node %02d) %d \n",header->inst, p->L2_id.L2_id[0], header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_sensing_meas_ind( header->inst,p->L2_id, p->NB_meas, p->Sensing_meas, header->Trans_id );
-  }
-  break ;
-
-  case RRC_RB_MEAS_IND : {
-    rrc_rb_meas_ind_t *p  = (rrc_rb_meas_ind_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_RB_MEAS_IND (Noede %02d) %d \n",header->inst, p->L2_id.L2_id[0], header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_rb_meas_ind( header->inst, p->Rb_id, p->L2_id, p->Meas_mode, p->Mac_rlc_meas, header->Trans_id );
-  }
-  break ;
-
-
-  case RRC_INIT_SCAN_REQ : {
-    rrc_init_scan_req_t *p  = (rrc_init_scan_req_t *) msg ;
-    //  fprintf(stdout,"sens_database before:\n");//dbg
-    //  print_sens_db( rrm->rrc.pSensEntry );//dbg
-    msg_fct( "[RRC]>[RRM]:%d:RRC_INIT_SCAN_REQ  %d \n",header->inst, header->Trans_id);
-    rrm->sensing.sens_active=1;//mod_lor_10_04_21
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    fprintf(stdout,"start:%d stop:%d band:%d nb:%d\n",p->Start_fr ,p->Stop_fr,p->Meas_band,p->Nb_channels);//dbg
-    rrc_init_scan_req( header->inst, p->L2_id, p->Start_fr ,p->Stop_fr,p->Meas_band,p->Meas_tpf,
-                       p->Nb_channels, p->Overlap,p->Sampl_freq, header->Trans_id );
-
-    //    print_sens_db( rrm->rrc.pSensEntry );//dbg
-
-  }
-  break ;
-
-  case RRC_END_SCAN_CONF : {
-    rrc_end_scan_conf_t *p  = (rrc_end_scan_conf_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_END_SCAN_CONF  %d (Node ",header->inst, header->Trans_id);
-    int inst_sens;
-
-    for ( int i=0; i<8; i++)
-      msg_fct("%02X", p->L2_id.L2_id[i]);
-
-    msg_fct( ")\n");
-
-    //mod_lor_10_04_20++
-    //mod_lor_10_04_22++
-    for ( inst_sens=0; inst_sens<nb_inst; inst_sens++) {
-      if (memcmp(&(rrm_inst[inst_sens].L2_id),  &(p->L2_id),sizeof(L2_ID))==0)
-        break;
-    }
-
-    //mod_lor_10_04_22--
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(inst_sens,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_end_scan_conf( header->inst, p->L2_id, header->Trans_id );
-  }
-  break ;
-
-  case RRC_END_SCAN_REQ : {
-    rrc_end_scan_req_t *p  = (rrc_end_scan_req_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_END_SCAN_REQ %d \n",header->inst, header->Trans_id);
-    rrm->sensing.sens_active=0;//mod_lor_10_04_21
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_end_scan_req( header->inst, p->L2_id, header->Trans_id );
-  }
-  break ;
-
-  case RRC_INIT_MON_REQ : {
-    rrc_init_mon_req_t *p  = (rrc_init_mon_req_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_INIT_MON_REQ %d (Node ",header->inst, header->Trans_id);
-
-    for ( int i=0; i<8; i++)
-      msg_fct("%02X", p->L2_id.L2_id[i]);
-
-    msg_fct( ")\n");
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    rrc_init_mon_req( header->inst, p->L2_id, p->ch_to_scan, p->NB_chan, p->interval, header->Trans_id );
-  }
-  break ;
-
-  //mod_lor_10_06_04++
-  case RRC_UP_FREQ_ASS : {
-    rrm_up_freq_ass_t *p  = (rrm_up_freq_ass_t *) msg ;
-    msg_fct( "[RRC]>[RRM]:%d:RRC_UP_FREQ_ASS \n",header->inst);
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-    unsigned int        channels[2*p->NB_chan];                //!< Vector of channels
-    unsigned int        free[2*p->NB_chan]    ;                //!< Vector of values
-
-    if (p->NB_chan!=0) {
-      channels[0]=p->ass_channels[0].Start_f;            //!<saved starting frequency
-      channels[1]=p->ass_channels[0].Final_f; //!<saved final frequency
-    }
-
-
-    int r =  send_msg( rrm->graph.s,msg_generic_sens_resp(header->inst,msg_type,2*p->NB_chan,2*p->NB_chan,channels,free, 0) );
-    WARNING(r!=0);
-
-  }
-  break;
-
-  //mod_lor_10_06_04--
-  //mod_lor_10_11_05++
-  case RRC_UP_FREQ_ASS_SEC : {
-    rrm_up_freq_ass_sec_t *p  = (rrm_up_freq_ass_sec_t *) msg ;
-    int i;
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM ;
-
-    unsigned int chann_start[NB_SENS_MAX];
-    unsigned int chann_end[NB_SENS_MAX];
-    unsigned int tx[NB_SENS_MAX];
-    unsigned int tot_ch = 0;
-
-    unsigned int        channels[2*NB_SENS_MAX];                //!< Vector of channels
-
-    msg_fct( "[RRC]>[RRM]:%d:RRC_UP_FREQ_ASS_SEC ch %d\n",header->inst,p->NB_all);
-
-    for (i=0; i<p->NB_all; i++) {
-      if (memcmp( &(p->L2_id[i]), &(rrm->L2_id), sizeof(L2_ID) )==0) {
-        printf("USER:%d:Transmission on channel %d from %d to %d\n\n",header->inst,p->ass_channels[i].Ch_id, p->ass_channels[i].Start_f, p->ass_channels[i].Final_f);
-        chann_start[tot_ch]     = p->ass_channels[i].Start_f;
-        chann_end[tot_ch]       = p->ass_channels[i].Final_f;
-        channels[tot_ch*2]      = chann_start[tot_ch];
-        channels[(tot_ch*2)+1]  = chann_end[tot_ch];
-        tx[tot_ch]              = 1;
-        tot_ch++;
-      }
-
-      if (memcmp( &(p->L2_id_dest[i]), &(rrm->L2_id), sizeof(L2_ID) )==0) {
-        printf("USER:%d:Ready to receive on channel %d from %d to %d\n\n",header->inst,p->ass_channels[i].Ch_id, p->ass_channels[i].Start_f, p->ass_channels[i].Final_f);
-        chann_start[tot_ch]     = p->ass_channels[i].Start_f;
-        chann_end[tot_ch]       = p->ass_channels[i].Final_f;
-        channels[tot_ch*2]      = chann_start[tot_ch];
-        channels[(tot_ch*2)+1]  = chann_end[tot_ch];
-        tx[tot_ch]              = 0;
-        tot_ch++;
-      }
-    }
-
-    plot_all_chann_scen_2(tx, chann_start, chann_end, tot_ch, header->inst-FIRST_SENSOR_ID+1);
-
-
-    int r =  send_msg( rrm->graph.s,msg_generic_sens_resp(header->inst,msg_type,tot_ch*2,tot_ch,channels,tx, 0) );
-    WARNING(r!=0);
-
-  }
-  break;
-  //mod_lor_10_11_05--
-
-  default :
-    fprintf(stderr,"RRC:\n") ;
-    printHex(msg,len_msg,1) ;
-  }
-
-}
-
-static void processing_msg_sensing(
-  rrm_t       *rrm        , ///< Donnee relative a une instance du RRM
-  msg_head_t  *header     , ///< Entete du message
-  char        *msg        , ///< Message recu
-  int         len_msg       ///< Longueur du message
-)
-{
-
-#ifdef TRACE
-
-  if ( header->msg_type < NB_MSG_SENSING_RRM )
-    fprintf(sensing2rrm_fd,"%lf SENSING->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_sensing_rrm[header->msg_type],header->msg_type,header->Trans_id);
-  else
-    fprintf(sensing2rrm_fd,"%lf SENSING->RRM %-30s %d %d\n",get_currentclock(),"inconnu",header->msg_type,header->Trans_id);
-
-  fflush(sensing2rrm_fd);
-#endif
-
-  switch ( (MSG_SENSING_RRM_T)header->msg_type ) {
-
-  case SNS_UPDATE_SENS : {
-    rrc_update_sens_t *p  = (rrc_update_sens_t *) msg ;
-
-    if(rrm->sensing.sens_active == 0)//mod_lor_10_04_23
-      break;
-
-    msg_fct( "[SENSING]>[RRM]:%d:SNS_UPDATE_SENS trans %d\n",header->inst, header->Trans_id);
-
-    //mod_lor_10_11_04++
-    if (SCEN_1 && FC_ID>=0) //mod_lor_18_02_18: sensor case
-      plot_spectra(p->Sens_meas, p->NB_info, form, header->inst-FIRST_SENSOR_ID+1);
-    else if (SCEN_1) //mod_lor_18_02_18: sensor case
-      plot_spectra_sensor(p->Sens_meas, p->NB_info);
-    else if (SCEN_2_CENTR && header->inst<FIRST_SECOND_CLUSTER_USER_ID)
-      plot_spectra_CH1(p->Sens_meas, p->NB_info,  header->inst-FIRST_SENSOR_ID+1);
-    else if (SCEN_2_CENTR && header->inst>=FIRST_SECOND_CLUSTER_USER_ID) //mod_lor_11_01_07
-      plot_spectra_CH2(p->Sens_meas, p->NB_info,  header->inst-FIRST_SECOND_CLUSTER_USER_ID+1);
-
-    //mod_lor_10_11_04--
-
-    rrc_update_sens( header->inst, rrm->L2_id, p->NB_info, p->Sens_meas, p->info_time );
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type ;
-    //mod_lor_10_04_21++ mod_lor_10_06_02++
-    unsigned int        channels[2];                //!< Vector of channels
-    unsigned int        free[2]    ;                //!< Vector of values
-    unsigned int    Trans = rrm->ip.trans_cnt;
-
-    channels[0]=p->Sens_meas[0].Start_f;            //!<saved starting frequency
-    channels[1]=p->Sens_meas[p->NB_info-1].Final_f; //!<saved final frequency
-    free[0]=SB_BANDWIDTH;                           //!<saved subband dimension
-
-
-    int r =  send_msg( rrm->graph.s,msg_generic_sens_resp(header->inst,msg_type,2,1,channels,free, Trans) );
-    WARNING(r!=0);
-    //mod_lor_10_04_21-- mod_lor_10_06_02--
-    //mod_lor_10_04_20--
-
-  }
-  break ;
-
-  //mod_lor_10_04_14++
-  case SNS_END_SCAN_CONF : {
-
-    msg_fct( "[SENSING]>[RRM]:%d:SNS_END_SCAN_CONF\n",header->inst);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type ;
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-
-    //mod_lor_10_04_20--
-    //add_lor_11_01_10++
-    if (SCEN_1 && FC_ID>=0) //mod_lor_18_02_18: sensor case
-      plot_spectra(NULL, 0, form, header->inst-FIRST_SENSOR_ID+1);
-    else if (SCEN_1) //mod_lor_18_02_18: sensor case
-      plot_spectra_sensor(NULL, 0);
-    else if (SCEN_2_CENTR && header->inst<FIRST_SECOND_CLUSTER_USER_ID)
-      plot_spectra_CH1(NULL, 0,  header->inst-FIRST_SENSOR_ID+1);
-    else if (SCEN_2_CENTR && header->inst>=FIRST_SECOND_CLUSTER_USER_ID) //mod_lor_11_01_07
-      plot_spectra_CH2(NULL, 0,  header->inst-FIRST_SECOND_CLUSTER_USER_ID+1);
-
-    //add_lor_11_01_10--*/
-    sns_end_scan_conf( header->inst );
-  }
-  break ;
-
-  default :
-    fprintf(stderr,"SENSING:%d:\n",header->msg_type) ;
-    printHex(msg,len_msg,1) ;
-  }//mod_lor_10_04_14--
-}
-
-
-/*!
-*******************************************************************************
-\brief  traitement des messages entrant sur l'interface PUSU
-
-\return Aucune valeur
-*/
-static void processing_msg_pusu(
-  rrm_t *rrm          , ///< Donnee relative a une instance du RRM
-  msg_head_t *header  , ///< Entete du message
-  char *msg           , ///< Message recu
-  int len_msg           ///< Longueur du message
-)
-{
-  transact_t *pTransact ;
-
-  pthread_mutex_lock( &( rrm->pusu.exclu ) ) ;
-  pTransact = get_item_transact(rrm->pusu.transaction,header->Trans_id ) ;
-
-  if ( pTransact == NULL ) {
-    fprintf(stderr,"[RRM] %d PUSU Response (%d): unknown transaction\n",header->msg_type,header->Trans_id);
-  } else {
-    del_item_transact( &(rrm->pusu.transaction),header->Trans_id ) ;
-  }
-
-  pthread_mutex_unlock( &( rrm->pusu.exclu ) ) ;
-
-#ifdef TRACE
-
-  if ( header->msg_type < NB_MSG_RRM_PUSU )
-    fprintf(pusu2rrm_fd,"%lf PUSU->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_pusu_rrm[header->msg_type],header->msg_type,header->Trans_id);
-  else
-    fprintf(pusu2rrm_fd,"%lf PUSU->RRM %-30s %d %d\n",get_currentclock(),"inconnu",header->msg_type,header->Trans_id);
-
-  fflush(pusu2rrm_fd);
-#endif
-
-  switch ( header->msg_type ) {
-  case PUSU_PUBLISH_RESP: {
-    msg_fct( "[PUSU]>[RRM]:%d:PUSU_PUBLISH_RESP\n",header->inst );
-  }
-  break ;
-
-  case PUSU_UNPUBLISH_RESP: {
-    msg_fct( "[PUSU]>[RRM]:%d:PUSU_UNPUBLISH_RESP\n",header->inst );
-  }
-  break ;
-
-  case PUSU_LINK_INFO_RESP: {
-    msg_fct( "[PUSU]>[RRM]:%d:PUSU_LINK_INFO_RESP\n",header->inst );
-  }
-  break ;
-
-  case PUSU_SENSING_INFO_RESP: {
-    msg_fct( "[PUSU]>[RRM]:%d:PUSU_SENSING_INFO_RESP\n",header->inst );
-  }
-  break ;
-
-  case PUSU_CH_LOAD_RESP: {
-    msg_fct( "[PUSU]>[RRM]:%d:PUSU_CH_LOAD_RESP\n",header->inst );
-  }
-  break ;
-
-  default :
-    fprintf(stderr,"PUSU:%d:\n",header->msg_type) ;
-    printHex(msg,len_msg,1) ;
-  }
-
-}
-
-//mod_lor_10_01_25++
-/*!
-*******************************************************************************
-\brief  traitement des messages entrant via IP
-
-\return Auncune valeur
-*/
-static void processing_msg_ip(
-  rrm_t       *rrm        , ///< Donnee relative a une instance du RRM
-  msg_head_t  *header     , ///< Entete du message
-  char        *msg        , ///< Message recu
-  int         len_msg       ///< Longueur du message
-)
-{
-#ifdef TRACE
-
-  //mod_lor_10_04_27++
-  /*if ( header->msg_type < NB_MSG_RRC_RRM )
-  fprintf(ip2rrm_fd,"%lf IP->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_rrc_rrm[header->msg_type], header->msg_type,header->Trans_id);
-  else
-  fprintf(ip2rrm_fd,"%lf CMM->RRM %-30s %d %d\n",get_currentclock(),"inconnu", header->msg_type,header->Trans_id);
-  fflush(ip2rrm_fd);*/
-  if ( header->msg_type < NB_MSG_IP )//mod_lor_10_04_27
-    fprintf(ip2rrm_fd,"%lf IP->RRM %d %-30s %d %d\n",get_currentclock(),header->inst,Str_msg_ip[header->msg_type], header->msg_type,header->Trans_id);
-  else
-    fprintf(ip2rrm_fd,"%lf IP->RRM %-30s %d %d\n",get_currentclock(),"inconnu", header->msg_type,header->Trans_id);
-
-  fflush(ip2rrm_fd);
-  //mod_lor_10_04_27--
-#endif
-
-  switch ( header->msg_type ) {
-  case UPDATE_SENS_RESULTS_3 : {
-    //fprintf(stderr,"1node entry  @%p \n", rrm->rrc.pSensEntry);//dbg
-    if(rrm->sensing.sens_active == 0)//mod_lor_10_05_07
-      break;
-
-    rrm_update_sens_t *p = (rrm_update_sens_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:UPDATE_SENS_RESULTS_3 from %d trans %d\n",rrm->id, header->inst, header->Trans_id);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ; //mod_lor_10_04_27
-    //mod_lor_10_04_20--
-
-    //mod_lor_18_02_18++: plot spectra in FC when senosors on different PCs
-    if (SCEN_1 && FC_ID>=0 && nb_inst==1)
-      plot_spectra(p->Sens_meas, p->NB_info, form, header->inst-FIRST_SENSOR_ID+1);
-
-    //mod_lor_18_02_18--
-
-    unsigned int        channels[2];                //!< Vector of channels
-    unsigned int        free[2]    ;                //!< Vector of values
-    unsigned int    Trans = rrm->ip.trans_cnt;
-
-    channels[0]=p->Sens_meas[0].Start_f;            //!<saved starting frequency
-    channels[1]=p->Sens_meas[p->NB_info-1].Final_f; //!<saved final frequency
-    free[0]=SB_BANDWIDTH;                           //!<saved subband dimension
-
-    if (SCEN_1) {
-      if(update_sens_results( rrm->id, p->L2_id, p->NB_info, p->Sens_meas, p->info_time)||SN_waiting == 1) {//mod_lor_10_06_02
-
-        if ((open_freq_query(rrm->id, rrm->L2_id, 0, SN_waiting)>0) && SN_waiting) {  //mod_lor_10_06_02
-          SN_waiting=0; //mod_lor_10_06_02
-
-          free[1]=1;    //To transmit to the graphic interface if an update have to be sent to SN
-        } else if(SN_waiting)
-          free[1]=3;
-        else
-          free[1]=1;
-      } else
-        free[1]=0;
-    } else if (SCEN_2_CENTR) { //add_lor_10_11_03
-      update_sens_results( rrm->id, p->L2_id, p->NB_info, p->Sens_meas, p->info_time);
-    }
-
-    //mod_lor_10_04_21++
-
-
-    /*
-    unsigned int        channels[NB_SENS_MAX]; //!< Vector of channels
-    unsigned int        free[NB_SENS_MAX]    ; //!< Vector of values
-    int i;
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    CHANNELS_DB_T *channel=rrm->rrc.pChannelsEntry;
-    for (i=0;channel!=NULL && i<NB_SENS_MAX;i++){
-        channels[i]=channel->channel.Ch_id;
-        if (!(rrm->ip.waiting_SN_update) && !(channel->is_free) && channel->is_ass) //mod_lor_10_05_18
-            free[i] = 3;
-        else
-            free[i]=channel->is_free;
-        channel=channel->next;
-      //  printf("  ->channel %d is %d\n",channels[i],free[i]);//dbg
-    }
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;*/
-    int r =  send_msg( rrm->graph.s, msg_generic_sens_resp(header->inst,msg_type,2,1,channels,free, header->Trans_id));
-    WARNING(r!=0);
-
-    //mod_lor_10_04_21--
-
-  }
-  break ;
-
-  //mod_lor_10_05_07++
-  case UP_CLUST_SENS_RESULTS : {
-    if(rrm->sensing.sens_active == 0)//mod_lor_10_05_07
-      break;
-
-    update_coll_sens_t *p = (update_coll_sens_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:UP_CLUST_SENS_RESULTS from %d \n",rrm->id, header->inst);
-
-    if (SCEN_2_CENTR && !COLL_CLUST)
-      plot_spectra_CH1(p->Sens_meas, p->NB_info,  -1);
-
-    up_coll_sens_results( rrm->id, p->L2_id, p->NB_info, p->Sens_meas, p->info_time);
-    //mod_lor_10_04_21++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ; //mod_lor_10_04_27
-    unsigned int        channels[2];                //!< Vector of channels
-    unsigned int        free[2]    ;                //!< Vector of values
-    unsigned int    Trans = rrm->ip.trans_cnt;
-
-    channels[0]=p->Sens_meas[0].Start_f;            //!<saved starting frequency
-    channels[1]=p->Sens_meas[p->NB_info-1].Final_f; //!<saved final frequency
-    free[0]=SB_BANDWIDTH;                           //!<saved subband dimension
-
-
-    int r =  send_msg( rrm->graph.s,msg_generic_sens_resp(header->inst,msg_type,2,1,channels,free, Trans) );
-    WARNING(r!=0);
-
-    //mod_lor_10_04_21--*/
-
-  }
-  break ;
-
-  //mod_lor_10_05_07--
-  case OPEN_FREQ_QUERY_4 : {
-    open_freq_query_t *p = (open_freq_query_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:OPEN_FREQ_QUERY_4 from %d\n",rrm->id, header->inst);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM  + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ; //mod_lor_10_04_27
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    open_freq_query( rrm->id, p->L2_id, p->QoS, header->Trans_id );
-
-  }
-  break ;
-
-  case ASK_FREQ_TO_CH_3 : { //add_lor_10_11_03
-    ask_freq_to_CH_t *p = (ask_freq_to_CH_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:ASK_FREQ_TO_CH_3 from %d\n",rrm->id, header->inst);
-    ///graphic interphace
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM  + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ;
-    unsigned int stop=0,dest_id,i;
-
-    for (i=0; i<nb_inst && stop==0; i++) {
-      if(L2_ID_cmp(&(rrm_inst[i].L2_id), &(p->L2_id_dest))==0) {
-        stop=1;
-        dest_id = i;
-      }
-    }
-
-    printf("dest id %d\n",dest_id);
-    int r =  send_msg( rrm->graph.s, msg_generic_sens_resp(header->inst,msg_type,1,0,&dest_id,NULL, header->Trans_id));
-    WARNING(r!=0);
-    printf ("N5a tot waiting: %d\n",rrm->ip.users_waiting_update);//dbg
-
-    if (ask_freq_to_CH( rrm->id, &(p->L2_id), &(p->L2_id_dest), 1, header->Trans_id )!=0) {
-      int r =  send_msg( rrm->graph.s, msg_generic_sens_resp(header->inst,msg_type,0,1,NULL,&dest_id, header->Trans_id));
-      WARNING(r!=0);
-      printf ("Not available channels... Waiting for a channel...\n");
-      pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-      printf ("N5b tot waiting: %d\n",rrm->ip.users_waiting_update);//dbg
-      memcpy(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][0].L2_id,p->L2_id.L2_id, sizeof(L2_ID));
-      memcpy(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][1].L2_id,p->L2_id_dest.L2_id, sizeof(L2_ID));
-
-      rrm->ip.users_waiting_update++;
-      printf ("N5c tot waiting: %d\n",rrm->ip.users_waiting_update);//dbg
-      pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-    }
-  }
-  break ;
-
-  case UPDATE_OPEN_FREQ_7 : {
-    update_open_freq_t *p = (update_open_freq_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:UPDATE_OPEN_FREQ_7 from %d\n",rrm->id, header->inst);
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ; //mod_lor_10_04_27
-    //mod_lor_10_05_18++: occ_channels passed as parameter to update open freq.
-    //channels vector incremented by one to have place to save the lenght of the vector
-    unsigned int        channels[3*p->NB_chan+1]; //!< Vector of channels
-    unsigned int        occ_channels[NB_SENS_MAX]    ; //!< Vector of values
-    unsigned int        occ_ch_NB; //!< Number of occupied channels
-    int i, j=0;
-
-    //mod_lor_10_06_02++
-    for (i=0; i<p->NB_chan; i++) {
-      channels[i*3]=p->channels[i].channel.Ch_id;
-      channels[(i*3)+1]=p->channels[i].channel.Start_f;
-      channels[(i*3)+2]=p->channels[i].channel.Final_f;
-    }
-
-    msg_fct( "free channels:\n");//dbg
-
-    for (int i=0; i<3*p->NB_chan; i++)//dbg
-      msg_fct( "  %d  ", channels[i]);//dbg
-
-    msg_fct( "\n");//dbg
-    occ_ch_NB = update_open_freq( rrm->id, p->L2_id, p->NB_chan, occ_channels, p->channels, header->Trans_id ); //mod_lor_10_05_18
-    //mod_lor_10_05_18--
-    printf("%d %d\n",p->NB_chan,occ_ch_NB);//dbg
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-    int r =  send_msg( rrm->graph.s,msg_generic_sens_resp(header->inst,msg_type,(3*p->NB_chan),occ_ch_NB,channels,occ_channels, header->Trans_id)); //mod_lor_10_05_17
-    WARNING(r!=0);
-    //mod_lor_10_04_20--
-    plot_SN_channels(rrm->rrc.pChannelsEntry,occ_ch_NB,occ_channels,rrm->id);//mod_lor_10_06_01
-
-  }
-  break ;
-
-  case UPDATE_SN_OCC_FREQ_5 : {
-    sleep (2); //mod_lor_10_06_02
-    update_SN_occ_freq_t *p = (update_SN_occ_freq_t *) msg ;
-
-    msg_fct( "[IP]>[RRM]:%d:UPDATE_SN_OCC_FREQ_5 from %d\n",rrm->id, header->inst);
-
-    if (p->NB_chan<CH_NEEDED_FOR_SN)    //mod_lor_10_06_02
-      SN_waiting = 1;                 //mod_lor_10_06_02
-    else                                //mod_lor_10_06_02
-      SN_waiting = 0;                 //mod_lor_10_06_02
-
-    //mod_lor_10_04_20++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ; //mod_lor_10_04_27
-    //int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    plot_SN_channels(rrm->rrc.pChannelsEntry, p->NB_chan, p->occ_channels, rrm->id);//mod_lor_10_06_01
-    //mod_lor_10_04_20--
-    //mod_lor_10_05_18++
-    unsigned int alarm[2];
-    //mod_lor_10_06_02++
-    unsigned int used_channels[2*p->NB_chan+1];
-    CHANNELS_DB_T *curr_chan;
-
-    for (int i=0; i<p->NB_chan; i++) {
-      curr_chan = get_chann_db_info( rrm->rrc.pChannelsEntry  ,p->occ_channels[i] );
-      used_channels[2*i]=curr_chan->channel.Start_f;
-      used_channels[(2*i)+1]=curr_chan->channel.Final_f;
-
-    }
-
-    msg_fct( "Channels used by SN:\n");//dbg
-
-    for (int i=0; i<2*p->NB_chan; i++)//dbg
-      msg_fct( "  %d  ", used_channels[i]);//dbg
-
-    msg_fct( "\n");//dbg
-
-    if (update_SN_occ_freq( rrm->id, p->L2_id, p->NB_chan, p->occ_channels, header->Trans_id )) {
-      alarm[0]=1;
-      int r =  send_msg( rrm->graph.s,msg_generic_sens_resp(header->inst,msg_type,(2*p->NB_chan),2,used_channels,alarm, header->Trans_id)); //mod_lor_10_05_17
-      WARNING(r!=0);
-      open_freq_query( rrm->id, p->L2_id, 0, header->Trans_id );//mod_lor_10_05_17
-    } else {
-      alarm[0]=0;
-      int r =  send_msg( rrm->graph.s,msg_generic_sens_resp(header->inst,msg_type,(2*p->NB_chan),2,used_channels,alarm, header->Trans_id)); //mod_lor_10_05_17
-      WARNING(r!=0);
-    }//mod_lor_10_05_18--//mod_lor_10_06_02--
-  }
-  break ;
-
-  //mod_lor_10_05_05++
-  case INIT_COLL_SENS_REQ : {
-    init_coll_sens_req_t *p = (init_coll_sens_req_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:INIT_COLL_SENS_REQ from %d\n",rrm->id, header->inst);
-    rrm->sensing.sens_active=1;//mod_lor_10_05_07
-    //mod_lor_10_05_10++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM  + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ; //mod_lor_10_04_27
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_05_10--
-    memcpy( rrm->L2_id_FC.L2_id, p->L2_id.L2_id, sizeof(L2_ID) );
-    cmm_init_sensing(rrm->id,p->Start_fr ,p->Stop_fr,p->Meas_band,p->Meas_tpf,
-                     p->Nb_channels, p->Overlap,p->Sampl_freq);
-
-  }
-  break ;
-
-  //mod_lor_10_05_05--
-  //mod_lor_10_05_06++
-  case STOP_COLL_SENS : {
-    //init_coll_sens_req_t *p = (init_coll_sens_req_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:STOP_COLL_SENS from %d\n",rrm->id, header->inst);
-    //mod_lor_10_05_10++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM  + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ; //mod_lor_10_04_27
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_05_10--
-    //memcpy( rrm->L2_id_FC.L2_id, p->L2_id.L2_id, sizeof(L2_ID) );
-    rrm->sensing.sens_active=0;//mod_lor_10_05_07
-    cmm_stop_sensing(rrm->id);
-
-  }
-  break ;
-
-  //mod_lor_10_05_06--
-  //mod_lor_10_05_12++
-  case STOP_COLL_SENS_CONF : {
-    stop_coll_sens_conf_t *p = (stop_coll_sens_conf_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:STOP_COLL_SENS_CONF from %d\n",rrm->id, header->inst);
-    //mod_lor_10_05_10++
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM  + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ; //mod_lor_10_04_27
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    //mod_lor_10_05_10--
-    //memcpy( rrm->L2_id_FC.L2_id, p->L2_id.L2_id, sizeof(L2_ID) );
-    rrc_end_scan_conf( rrm->id, p->L2_id, header->Trans_id );
-
-    if (SCEN_2_CENTR ) //add_lor_11_01_10
-      plot_spectra_CH1(NULL, 0,  -1);//add_lor_11_01_10
-
-  }
-  break ;
-
-  case USER_DISCONNECT_9 : { //add_lor_10_11_09
-    user_disconnect_t *p = (user_disconnect_t *) msg ;
-    msg_fct( "[IP]>[RRM]:%d:USER_DISCONNECT from %d\n",rrm->id, header->inst);
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM  + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ; //mod_lor_10_04_27
-    int r =  send_msg( rrm->graph.s, msg_graph_resp(header->inst,msg_type) );
-    WARNING(r!=0);
-    disconnect_user( rrm->id, p->L2_id );
-
-  }
-  break ;
-
-  case CLOSE_LINK : { //add_lor_10_11_09
-    close_link_t *p = (close_link_t *) msg ;
-    int msg_type = header->msg_type + NB_MSG_SNS_RRM  + NB_MSG_RRC_RRM + NB_MSG_CMM_RRM ; //mod_lor_10_04_27
-    msg_fct( "[IP]>[RRM]:%d:CLOSE_LINK from %d\n",rrm->id, header->inst);
-    unsigned int stop1=0, stop2=0,dest_id,source_id,i;
-
-    for (i=0; i<nb_inst && (stop1==0 || stop2==0); i++) {
-      if(L2_ID_cmp(&(rrm_inst[i].L2_id), &(p->L2_id))==0) {
-        stop1=1;
-        source_id = i;
-      }
-
-      if(L2_ID_cmp(&(rrm_inst[i].L2_id), &(p->L2_id_dest))==0) {
-        stop2=1;
-        dest_id = i;
-      }
-    }
-
-    printf ("source %d  dest %d st1 %d st2 %d\n",source_id, dest_id, stop1, stop2); //dbg
-
-    int r =  send_msg( rrm->graph.s, msg_generic_sens_resp(header->inst,msg_type,1,1,&source_id,&dest_id, header->Trans_id));
-    WARNING(r!=0);
-    close_active_link( rrm->id, p->L2_id, p->L2_id_dest );
-
-  }
-  break ;
-  break ;
-  //mod_lor_10_05_12--
-
-  default :
-    fprintf(stderr,"IP:\n") ;
-    printHex(msg,len_msg,1) ;
-  }
-}
-//mod_lor_10_01_25--
-
-/*!
-*******************************************************************************
-\brief  thread de traitement des messages sortants sur les sockets
-        (rrc ou cmm).
-\return none
-*/
-static void rrm_scheduler ( )
-{
-  int ii ;
-  int no_msg ;
-  fprintf(stderr,"RRM Scheduler: starting ... \n");
-  fflush(stderr);
-  file_msg_t *pItem ;
-  //mod_lor_10_04_22++
-  unsigned int priority = 0; ///< to guarantee priority to one rrm (fusion center) during sensing period
-  unsigned int pr_ii = 0; ///< id of the rrm with priority
-  rrm_t      *rrm ;
-
-  //mod_lor_10_04_22--
-  while ( flag_not_exit) {
-    no_msg = 0  ;
-
-    for ( ii = 0 ; ii<nb_inst ; ii++ ) {
-      //mod_lor_10_04_22++
-      if (priority) {
-        rrm = &rrm_inst[pr_ii] ;
-        ii--;
-        priority = 0;
-      }
-
-      else {
-        rrm = &rrm_inst[ii] ;
-
-        if (ii > 0 && rrm->sensing.sens_active)
-          priority = 1;
-      }
-
-      //mod_lor_10_04_22--
-      pItem=NULL;
-
-      pItem = get_msg( &(rrm->file_recv_msg)) ;
-
-      if ( pItem == NULL )
-        no_msg++;
-      else {
-        msg_head_t *header = (msg_head_t *) pItem->msg;
-        char *msg = NULL ;
-
-        if ( header != NULL ) {
-          if ( header->size > 0 ) {
-            msg = (char *) (header +1) ;
-          }
-
-          //mod_lor_10_01_25
-          if (pItem->s_type==0) {
-            if ( pItem->s->s == rrm->cmm.s->s )
-              processing_msg_cmm( rrm , header , msg , header->size ) ;
-            else if ( pItem->s->s == rrm->rrc.s->s ) {
-              processing_msg_rrc( rrm , header , msg , header->size ) ;
-            } else if ( pItem->s->s == rrm->sensing.s->s) {
-              processing_msg_sensing( rrm , header , msg , header->size ) ;
-              //fprintf(stderr,"RRM Scheduler: sensing message ... \n"); //dbg
-            } else
-              processing_msg_pusu( rrm , header , msg , header->size ) ;
-          } else {
-            //fprintf(stderr,"RRM Scheduler: ip message ... \n"); //dbg
-            processing_msg_ip( rrm , header , msg , header->size ) ;
-
-          }
-
-          RRM_FREE( pItem->msg) ;
-        }
-
-        RRM_FREE( pItem ) ;
-      }
-    }
-
-    if ( no_msg == nb_inst )
-      usleep(1000);
-  }
-
-  fprintf(stderr,"... stopped RRM Scheduler\n");
-  fflush(stderr);
-}
-/*!
-*******************************************************************************
-\brief This function reads the configuration node file
-*/
-static void get_config_file(char *filename )
-{
-  FILE *fd = fopen( filename , "r" );
-  char buf_line[128] ;
-  int adresse[LENGTH_L2_ID] ;
-  int ii = 0 ;
-
-
-  if ( fd == NULL )
-    return ;
-
-  while ( 1 ) {
-    fgets( buf_line, 127, fd ) ;
-
-    if (feof(fd))
-      break ;
-
-    if ( buf_line[0] == '#' )
-      continue ;
-
-    if ( buf_line[0] == ' ' )
-      continue ;
-
-    if ( buf_line[0] == '\t' )
-      continue ;
-
-    if ( buf_line[0] == '\n' )
-      continue ;
-
-    sscanf( buf_line, "%x %x %x %x %x %x %x %x",
-            &adresse[0],&adresse[1],&adresse[2],&adresse[3],
-            &adresse[4],&adresse[5],&adresse[6],&adresse[7]);
-
-    rrm_inst[ii].id                 = ii ;
-    rrm_inst[ii].L2_id.L2_id[0]     = adresse[0] &  0xFF ;
-    rrm_inst[ii].L2_id.L2_id[1]     = adresse[1] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[2]     = adresse[2] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[3]     = adresse[3] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[4]     = adresse[4] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[5]     = adresse[5] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[6]     = adresse[6] &  0xFF;
-    rrm_inst[ii].L2_id.L2_id[7]     = adresse[7] &  0xFF;
-
-    print_L2_id( &rrm_inst[ii].L2_id ) ;
-    fprintf(stderr," (%d) %d \n", ii, buf_line[0] );
-
-    ii++ ;
-
-    adresse[0]=adresse[1]=adresse[2]=adresse[3]=adresse[4]=adresse[5]=adresse[6]=adresse[7]=0;
-    buf_line[0] = 0;
-  }
-
-  nb_inst = ii ;
-
-  fclose(fd) ;
-}
-/*!
-*******************************************************************************
-\brief This function displays the help message (syntax)
-*/
-static void help()
-{
-  fprintf(stderr,"syntax: rrm -i <nombre instance> \n" );
-  fprintf(stderr,"        rrm -f <config file> \n" );
-}
-
-/*!
-*******************************************************************************
-\brief programme principale du RRM
-*/
-int main( int argc , char **argv )
-{
-  fprintf(stderr,"\n\nVersion of RRM with graphic interface\n\n\n\n" );//mod_lor_10_04_20
-
-  int ii;
-  int c           =  0;
-  int ret         =  0;
-  int flag_cfg    =  0 ;
-  struct data_thread DataRrc;
-  struct data_thread DataCmm;
-  struct data_thread DataPusu;
-  struct data_thread DataSensing;
-  struct data_thread DataGraph;
-  sock_rrm_t  s_gr[MAX_RRM]         ;
-
-  sock_rrm_int_t  DataIpS[MAX_RRM]; //mod_lor_10_01_25
-  pthread_attr_t attr ;
-
-  /* Vérification des arguments */
-  while ((c = getopt(argc,argv,"i:f:h")) != -1)
-    switch (c) {
-    case 'i':
-      nb_inst=atoi(optarg);
-      break;
-
-    case 'f':
-      get_config_file(optarg);
-      flag_cfg = 1 ;
-      break;
-
-    case 'h':
-      help();
-      exit(0);
-      break;
-
-    default:
-      help();
-      exit(0);
-    }
-
-  if (nb_inst <= 0 ) {
-    fprintf(stderr,"[RRM] Provide a node id\n");
-    exit(-1);
-  }
-
-  if (nb_inst >= MAX_RRM) {
-    fprintf(stderr,"[RRM] the instance number (%d) is upper than MAX_RRM (%d)\n", nb_inst, MAX_RRM);
-    exit(-1);
-  }
-
-#ifdef RRC_KERNEL_MODE
-  msg("RRM INIT :open fifos\n");
-
-  while (( Rrm_fifos.rrc_2_rrm_fifo= open ("/dev/rtf14", O_RDONLY )) < 0) {
-    printf("[RRM][INIT] open fifo  /dev/rtf14 returned %d\n", Rrm_fifos.rrc_2_rrm_fifo);
-    usleep(100);
-  }
-
-  printf ("[RRM][INIT] open fifo  /dev/rtf14 returned %d\n", Rrm_fifos.rrc_2_rrm_fifo);
-
-  while (( Rrm_fifos.rrm_2_rrc_fifo= open ("/dev/rtf15", O_WRONLY |O_NONBLOCK  | O_NDELAY)) < 0) {
-    //| O_BLOCK
-    printf("[RRM][INIT] open fifo  /dev/rtf15 returned %d\n", Rrm_fifos.rrm_2_rrc_fifo);
-    usleep(100);
-  }
-
-  printf("[RRM][INIT] open fifo  /dev/rtf15 returned %d\n", Rrm_fifos.rrm_2_rrc_fifo);
-#endif /* RRC_KERNEL_MODE */
-
-  /* ***** MUTEX ***** */
-  // initialise les attributs des threads
-  pthread_attr_init( &attr ) ;
-  pthread_attr_setschedpolicy( &attr, SCHED_RR ) ;
-
-  DataRrc.name        = "RRC" ;
-  DataRrc.sock_path_local = RRM_RRC_SOCK_PATH ;
-  DataRrc.sock_path_dest  = RRC_RRM_SOCK_PATH ;
-  DataRrc.s.s             = -1 ;
-
-  DataCmm.name        = "CMM" ;
-  DataCmm.sock_path_local = RRM_CMM_SOCK_PATH ;
-  DataCmm.sock_path_dest  = CMM_RRM_SOCK_PATH ;
-  DataCmm.s.s             = -1 ;
-
-  DataPusu.name           = "PUSU" ;
-  DataPusu.sock_path_local= RRM_PUSU_SOCK_PATH ;
-  DataPusu.sock_path_dest = PUSU_RRM_SOCK_PATH ;
-  DataPusu.s.s            = -1 ;
-
-  DataSensing.name           = "SENSING" ;
-  DataSensing.sock_path_local= RRM_SENSING_SOCK_PATH ;
-  DataSensing.sock_path_dest = SENSING_RRM_SOCK_PATH ;
-  DataSensing.s.s            = -1 ;
-
-  //mod_lor_10_04_20++
-  DataGraph.name           = "Graph" ;
-  DataGraph.sock_path_local= "/tmp/rrm_socket" ;
-  DataGraph.sock_path_dest = "/tmp/rrm_socket" ;
-  DataGraph.s.s            = -1 ;
-  //mod_lor_10_04_20--
-
-#ifdef TRACE
-  cmm2rrm_fd  = fopen( "VCD/cmm2rrm.txt" , "w") ;
-  PNULL(cmm2rrm_fd) ;
-
-  rrc2rrm_fd  = fopen( "VCD/rrc2rrm.txt", "w") ;
-  PNULL(rrc2rrm_fd) ;
-
-  pusu2rrm_fd = fopen( "VCD/pusu2rrm.txt", "w") ;
-  PNULL(pusu2rrm_fd) ;
-
-  ip2rrm_fd = fopen( "VCD/ip2rrm.txt", "w") ;
-  PNULL(ip2rrm_fd) ;
-
-  sensing2rrm_fd = fopen( "VCD/sensing2rrm.txt", "w") ;
-  PNULL(sensing2rrm_fd) ;
-
-#endif
-  output_2 = fopen( "VCD/output_2.txt", "w") ; //mod_lor_10_04_20
-  PNULL(output_2) ; //mod_lor_10_04_20
-
-  for ( ii = 0 ; ii < nb_inst ; ii++ ) {
-    DataIpS[ii].s               = -1 ;    //mod_lor_10_01_25
-
-    if ( !flag_cfg ) {
-      rrm_inst[ii].id                 = ii ;
-      rrm_inst[ii].L2_id.L2_id[0]     = ii;
-      rrm_inst[ii].L2_id.L2_id[1]     = 0x00;
-      rrm_inst[ii].L2_id.L2_id[2]     = 0x00;
-      rrm_inst[ii].L2_id.L2_id[3]     = 0xDE;
-      rrm_inst[ii].L2_id.L2_id[4]     = 0xAD;
-      rrm_inst[ii].L2_id.L2_id[5]     = 0xBE;
-      rrm_inst[ii].L2_id.L2_id[6]     = 0xAF;
-      rrm_inst[ii].L2_id.L2_id[7]     = 0x00;
-    }
-
-    pthread_mutex_init( &( rrm_inst[ii].rrc.exclu ), NULL ) ;
-    pthread_mutex_init( &( rrm_inst[ii].cmm.exclu ), NULL ) ;
-    pthread_mutex_init( &( rrm_inst[ii].pusu.exclu ), NULL ) ;
-    pthread_mutex_init( &( rrm_inst[ii].sensing.exclu ), NULL ) ;
-    pthread_mutex_init( &( rrm_inst[ii].ip.exclu ), NULL ) ; //mod_lor_10_01_25
-
-    init_file_msg( &(rrm_inst[ii].file_recv_msg), 1 ) ;
-    init_file_msg( &(rrm_inst[ii].file_send_cmm_msg), 2 ) ;
-    init_file_msg( &(rrm_inst[ii].file_send_rrc_msg), 3 ) ;
-    init_file_msg( &(rrm_inst[ii].file_send_ip_msg), 4 ) ; //mod_lor_10_01_25
-    init_file_msg( &(rrm_inst[ii].file_send_sensing_msg), 5 ) ;
-
-
-    rrm_inst[ii].state              = ISOLATEDNODE ;
-    rrm_inst[ii].role               = NOROLE ;
-    rrm_inst[ii].cmm.trans_cnt      =  1024;
-    rrm_inst[ii].rrc.trans_cnt      =  2048;
-    rrm_inst[ii].pusu.trans_cnt     =  3072;
-    rrm_inst[ii].ip.trans_cnt       =  4096; //mod_lor_10_01_25
-    rrm_inst[ii].sensing.trans_cnt  =  5120; //mod_lor_10_01_25
-
-
-
-    rrm_inst[ii].rrc.s              = &DataRrc.s;
-    rrm_inst[ii].cmm.s              = &DataCmm.s;
-    rrm_inst[ii].pusu.s             = &DataPusu.s;
-    rrm_inst[ii].sensing.s          = &DataSensing.s;
-    rrm_inst[ii].ip.s               = &DataIpS[ii]; //mod_lor_10_01_25
-    rrm_inst[ii].graph.s            = &s_gr[ii];    //mod_lor_10_04_20
-
-    //mod_lor_10_04_20++
-    int sock = open_socket( rrm_inst[ii].graph.s  ,"/tmp/rrm_socket", "/tmp/rrm_socket", ii ) ;
-
-    if ( sock != -1 ) {
-      fprintf(stderr,"  RRM %d graphic interface -> socket =  %d\n",ii , sock );
-      fflush(stderr);
-    }
-
-    //mod_lor_10_04_20--
-
-
-
-    rrm_inst[ii].rrc.transaction    = NULL ;
-    rrm_inst[ii].cmm.transaction    = NULL ;
-    rrm_inst[ii].pusu.transaction   = NULL ;
-    rrm_inst[ii].sensing.transaction= NULL ;
-
-    rrm_inst[ii].sensing.sens_active= 0 ;       //mod_lor_10_04_21
-    rrm_inst[ii].ip.users_waiting_update=0;     //add_lor_10_11_08
-    rrm_inst[ii].rrc.pNeighborEntry = NULL ;
-    rrm_inst[ii].rrc.pRbEntry       = NULL ;
-    rrm_inst[ii].rrc.pSensEntry     = NULL ;
-    rrm_inst[ii].rrc.pChannelsEntry = NULL ;
-
-  }
-
-
-  //open_socket( &DataRrc.s,  DataRrc.sock_path_local, DataRrc.sock_path_dest ,0 );
-
-  /* Creation du thread de reception des messages RRC*/
-  fprintf(stderr,"Creation du thread RRC : %d\n", nb_inst);
-#ifdef RRC_KERNEL_MODE
-  ret = pthread_create ( &pthread_recv_rrc_msg_hnd, NULL, thread_recv_msg_fifo , &DataRrc );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-#else
-  ret = pthread_create ( &pthread_recv_rrc_msg_hnd, NULL, thread_recv_msg , &DataRrc );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-#endif
-  /* Creation du thread de reception des messages CMM */
-  ret = pthread_create (&pthread_recv_cmm_msg_hnd , NULL, thread_recv_msg, &DataCmm );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  /* Creation du thread CMM d'envoi des messages */
-  ret = pthread_create (&pthread_send_cmm_msg_hnd, NULL, thread_send_msg_cmm, NULL );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  /* Creation du thread de reception des messages PUSU */
-  ret = pthread_create (&pthread_recv_pusu_msg_hnd , NULL, thread_recv_msg, &DataPusu );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  /* Creation du thread de reception des messages SENSING */
-  ret = pthread_create (&pthread_recv_sensing_msg_hnd , NULL, thread_recv_msg, &DataSensing );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  /* Creation du thread SENSING d'envoi des messages */
-  ret = pthread_create (&pthread_send_sensing_msg_hnd, NULL, thread_send_msg_sensing, NULL );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  /* Creation du thread RRC d'envoi des messages */
-  ret = pthread_create (&pthread_send_rrc_msg_hnd, NULL, thread_send_msg_rrc, NULL );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  //mod_lor_10_01_25++
-  /* Creation du thread IP d'envoi des messages */
-  ret = pthread_create (&pthread_send_ip_msg_hnd, NULL, thread_send_msg_ip, NULL );
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  //mod_lor_10_01_25--*/
-  /* Creation du thread TTL */
-  ret = pthread_create (&pthread_ttl_hnd , NULL, thread_processing_ttl, NULL);
-
-  if (ret) {
-    fprintf (stderr, "%s", strerror (ret));
-    exit(-1) ;
-  }
-
-  //mod_eure_lor++
-  if (SCEN_1) { //mod_lor_11_02_15++ : reorganization
-    if (FC_ID>=0 && BTS_ID>=0)
-      fl_initialize(&argc, argv, "Fusion Center & Secondary Network", 0, 0);
-    else if(FC_ID>=0)
-      fl_initialize(&argc, argv, "Fusion Center Spectral Measurements", 0, 0);
-    else if(BTS_ID>=0)
-      fl_initialize(&argc, argv, "Secondary Network Frequencies", 0, 0);
-
-    if (FC_ID>=0 ) {
-      form = create_form_sensing_form();
-      fl_show_form(form->sensing_form,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Spectral Measurements");
-      fl_check_forms();
-    }
-
-    //mod_lor_11_02_18++
-    if (FC_ID<0 && BTS_ID<0) {
-      fl_initialize(&argc, argv, "Sensor", 0, 0);
-      Sens_sensor_form = create_form_sens_sensor();
-      fl_show_form( Sens_sensor_form->sens_sensor,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Sensor");
-      fl_check_forms();
-    }
-
-    //mod_lor_11_02_18--
-
-    //mod_eure_lor--
-    //mod_lor_10_06_01++
-    if (BTS_ID>=0) {
-      SN_form = create_form_Secondary_Network_frequencies();
-      fl_show_form(SN_form->Secondary_Network_frequencies,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Secondary Network Frequencies");
-      fl_check_forms();
-    }
-
-    //mod_lor_10_06_01--
-  }
-
-  //mod_lor_10_11_04++
-  if (SCEN_2_CENTR) {
-    if (COLL_CLUST>=0 && FC_ID>=0) {
-      fl_initialize(&argc, argv, "Two Clusters", 0, 0);
-      Sens_form_CH2 = create_form_sens_scen_2();
-      fl_show_form(Sens_form_CH2->sens_scen_2,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Cluster 2: Sensing");
-      fl_check_forms();
-
-      Sens_form_CH1 = create_form_sens_CH1_scen_2();
-      fl_show_form(Sens_form_CH1->sens_CH1_scen_2,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Cluster 1: Sensing");     //Cluster 1:  mod_lor_10_12_07
-      fl_check_forms();
-
-      Chann_form = create_form_all_freq_to_users();
-      fl_show_form(Chann_form->all_freq_to_users,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Cluster 1: Used channels");
-      fl_check_forms();
-    } else if (COLL_CLUST>=0) { //mod_lor_11_02_14 : splitting in two clusters
-      fl_initialize(&argc, argv, "Cluster 2", 0, 0);
-      Sens_form_CH2 = create_form_sens_scen_2();
-      fl_show_form(Sens_form_CH2->sens_scen_2,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Cluster 2: Sensing");
-      fl_check_forms();
-    } //mod_lor_11_02_14
-    else {
-      fl_initialize(&argc, argv, "Cluster 1", 0, 0);
-      Sens_form_CH1 = create_form_sens_CH1_scen_2();
-      fl_show_form(Sens_form_CH1->sens_CH1_scen_2,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Cluster 1: Sensing");     //Cluster 1:  mod_lor_10_12_07
-      fl_check_forms();
-
-      Chann_form = create_form_all_freq_to_users();
-      fl_show_form(Chann_form->all_freq_to_users,FL_PLACE_HOTSPOT,FL_FULLBORDER,"Cluster 1: Used channels");
-      fl_check_forms();
-    }
-  }//mod_lor_11_02_15--
-
-  //mod_lor_10_11_04--
-
-  /* main loop */
-  rrm_scheduler( ) ;
-
-  /* Attente de la fin des threads. */
-  pthread_join (pthread_recv_cmm_msg_hnd, NULL);
-  pthread_join (pthread_recv_rrc_msg_hnd, NULL);
-  pthread_join (pthread_recv_pusu_msg_hnd, NULL);
-  pthread_join (pthread_recv_sensing_msg_hnd, NULL);
-  pthread_join (pthread_send_cmm_msg_hnd, NULL);
-  pthread_join (pthread_send_rrc_msg_hnd, NULL);
-  pthread_join (pthread_send_sensing_msg_hnd, NULL);
-  pthread_join (pthread_send_ip_msg_hnd, NULL);
-  pthread_join (pthread_ttl_hnd, NULL);
-
-
-#ifdef TRACE
-  fclose(cmm2rrm_fd ) ;
-  fclose(rrc2rrm_fd ) ;
-  fclose(pusu2rrm_fd ) ;
-  fclose(sensing2rrm_fd ) ;
-
-#endif
-  fclose(output_2 ) ; //mod_lor_10_04_20
-
-  return 0 ;
-}
-
diff --git a/openair3/MESH/RRM/rrm_sock.c b/openair3/MESH/RRM/rrm_sock.c
deleted file mode 100644
index aa57766b7e..0000000000
--- a/openair3/MESH/RRM/rrm_sock.c
+++ /dev/null
@@ -1,436 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrm_sock.c
-
-\brief      RRM (Radio Ressource Manager ) Socket
-
-            Ceux sont les fonctions relatives à la communication avec les
-            autres entites:
-                - RRC ,
-                - CMM ,
-                - PUSU
-
-\author     BURLOT Pascal
-
-\date       10/07/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "rrm_util.h"
-#include "rrm_sock.h"
-
-//! \brief  Taille maximale de la charge utile
-#define SIZE_MAX_PAYLOAD    16384 //mod_lor_10_05_24
-
-
-
-
-#include <sys/socket.h>
-#include <netinet/in.h>   //mod_lor_10_01_25
-#include <arpa/inet.h>   //mod_lor_10_01_25
-#include <sys/un.h>
-
-
-
-/*!
-*******************************************************************************
-\brief  This function opens a unix socket for the rrm communication
-        ( no-connected mode / UDP DATAGRAM )
-\return  The return value is a socket handle
-*/
-int open_socket(
-  sock_rrm_t *s   ,   ///< socket descriptor
-  char *path_local,   ///< local socket path if unix socket
-  char *path_dest ,   ///< host  Socket path if unix socket
-  int rrm_inst        ///< instance of the rrm entity
-)
-{
-  /* Unix socket */
-  int     socket_fd ;
-  int     len ;
-
-  if ((socket_fd = socket(AF_UNIX, SOCK_DGRAM, 0)) == -1) {
-    perror("unix socket");
-    return -1 ;
-  }
-
-  memset(&(s->un_local_addr), 0, sizeof(struct    sockaddr_un));
-  s->un_local_addr.sun_family = AF_UNIX;
-  sprintf(s->un_local_addr.sun_path,"%s%d", path_local, rrm_inst );
-  unlink(s->un_local_addr.sun_path);
-
-  len = strlen((s->un_local_addr).sun_path) + sizeof((s->un_local_addr).sun_family);
-
-  if (bind(socket_fd, (struct sockaddr *)&(s->un_local_addr), len) == -1) {
-    perror("bind");
-    return -1 ;
-  }
-
-  memset(&(s->un_dest_addr), 0, sizeof(struct     sockaddr_un));
-  s->un_dest_addr.sun_family = AF_UNIX;
-  sprintf(s->un_dest_addr.sun_path,"%s%d", path_dest, rrm_inst );
-
-  s->s = socket_fd ;
-  return socket_fd ;
-}
-
-/*!
-*******************************************************************************
-\brief  This function closes a RRM socket
-\return none
-*/
-void close_socket(
-  sock_rrm_t *sock  ///< the socket handle
-)
-{
-  shutdown(sock->s, SHUT_RDWR);
-  close(sock->s);
-}
-
-/*!
-*******************************************************************************
-\brief  This function send a buffer message to the unix socket
-\return if OK then "0" is returned else "-1"
-*/
-int send_msg(
-  sock_rrm_t *s   ,///< socket descriptor
-  msg_t *msg       ///< the message to send
-)
-{
-  /* Unix socket */
-  int                 ret     = 0 ;
-  char                *buf    = NULL;
-  struct  msghdr      msghd ;
-  struct  iovec       iov;
-  int                 taille  = sizeof(msg_head_t)  ;
-
-  if ( msg == NULL )
-    return -1 ;
-
-  if ( msg->data != NULL )
-    taille += msg->head.size ;
-
-  buf = RRM_MALLOC(char, taille);
-
-  if (buf ==NULL)
-    ret =  -1 ;
-  else {
-    memcpy( buf , &(msg->head) , sizeof(msg_head_t) ) ;
-    memcpy( buf+sizeof(msg_head_t), msg->data, msg->head.size ) ;
-
-    iov.iov_base      = (void *)buf;
-    iov.iov_len       = taille ;
-
-    msghd.msg_name          = (void *)&(s->un_dest_addr);
-    msghd.msg_namelen       = sizeof(s->un_dest_addr);
-    msghd.msg_iov           = &iov;
-    msghd.msg_iovlen        = 1;
-    msghd.msg_control       = NULL ;
-    msghd.msg_controllen    =   0 ;
-
-    if ( sendmsg(s->s, &msghd, 0) < 0 ) {
-      ret = -1;
-      perror("sendmsg:unix socket unix");
-    }
-  }
-
-  RRM_FREE(buf) ;
-  RRM_FREE(msg->data) ;
-  RRM_FREE(msg) ;
-
-  return ret ;
-}
-
-/*!
-*******************************************************************************
-\brief  This function read a buffer from a unix socket
-\return the function returns a message pointer. If the pointeur is NULL, a error
-         is happened.
-*/
-char *recv_msg(
-  sock_rrm_t *s   ///< socket descriptor
-)
-{
-  /* Unix socket */
-  char                *buf = NULL;
-  char                *msg = NULL;
-  struct  msghdr      msghd ;
-  struct  iovec       iov;
-  int                 size_msg ;
-  msg_head_t          *head  ;
-  int                 ret ;
-
-  int taille =  SIZE_MAX_PAYLOAD ;
-
-  buf                 = RRM_CALLOC( char,taille);
-
-  if ( buf == NULL ) {
-    fprintf(stderr,"error recvmsg_un: 0x%02x\n", msghd.msg_flags) ;
-    return NULL ;
-  }
-
-  iov.iov_base        = (void *)buf;
-  iov.iov_len         = taille ;
-  msghd.msg_name      = (void *)&(s->un_dest_addr);
-  msghd.msg_namelen   = sizeof(s->un_dest_addr);
-  msghd.msg_iov       = &iov;
-  msghd.msg_iovlen    = 1;
-  msghd.msg_control   = NULL ;
-  msghd.msg_controllen= 0 ;
-
-  ret = recvmsg(s->s, &msghd , 0 ) ;
-
-  if ( ret <= 0  ) {
-    perror("PB recvmsg_un");
-    RRM_FREE(buf);
-    return NULL ;
-  }
-
-  if (msghd.msg_flags != 0 ) {
-    fprintf(stderr,"error recvmsg_un: 0x%02x\n", msghd.msg_flags) ;
-    RRM_FREE(buf);
-    return NULL ;
-  }
-
-  head        = (msg_head_t *) buf  ;
-  size_msg    = sizeof(msg_head_t) + head->size ;
-
-  msg         = RRM_CALLOC(char , size_msg ) ;
-
-  if ( msg != NULL )
-    memcpy( msg , buf , size_msg ) ;
-
-  RRM_FREE( buf ) ;
-
-  return msg ;
-}
-
-//mod_lor_10_01_25++
-/*!
-*******************************************************************************
-\brief  This function opens a internet socket for the rrm communication
-        ( no-connected mode / UDP DATAGRAM ) -> considered address: IPv4
-\return  The return value is a socket handle
-*/
-int open_socket_int(
-  sock_rrm_int_t *s,  ///< socket descriptor
-  unsigned char *path_local ,  ///< local socket path if internet socket
-  int local_port,     ///< local socket port if internet socket
-  unsigned char *path_dest ,   ///< dest socket path if internet socket
-  int dest_port,      ///< dest socket port if internet socket
-  int rrm_inst        ///< instance of the rrm entity
-)
-{
-  /* Internet socket */
-  int     socket_fd ;
-  int     len ;
-  unsigned long int tmp;
-  unsigned char local_test [4];
-
-  if (path_local == NULL)
-    fprintf(stderr,"path_local = NULL\n  ");//dbg
-
-
-  if ((socket_fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
-    perror("internet socket");
-    return -1 ;
-  }
-
-
-  //!Setting local address
-  memset(&(s->in_local_addr), 0, sizeof(struct    sockaddr_in));
-  s->in_local_addr.sin_family = AF_INET;
-  s->in_local_addr.sin_port = htons(local_port);
-  memcpy(&tmp,path_local,4);
-  //fprintf(stderr,"\nOpen sock: path_local %X \n", tmp);//dbg
-  s->in_local_addr.sin_addr.s_addr = tmp;
-
-
-  len = sizeof(s->in_local_addr);
-
-  if (bind(socket_fd, (struct sockaddr *)&(s->in_local_addr), len) == -1) {
-    perror("bind internet");
-    return -1 ;
-  }
-
-  //!Setting destination address
-  memset(&(s->in_dest_addr), 0, sizeof(struct    sockaddr_in));
-  s->in_dest_addr.sin_family = AF_INET;
-  s->in_dest_addr.sin_port = htons(7000);
-  memcpy(&tmp,path_dest,4);
-  //fprintf(stderr,"Open sock: path_dest %X \n", tmp);//dbg
-  s->in_dest_addr.sin_addr.s_addr = tmp;
-
-  s->s = socket_fd ;
-  //fprintf(stderr,"IP address %X \n", s->in_local_addr.sin_addr.s_addr);//dbg
-  // fprintf(stderr,"IP dest %X \n", s->in_dest_addr.sin_addr.s_addr);//dbg
-  return socket_fd ;
-}
-
-
-
-/*!
-*******************************************************************************
-\brief  This function read a buffer from a internet socket
-\return the function returns a message pointer. If the pointeur is NULL, a error
-         is happened.
-*/
-char *recv_msg_int(
-  sock_rrm_int_t *s   ///< socket descriptor
-)
-{
-  /* Internet socket */
-  char                *buf = NULL;
-  char                *msg = NULL;
-  int                 size_msg ;
-  msg_head_t          *head  ;
-  int                 ret ;
-  //struct  sockaddr_in newS;
-  //socklen_t len_addr = sizeof(struct sockaddr_in);
-
-  int taille =  SIZE_MAX_PAYLOAD ;
-  //fprintf(stderr,"RF dentro recv_from \n  ");//dbg
-
-  buf                 = RRM_CALLOC( char,taille);
-
-  if ( buf == NULL ) {
-    return NULL ;
-  }
-
-  //fprintf(stderr,"RF s: %d\n  ", s->s);//dbg
-
-
-  //ret = recvfrom(s->s, buf, taille, 0,(struct sockaddr *)&(newS), &len_addr) ;
-  ret = recvfrom(s->s, buf, taille, 0,NULL, 0) ; //mod_lor_10_04_23
-
-  //fprintf(stderr,"RF dopo recv s = %d\n  ",s->s);//dbg
-  if ( ret <= 0  ) {
-    //fprintf(stderr,"RF ret %d\n  ",ret );//dbg
-    perror("PB recvfrom_in");
-    RRM_FREE(buf);
-    return NULL ;
-  }
-
-
-  head        = (msg_head_t *) buf  ;
-  size_msg    = sizeof(msg_head_t) + head->size ;
-
-  msg         = RRM_CALLOC(char , size_msg ) ;
-
-  if ( msg != NULL )
-    memcpy( msg , buf , size_msg ) ;
-
-  RRM_FREE( buf ) ;
-  //fprintf(stderr,"dim_msg %d\n  ",sizeof(msg) );//dbg
-  //fprintf(stderr,"RF s at the end: %d\n  ", s->s);//dbg
-  return msg ;
-}
-
-
-/*!
-*******************************************************************************
-\brief  This function send a buffer message to the internet socket
-\return if OK then "0" is returned else "-1"
-*/
-int send_msg_int(
-  sock_rrm_int_t *s                       ,///< socket descriptor
-  msg_t *msg                           ///< the message to send
-
-)
-{
-  /* Internet socket */
-  int                 ret     = 0 ;
-  char                *buf    = NULL;
-  int                 taille  = sizeof(msg_head_t)  ;
-  //fprintf(stderr,"Send IP msg socket -> %d\n  ",s->s );//dbg
-
-  if ( msg == NULL )
-    return -1 ;
-
-  if ( msg->data != NULL )
-    taille += msg->head.size ;
-
-  buf = RRM_MALLOC(char, taille);
-
-  if (buf ==NULL)
-    ret =  -1 ;
-
-  else {
-    memcpy( buf , &(msg->head) , sizeof(msg_head_t) ) ;
-    memcpy( buf+sizeof(msg_head_t), msg->data, msg->head.size ) ;
-
-    //fprintf(stderr,"Sendto IP msg on socket %d msg_type %d\n  ",s->s, msg->head.msg_type );//dbg
-    //fprintf(stderr,"to %X \n\n\n\n\n", s->in_dest_addr.sin_addr.s_addr);//dbg
-    if ( sendto(s->s, buf, taille, 0, (struct  sockaddr *)&(s->in_dest_addr), sizeof(struct  sockaddr_in)) < 0 ) {
-      ret = -1;
-      perror("sendmsg:socket ip");
-    }
-  }
-
-  //fprintf(stderr,"Before free ret %d\n  ", ret);//dbg
-  RRM_FREE(buf) ;
-  RRM_FREE(msg->data) ;
-  RRM_FREE(msg) ;
-  //fprintf(stderr,"After free ret %d\n  ", ret);//dbg
-  return ret ;
-}
-
-/*!
-*******************************************************************************
-\brief  This function closes a RRM socket
-\return none
-*/
-void close_socket_int(
-  sock_rrm_int_t *sock  ///< the socket handle
-)
-{
-  shutdown(sock->s, SHUT_RDWR);
-  close(sock->s);
-}
-
-//mod_lor_10_01_25--
diff --git a/openair3/MESH/RRM/rrm_sock.h b/openair3/MESH/RRM/rrm_sock.h
deleted file mode 100644
index 1982740362..0000000000
--- a/openair3/MESH/RRM/rrm_sock.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrm_sock.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-            et des fonctions relatives aux fonctions de communication RRM
-            (Radio Resource Management ) avec les autres entites RRC/CMM/PUSU.
-
-\author     BURLOT Pascal
-
-\date       15/07/08
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-
-#ifndef RRM_SOCK_H
-#define RRM_SOCK_H
-
-
-
-
-
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <netinet/in.h>   //mod_lor_10_01_25
-#include <netdb.h>   //mod_lor_10_01_25
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//AAA: if rrc_emul add a 0 at the end of file name
-#ifdef RRC_EMUL
-//! \brief Socket path associated to RRM-CMM interface
-#define RRM_CMM_SOCK_PATH "/tmp/rrm_cmm_socket0"
-//! \brief Socket path associated to CMM-RRM interface
-#define CMM_RRM_SOCK_PATH "/tmp/cmm_rrm_socket0"
-
-//! \brief Socket path associated to RRM-RRC interface
-#define RRM_RRC_SOCK_PATH "/tmp/rrm_rrc_socket0"
-//! \brief Socket path associated to RRC-RRM interface
-#define RRC_RRM_SOCK_PATH "/tmp/rrc_rrm_socket0"
-
-//! \brief Socket path associated to RRM-PUSU interface
-#define RRM_PUSU_SOCK_PATH "/tmp/rrm_pusu_socket0"
-//! \brief Socket path associated to PUSU-RRM interface
-#define PUSU_RRM_SOCK_PATH "/tmp/pusu_rrm_socket0"
-
-//! \brief Socket path associated to RRM-SENSING interface
-#define RRM_SENSING_SOCK_PATH "/tmp/rrm_sensing_socket0"
-//! \brief Socket path associated to SENSING-RRM interface
-#define SENSING_RRM_SOCK_PATH "/tmp/sensing_rrm_socket0"
-
-#else
-//! \brief Socket path associated to RRM-CMM interface
-#define RRM_CMM_SOCK_PATH "/tmp/rrm_cmm_socket"
-//! \brief Socket path associated to CMM-RRM interface
-#define CMM_RRM_SOCK_PATH "/tmp/cmm_rrm_socket"
-
-//! \brief Socket path associated to RRM-RRC interface
-#define RRM_RRC_SOCK_PATH "/tmp/rrm_rrc_socket"
-//! \brief Socket path associated to RRC-RRM interface
-#define RRC_RRM_SOCK_PATH "/tmp/rrc_rrm_socket"
-
-//! \brief Socket path associated to RRM-PUSU interface
-#define RRM_PUSU_SOCK_PATH "/tmp/rrm_pusu_socket"
-//! \brief Socket path associated to PUSU-RRM interface
-#define PUSU_RRM_SOCK_PATH "/tmp/pusu_rrm_socket"
-
-//! \brief Socket path associated to RRM-SENSING interface
-#define RRM_SENSING_SOCK_PATH "/tmp/rrm_sensing_socket"
-//! \brief Socket path associated to SENSING-RRM interface
-#define SENSING_RRM_SOCK_PATH "/tmp/sensing_rrm_socket"
-#endif /*RRC_EMUL*/
-
-
-
-//! \brief Identification of the RRM/CMM/RRC message begin
-#define START_MSG      0xA533
-//! \brief Identification of the PUSU message begin
-#define START_MSG_PUSU 0xCC
-
-
-
-/*!
-*******************************************************************************
-\brief   Entete des messages de RRM/CMM/RRC
-*/
-typedef struct {
-  unsigned short start    ; ///< Identification du debut de message
-  Instance_t     inst     ; ///< Identification de l'instance RRM
-  unsigned char  msg_type ; ///< Identification du type message
-  unsigned int   size     ; ///< Taille du message
-  Transaction_t  Trans_id ; ///< Identification de la transaction
-} msg_head_t ;
-
-/*!
-*******************************************************************************
-\brief   Definition de la structure d'un message a envoyer sur un socket:
-            - RRM->RRC
-            - RRC->RRM
-            - RRCI->RRC
-            - RRC->RRCI
-            - CMM->RRM
-            - RRM->CMM
-*/
-typedef struct {
-  msg_head_t  head  ; ///< entete du message
-  char        *data ; ///< message
-} msg_t ;
-
-
-/*!
-*******************************************************************************
-\brief  Definition de la structure definissant le socket pour envoyer les messages
-*/
-typedef struct {
-  int s                                   ; ///< identification du socket
-  struct  sockaddr_un un_local_addr       ; ///< Adresse local si unix socket
-  struct  sockaddr_un un_dest_addr        ; ///< Adresse destinataire si unix socket
-} sock_rrm_t ;
-
-//mod_lor_10_01_25++
-typedef struct {
-  int s                                   ; ///< identification du socket
-  struct  sockaddr_in in_local_addr       ; ///< Adresse local si internet socket
-  struct  sockaddr_in in_dest_addr        ; ///< Adresse destinataire si internet socket
-} sock_rrm_int_t ;
-//mod_lor_10_01_25--
-
-
-int   open_socket( sock_rrm_t *s  ,char *path_local, char *path_dest , int rrm_inst ) ;
-void  close_socket(sock_rrm_t *sock ) ;
-int   send_msg(sock_rrm_t *s  ,msg_t *msg ) ;
-char *recv_msg( sock_rrm_t *s ) ;
-
-int   open_socket_int( sock_rrm_int_t *s  , unsigned char *path_local, int local_port, unsigned char *path_dest , int dest_port, int rrm_inst ) ;   //mod_lor_10_01_25
-int   send_msg_int(sock_rrm_int_t *s  ,msg_t *msg  ) ; //mod_lor_10_01_25
-char *recv_msg_int( sock_rrm_int_t *s ) ;  //mod_lor_10_01_25
-void  close_socket_int(sock_rrm_int_t *sock ) ;  //mod_lor_10_01_25
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* RRM_SOCK_H */
diff --git a/openair3/MESH/RRM/rrm_test.sh b/openair3/MESH/RRM/rrm_test.sh
deleted file mode 100644
index 9d31d866a5..0000000000
--- a/openair3/MESH/RRM/rrm_test.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-killall emul_int
-killall graph
-killall rrm
-
-xterm -T COMMAND_CONSOLE -bg '#000000' -fg '#00ff00' -hold -e ./emul_int  &
-
-sleep 2
-
-#xterm -T RRM1 -hold -e 
-./rrm -i 6 #2> log.txt
-
-#sleep 1
-#./emul_int  &
-
-
diff --git a/openair3/MESH/RRM/rrm_util.c b/openair3/MESH/RRM/rrm_util.c
deleted file mode 100644
index f96656c6fe..0000000000
--- a/openair3/MESH/RRM/rrm_util.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file     rrm_util.c
-
-\brief    Quelques fonctions utiles
-
-\author   BURLOT Pascal
-
-\date     17/07/08
-
-
-\par     Historique:
-      $Author$  $Date$  $Revision$
-      $Id$
-      $Log$
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <sys/time.h>
-
-//#include "extern_definition.h"
-#include "L3_rrc_defs.h"
-#include "rrm_util.h"
-
-/*!
-*******************************************************************************
-\brief  Affichage de l'adresse MAC
-*/
-
-void print_L2_id(
-  L2_ID *id ///< Pointeur sur l'adresse MAC
-)
-{
-  int i ;
-
-  for ( i=0; i<8; i++)
-    fprintf(stderr,"%02X:", id->L2_id[i]);
-}
-
-/*!
-*******************************************************************************
-\brief  Affichage de l'adresse IP
-*/
-
-void print_L3_id(
-  L3_INFO_T type      , ///< type de l'info de niveau 3
-  unsigned char *L3_info    ///< Pointeur sur l'identification de niveau 3
-)
-{
-  int i , n =0 ;
-
-  if ( type==IPv4_ADDR)
-    n=4;
-
-  if (type==IPv6_ADDR)
-    n=16;
-
-  for ( i=0; i<n; i++)
-    fprintf(stderr,"%02X:", L3_info[i]);
-}
-
-/*!
-*******************************************************************************
-\brief  Affichage d'un message en hexa
-*/
-
-void printHex(
-  char *msg, ///< Message brute
-  int len  , ///< Longueur a afficher
-  int opt    ///< Option ASCII
-)
-{
-  int i ;
-
-  if (msg != NULL )
-    for ( i=0; i<len; i++) {
-      fprintf(stderr,"%02X", *msg&0xff);
-
-      if (opt ) {
-        char c = *msg ;
-
-        if ( c<' ' ) c=' ' ;
-
-        if ( c>'Z')  c=' ' ;
-
-        fprintf(stderr,"(%c)",  c );
-      }
-
-      if ( i%16 == 15 )
-        fprintf(stderr,":\n");
-      else
-        fprintf(stderr,":");
-
-      msg++ ;
-    }
-
-  fprintf(stderr,"\n");
-  fflush( stderr) ;
-}
-
-/*!
-*******************************************************************************
-\brief  Lecture du registe de cycle du processeur
-
-\return  retourne le cycle courant du processeur
-*/
-
-__inline__ unsigned long long int rdtsc()
-{
-  unsigned long long int x;
-  __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
-  return x;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction retourne l'horloge courante
-
-\return  current clock
-*/
-double get_currentclock(  )
-{
-  /*
-  struct timespec tp;
-  clock_gettime(CLOCK_REALTIME, &tp );
-  return ( ((double) tp.tv_sec ) + ( (double) tp.tv_nsec)*1.0E-9 ) ;
-  */
-#ifdef LINUX
-
-  struct timeval tv;
-  struct timezone tz;
-
-  gettimeofday(&tv, &tz);
-
-  return ( ((double) tv.tv_sec ) + ( (double) tv.tv_usec)*1e-6) ;
-#else
-  unsigned long long int x;
-  __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
-
-  return ( (double) x * 0.36e-9 ) ;
-
-#endif
-}
diff --git a/openair3/MESH/RRM/rrm_util.h b/openair3/MESH/RRM/rrm_util.h
deleted file mode 100644
index da357aaf53..0000000000
--- a/openair3/MESH/RRM/rrm_util.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file     rrm_util.h
-
-\brief    Fichier d'entete contenant les declarations des types, des defines ,
-      et des fonctions relatives a des routines utilitaires du RRM .
-
-\author   BURLOT Pascal
-
-\date     17/07/08
-
-
-\par     Historique:
-        P.BURLOT 2009-01-20
-            + ajout de la macro msg_fifo() pour debug
-            + ajout de la macro MSG_L2ID() pour l'affichage du L2_ID (debug)
-            + ajout de la macro RRM_CALLOC2() (utilise par la fonction msg_rrc_sensing_meas_ind())
-            + ajout d'un #ifdef USE_CALLOC si on veut utiliser calloc() ou malloc().
-
-*******************************************************************************
-*/
-
-#ifndef RRM_UTIL_H
-#define RRM_UTIL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if 1
-//! Macro permettant l'affichage pour le debug
-#define msg( ... ) printf(__VA_ARGS__)
-//! Macro permettant l'affichage pour le debug
-#define msg_fct( ... ) printf(__VA_ARGS__)
-#else
-//! Macro inactive
-#define msg( ... )
-//! Macro inactive
-#define msg_fct( ... )
-#endif
-
-#if 0
-//! Macro permettant l'affichage pour le debug
-#define msg_fifo( ... ) printf(__VA_ARGS__)
-#else
-//! Macro inactive
-#define msg_fifo( ... )
-#endif
-
-#define MSG_L2ID(p) msg("[INFO] L2ID=%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:\n",\
-                  (p).L2_id[0],(p).L2_id[1], (p).L2_id[2],(p).L2_id[3],\
-                  (p).L2_id[4],(p).L2_id[5], (p).L2_id[6],(p).L2_id[7] );
-
-#define RRM_FREE(p)       if ( (p) != NULL) { free(p) ; p=NULL ; } if ( (p) != NULL) { fprintf( stderr, "(%d) [%s]\n",__LINE__, __FILE__); fflush(stderr) ; }
-#define RRM_MALLOC(t,n)   (t *) malloc( sizeof(t) * n )
-
-#ifdef USE_CALLOC
-// calloc version : la memoire est intialisee a zero
-#define RRM_CALLOC(t,n)    (t *) calloc( n  , sizeof(t))
-#define RRM_CALLOC2(t,s)   (t *) calloc( 1  , s )
-#else
-// malloc version : la memoire n'est pas intialisee a zero
-#define RRM_CALLOC(t,n)    (t *) malloc( sizeof(t) * n )
-#define RRM_CALLOC2(t,s)   (t *) malloc( s )
-#endif /* USE_CALLOC */
-
-#define RRM_MALLOC_STR(n) RRM_MALLOC(char,n+1)
-
-void print_L2_id( L2_ID *id );
-void print_L3_id(L3_INFO_T type,unsigned char *L3_info);
-void printHex( char *msg, int len , int opt);
-double get_currentclock(  ) ;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* RRM_UTIL_H */
diff --git a/openair3/MESH/RRM/sens_CH1_scen_2.c b/openair3/MESH/RRM/sens_CH1_scen_2.c
deleted file mode 100644
index d7826a9806..0000000000
--- a/openair3/MESH/RRM/sens_CH1_scen_2.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/* Form definition file generated with fdesign. */
-
-#include "forms.h"
-#include <stdlib.h>
-#include "sens_CH1_scen_2.h"
-
-FD_sens_CH1_scen_2 *create_form_sens_CH1_scen_2(void)
-{
-  FL_OBJECT *obj;
-  FD_sens_CH1_scen_2 *fdui = (FD_sens_CH1_scen_2 *) fl_calloc(1, sizeof(*fdui));
-
-  //mod_lor_10_12_07++
-  fdui->sens_CH1_scen_2 = fl_bgn_form(FL_NO_BOX, 460, 560);
-  obj = fl_add_box(FL_UP_BOX,0,0,460,560,"");
-  fdui->User_1_sens = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,10,420,100,"User_1_sens");
-  fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fdui->User_2_sens = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,140,420,100,"User_2_sens");
-  fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fdui->User_3_sens = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,280,420,100,"User_3_sens");
-  fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fdui->Cluster_2_sensing = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,420,420,100,"Cluster_2_received_information");
-  fl_set_object_color(obj,FL_BLACK,FL_YELLOW);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  //mod_lor_10_12_07--: messo in nota
-
-  /*  fdui->sens_CH1_scen_2 = fl_bgn_form(FL_NO_BOX, 650, 740);
-    obj = fl_add_box(FL_UP_BOX,0,0,650,740,"");
-    fdui->User_1_sens = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,40,10,560,110,"User_1_sens");
-      fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-      fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-    fdui->User_2_sens = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,40,150,560,110,"User_2_sens");
-      fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-      fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-    fdui->User_3_sens = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,40,290,560,110,"User_3_sens");
-      fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-      fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-    fdui->User_4_sens = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,40,430,560,110,"User_4_sens");
-      fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-      fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-    fdui->Cluster_2_sensing = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,40,570,560,130,"Cluster_2_global_sensing");
-      fl_set_object_color(obj,FL_BLACK,FL_YELLOW);
-      fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-      */
-  fl_end_form();
-
-  fdui->sens_CH1_scen_2->fdui = fdui;
-
-  return fdui;
-}
-/*---------------------------------------*/
-
diff --git a/openair3/MESH/RRM/sens_CH1_scen_2.fd b/openair3/MESH/RRM/sens_CH1_scen_2.fd
deleted file mode 100644
index f2b927f738..0000000000
--- a/openair3/MESH/RRM/sens_CH1_scen_2.fd
+++ /dev/null
@@ -1,124 +0,0 @@
-Magic: 13000
-
-Internal Form Definition File
-    (do not change)
-
-Number of forms: 1
-Unit of measure: FL_COORD_PIXEL
-
-=============== FORM ===============
-Name: sens_CH1_scen_2
-Width: 650
-Height: 740
-Number of Objects: 6
-
---------------------
-class: FL_BOX
-type: UP_BOX
-box: 0 0 650 740
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: 
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: 
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 40 10 560 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_1_sens
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_1_sens
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 40 150 560 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_2_sens
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_2_sens
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 40 290 560 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_3_sens
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_3_sens
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 40 430 560 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_4_sens
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_4_sens
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 40 570 560 130
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_YELLOW
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: Cluster_2_sensing
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: Cluster_2_sensing
-callback: 
-argument: 
-
-==============================
-create_the_forms
diff --git a/openair3/MESH/RRM/sens_CH1_scen_2.h b/openair3/MESH/RRM/sens_CH1_scen_2.h
deleted file mode 100644
index b8137fb630..0000000000
--- a/openair3/MESH/RRM/sens_CH1_scen_2.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/** Header file generated with fdesign on Fri Nov  5 17:11:31 2010.**/
-
-#ifndef FD_sens_CH1_scen_2_h_
-#define FD_sens_CH1_scen_2_h_
-
-/** Callbacks, globals and object handlers **/
-
-
-/**** Forms and Objects ****/
-typedef struct {
-  FL_FORM *sens_CH1_scen_2;
-  void *vdata;
-  char *cdata;
-  long  ldata;
-  FL_OBJECT *User_1_sens;
-  FL_OBJECT *User_2_sens;
-  FL_OBJECT *User_3_sens;
-  FL_OBJECT *User_4_sens;
-  FL_OBJECT *Cluster_2_sensing;
-} FD_sens_CH1_scen_2;
-
-extern FD_sens_CH1_scen_2 * create_form_sens_CH1_scen_2(void);
-
-#endif /* FD_sens_CH1_scen_2_h_ */
diff --git a/openair3/MESH/RRM/sens_db.c b/openair3/MESH/RRM/sens_db.c
deleted file mode 100755
index efae7e93ed..0000000000
--- a/openair3/MESH/RRM/sens_db.c
+++ /dev/null
@@ -1,569 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       sens_db.c
-
-\brief      Fonctions permettant la gestion de la base de donnée sur les infor-
-            mations du sensing
-
-\author     IACOBELLI Lorenzo
-
-\date       16/10/09
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "rrm_util.h"
-#include "sens_db.h"
-#include "channels_db.h"
-
-
-//! Selection locale du mode de debug
-#define DBG_SENS_DB 0
-
-#if DBG_SENS_DB==0
-//! Macro inactive
-#define PRINT_SENS_DB(...)
-#else
-//! Macro affichant  la liste des radio bearers
-#define PRINT_SENS_DB(...) print_sens_db( __VA_ARGS__ )
-#endif
-
-/*!
-*******************************************************************************
-\brief  La fonction affiche a l'ecran la liste (pour du debug)
-
-\return  aucune valeur retournee
-*/
-void print_sens_db(
-  Sens_node_t *pEntry ///< pointeur sur le debut de liste
-)
-{
-  //unsigned int i; //dbg
-  Sens_node_t *pCurrentItem = pEntry;
-  Sens_ch_t *pCurrentChannel;
-  int i,k;
-
-  fprintf(stderr,"node entry  @%p \n", pEntry);//dbg
-
-  //fprintf(stderr,"sens list=[\n");
-  while ( pCurrentItem != NULL) {
-    //fprintf(stderr,"curr item  @%p \n", pCurrentItem);//dbg
-    //fprintf(stderr,"  @%p(.info_time=%f, ",
-    //      pCurrentItem, pCurrentItem->info_time);
-
-    //fprintf(stderr,", @SRC= \n");
-    fprintf(stderr,"\nnode : ");
-
-    for ( i=0; i<8; i++)
-      fprintf(stderr,"%02X", pCurrentItem->L2_id.L2_id[i]);
-
-    // fprintf(stderr,"\ntpc :%d     ",pCurrentItem->tpc);
-    // fprintf(stderr,"overlap :%d      ",pCurrentItem->overlap);
-    // fprintf(stderr,"sampl_freq :%d  \n",pCurrentItem->sampl_freq);
-    pCurrentChannel=pCurrentItem->info_hd;
-
-    while ( pCurrentChannel != NULL) {
-      fprintf(stderr,"\n        @%p(\n.channel_id=%d, \n.start_fr=%d , \n.end_fr= %d:\n ",
-              pCurrentChannel, pCurrentChannel->Ch_id, pCurrentChannel->Start_f,pCurrentChannel->Final_f);  //mod_lor_10_03_17: intxflot
-
-      for (k=0; k<NUM_SB; k++)
-        //printf("%d %d; ",k,pCurrentChannel->is_free[k]);
-        printf ("k= %d, mu0=%d; mu1=%d; I0 = %d; is_free = %d\n",k,pCurrentChannel->mu0[k],pCurrentChannel->mu1[k],pCurrentChannel->I0[k], pCurrentChannel->is_free[k]);
-
-      printf("\n\n");
-      pCurrentChannel = pCurrentChannel->next ;
-
-    }
-
-
-
-
-
-    /*
-    fprintf(stderr,",\n   .Lchan_desc=%p(",&(pCurrentItem->Lchan_desc));
-        fprintf(stderr,".transport_block_size=%d,",pCurrentItem->Lchan_desc.transport_block_size);
-        fprintf(stderr,".max_transport_blocks=%d,",pCurrentItem->Lchan_desc.max_transport_blocks);
-        fprintf(stderr,".Guaranteed_bit_rate=%ld,",pCurrentItem->Lchan_desc.Guaranteed_bit_rate);
-        fprintf(stderr,".Max_bit_rate=%ld,",pCurrentItem->Lchan_desc.Max_bit_rate);
-        fprintf(stderr,".Delay_class=%d,",pCurrentItem->Lchan_desc.Delay_class);
-        fprintf(stderr,".Target_bler=%d,",pCurrentItem->Lchan_desc.Target_bler);
-        fprintf(stderr,".LCHAN_t=%d),",pCurrentItem->Lchan_desc.LCHAN_t);
-
-    fprintf(stderr,",\n   .Mac_rlc_meas_desc=%p(",&(pCurrentItem->Mac_rlc_meas_desc));
-        fprintf(stderr,".Meas_trigger=%p(",&(pCurrentItem->Mac_rlc_meas_desc.Meas_trigger));
-            fprintf(stderr,".Rssi=%d, ",pCurrentItem->Mac_rlc_meas_desc.Meas_trigger.Rssi);
-            fprintf(stderr,".Sinr=%d, ",pCurrentItem->Mac_rlc_meas_desc.Meas_trigger.Sinr);
-            fprintf(stderr,".Harq_delay=%u, ",pCurrentItem->Mac_rlc_meas_desc.Meas_trigger.Harq_delay);
-            fprintf(stderr,".Bler=%u,",pCurrentItem->Mac_rlc_meas_desc.Meas_trigger.Bler);
-            fprintf(stderr,".Spec_eff=%u), ",pCurrentItem->Mac_rlc_meas_desc.Meas_trigger.Spec_eff);
-        fprintf(stderr,".Mac_avg=%p(",&(pCurrentItem->Mac_rlc_meas_desc.Mac_avg));
-            fprintf(stderr,".Rssi_forgetting_factor=%u, ",pCurrentItem->Mac_rlc_meas_desc.Mac_avg.Rssi_forgetting_factor);
-            fprintf(stderr,".Sinr_forgetting_factor=%u, ",pCurrentItem->Mac_rlc_meas_desc.Mac_avg.Sinr_forgetting_factor);
-            fprintf(stderr,".Harq_delay_forgetting_factor=%u, ",pCurrentItem->Mac_rlc_meas_desc.Mac_avg.Harq_delay_forgetting_factor);
-            fprintf(stderr,".Bler_forgetting_factor=%u, ",pCurrentItem->Mac_rlc_meas_desc.Mac_avg.Bler_forgetting_factor);
-            fprintf(stderr,".Spec_eff_forgetting_factor=%u),\n",pCurrentItem->Mac_rlc_meas_desc.Mac_avg.Spec_eff_forgetting_factor);
-        fprintf(stderr,"   .bo_forgetting_factor=%u,",pCurrentItem->Mac_rlc_meas_desc.bo_forgetting_factor);
-        fprintf(stderr,".sdu_loss_trigger=%u,",pCurrentItem->Mac_rlc_meas_desc.sdu_loss_trigger);
-        fprintf(stderr,".Rep_amount=%u,",pCurrentItem->Mac_rlc_meas_desc.Rep_amount);
-        fprintf(stderr,".Rep_interval=%d,",pCurrentItem->Mac_rlc_meas_desc.Rep_interval);
-    */
-
-    fprintf(stderr,"\n");
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  fprintf(stderr," ]\n");
-}
-
-
-
-
-
-/*!
-*******************************************************************************
-\brief  Comparaison de deux ID de niveau 2
-
-\return si 0 alors les IDs sont identiques
-*/
-static int L2_ID_cmp(
-  L2_ID *L2_id1, ///< ID de niveau 2
-  L2_ID *L2_id2  ///< ID de niveau 2
-)
-{
-  return memcmp( L2_id1, L2_id2, sizeof(L2_ID) ) ;
-}
-
-
-/*!
-*******************************************************************************
-\brief  La fonction ajoute un noeud dans la liste des noeuds.
-
-\return  retourne la valeur du nouvel element
-*/
-
-Sens_node_t *add_node(
-  Sens_node_t **node_entry  , ///< pointeur sur l'entree de la liste de noeuds
-  L2_ID  *L2_id             , ///< node ID
-  unsigned int NB_info      , ///< Number of channel info
-  Sens_ch_t *ch_info_hd     , ///< information received from the node
-  double info_time
-)
-{
-
-  //fprintf(stderr,"\n NB_info=%d \n", NB_info); //dbg
-  Sens_node_t *pOldEntry = *node_entry;
-  Sens_node_t *pNewItem = RRM_CALLOC( Sens_node_t , 1 ) ;
-
-  PNULL(pNewItem) ;
-
-  if ( pNewItem == NULL )
-    return NULL ;
-
-
-
-  memcpy( pNewItem->L2_id.L2_id , L2_id->L2_id, sizeof(L2_ID) ) ;
-  pNewItem->info_time =  info_time ;
-  pNewItem->Nb_chan   =  NB_info;
-  pNewItem->info_hd   =  NULL;
-
-  //fprintf(stderr,"starting ch pointer  @%p \n", pNewItem->info_hd);//dbg
-  for ( int i=0; i<NB_info; i++ ) {
-    if ( add_chann( &(pNewItem->info_hd), ch_info_hd[i].Start_f,
-                    ch_info_hd[i].Final_f, ch_info_hd[i].Ch_id, ch_info_hd[i].I0,ch_info_hd[i].mu0,ch_info_hd[i].mu1,
-                    /*ch_info_hd[i].meas,*/ ch_info_hd[i].is_free) == NULL )
-      fprintf(stderr, "ERROR: info %d problem\n", i) ;
-
-    //fprintf(stderr,"returned pointer  @%p Channel id %d\n", pNewItem->info_hd, ch_info_hd[i].Ch_id);//dbg
-  }
-
-  *node_entry         =  pNewItem ;
-  pNewItem->next      =  pOldEntry;
-  /*fprintf(stderr,"add_node\n\n");//dbg
-  fprintf(stderr,"node entry  @%p \n", (*node_entry)->info_hd);//dbg
-  fprintf(stderr,"node entry  @%p \n", pNewItem->info_hd);//dbg
-  fprintf(stderr,"passed par  @%p \n", *node_entry);//dbg*/
-  PRINT_SENS_DB( *node_entry );
-  return pNewItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction ajoute un channel aux info relatives à un noeud.
-
-\return  retourne la valeur du nouvel element
-*/
-
-Sens_ch_t *add_chann(
-  Sens_ch_t           **ch_entry , ///< pointeur sur l'entree de la liste de channels
-  unsigned int        Start_f    , ///< frequence initial du canal //mod_lor_10_03_17: intxflot
-  unsigned int        Final_f    , ///< frequence final du canal //mod_lor_10_03_17: intxflot
-  unsigned int        Ch_id      , ///< Channel ID //mod_lor_10_03_17: intxflot
-  //mod_eure_lor++
-  char *I0 ,
-  char *mu0,
-  char *mu1,
-
-  //float               meas       , ///< Sensing results
-  unsigned int        *is_free      ///< Evaluation about the availability of the channel //mod_lor_10_05_28 ->char instead of int
-  //mod_eure_lor--
-)
-{
-  Sens_ch_t *pOldEntry = *ch_entry;
-  Sens_ch_t *pNewItem = RRM_CALLOC( Sens_ch_t , 1 ) ;
-  int i;
-
-  /*fprintf(stderr,"\nadd_channel: %d\n", Ch_id);//dbg
-  fprintf(stderr,"old header  @%p \n", pOldEntry);//dbg
-  fprintf(stderr,"new pointer  @%p \n", pNewItem);//dbg*/
-
-  PNULL(pNewItem) ;
-
-  if ( pNewItem == NULL )
-    return NULL ;
-
-  pNewItem->Start_f =  Start_f ;
-  pNewItem->Final_f =  Final_f ;
-  pNewItem->Ch_id   =  Ch_id;
-  //printf("sens_db add 1:  %d    ", pNewItem->Ch_id);//dbg
-  //mod_eure_lor++
-  memcpy(pNewItem->I0 ,I0, MAX_NUM_SB);
-  memcpy(pNewItem->mu0,mu0, MAX_NUM_SB);
-  memcpy(pNewItem->mu1,mu1, MAX_NUM_SB);
-  memcpy(pNewItem->is_free,  is_free,MAX_NUM_SB*sizeof(unsigned int));//mod_lor_10_05_28 ->char instead of int
-  //for (i=0; i<MAX_NUM_SB; i++)
-  //        printf("up_chann: Channel %d sb %d is_free %d pitem is_free %d\n",Ch_id,i,is_free[i],pNewItem->is_free[i]);
-
-  //mod_eure_lor--
-  //pNewItem->meas    =  meas;
-  //pNewItem->is_free =  is_free;
-  //printf("sens_db add 2:  %d\n", pNewItem->Ch_id);//dbg
-  *ch_entry         =  pNewItem ;
-  pNewItem->next      =  pOldEntry;
-  //fprintf(stderr,"new pointer  @%p \n", *ch_entry);//dbg
-  //fprintf(stderr,"new pointer  @%p \n", *ch_entry->next);//dbg
-  //fprintf(stderr,"new pointer  @%p \n", pNewItem->next);//dbg
-
-
-  return pNewItem ;
-}
-
-
-/*!
-*******************************************************************************
-\brief  La fonction detruit entierement les info sur les canaux memorizées à l'adresse indiqué
-
-\return  aucune valeur.
-*/
-void del_channels_info(
-  Sens_ch_t **ch_info_entry  ///< pointeur sur l'entree des informations sur les canaux
-)
-{
-  Sens_ch_t *pCurrentItem = *ch_info_entry;
-  Sens_ch_t *pNextItem    ;
-
-  if ( (pCurrentItem == NULL)  || (ch_info_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-    RRM_FREE( pCurrentItem ) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  *ch_info_entry = NULL ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction retire l'element identifie par le node_id de la liste des noeuds
-
-\return  aucune valeur.
-*/
-void del_node(
-  Sens_node_t **node_entry  , ///< pointeur sur l'entree de la liste de noeuds
-  L2_ID       *L2_id          ///< node ID
-)
-{
-  Sens_node_t *pCurrentItem = *node_entry;
-  Sens_node_t *pNextItem    ;
-  Sens_node_t **ppPrevItem  = node_entry ;
-
-  if ( (pCurrentItem == NULL)  || (node_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-
-    if ( L2_ID_cmp( &(pCurrentItem->L2_id),L2_id) == 0 ) {
-      *ppPrevItem = pNextItem;
-      del_channels_info  (&pCurrentItem->info_hd);
-      RRM_FREE( pCurrentItem ) ;
-      fprintf( stderr,"Noeud ");
-
-      for ( int i=0; i<8; i++)
-        msg_fct("%02X", L2_id->L2_id[i]);
-
-      msg_fct( " deleted from database\n");
-
-      return ;
-    }
-
-    ppPrevItem   = &(pCurrentItem->next) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  if ( pCurrentItem == NULL )
-    fprintf(stderr, "ERROR: node_id unknown\n") ;
-
-  //PRINT_SENS_DB( *node_entry );
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction detruit entierement la liste des noeuds
-
-\return  aucune valeur.
-*/
-void del_all_nodes(
-  Sens_node_t **node_entry    ///< pointeur sur l'entree de la liste de noeuds
-)
-{
-  Sens_node_t *pCurrentItem = *node_entry;
-  Sens_node_t *pNextItem    ;
-
-  if ( (pCurrentItem == NULL)  || (node_entry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-    del_channels_info  (&pCurrentItem->info_hd);
-    RRM_FREE( pCurrentItem ) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  *node_entry = NULL ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction recherche le descripteur de noeud identifie par le noeud_id
-        dans la liste des noeuds
-
-\return  pointeur sur le descripteur de noeud trouve sinon NULL .
-*/
-Sens_node_t *get_node_info(
-  Sens_node_t *node_entry , ///< pointeur sur l'entree de la liste des noeuds
-  L2_ID       *L2_id        ///< Id du descripteur du noeud recherche
-)
-{
-  Sens_node_t *pCurrentItem = node_entry;
-
-  while ( pCurrentItem != NULL) {
-    if ( L2_ID_cmp( &(pCurrentItem->L2_id),L2_id) == 0 )
-      break ;
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  return pCurrentItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction recherche le descripteur de noeud identifie par le noeud_id
-        dans la liste des noeuds
-
-\return  pointeur sur le descripteur de noeud trouve sinon NULL .
-*/
-Sens_ch_t *get_chann_info(
-  Sens_ch_t *ch_entry ,   ///< pointeur sur l'entree de la liste des canaux
-  unsigned int   Ch_id    ///< Id of the desired channel //mod_lor_10_03_17: intxflot
-)
-{
-  Sens_ch_t *pCurrentItem = ch_entry;
-
-  while ( pCurrentItem != NULL) {
-    if ( pCurrentItem->Ch_id == Ch_id)
-      break ;
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  return pCurrentItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction rafraichit  les information du sensing du noeud. Si c'est
-        la premiere fois qui le node envoye les info, il rajoute le node dans
-        la liste .
-
-\return  pointer to the node
-*/
-Sens_node_t *update_node_info(
-  Sens_node_t **node_entry, ///< pointeur sur un element de la liste des RB
-  L2_ID *L2_id,             ///< id du noeud à refrechir
-  unsigned int NB_info,     ///< Number of channel info
-  Sens_ch_t *ch_info_hd,    ///< vector with the channel informations
-  double info_time          ///< time au quel il vient mis à jour
-)
-{
-  Sens_node_t *pItem = get_node_info(*node_entry,L2_id);
-
-
-  if ( pItem != NULL) {
-    //printf ("node existing\n\n");//dbg
-    pItem->info_time   = info_time ;
-    pItem->Nb_chan     = NB_info ;
-
-    for ( int i=0; i<NB_info; i++ ) {
-      // printf ("node info: %d\n",i);//dbg
-      if ( update_channel_info( &(pItem->info_hd), ch_info_hd[i].Start_f,
-                                ch_info_hd[i].Final_f, ch_info_hd[i].Ch_id,  ch_info_hd[i].I0,ch_info_hd[i].mu0,ch_info_hd[i].mu1,//ch_info_hd[i].meas,
-                                ch_info_hd[i].is_free) == NULL )
-        fprintf(stderr, "ERROR: info %d problem\n", i) ;
-    }
-  } else {
-    //fprintf(stderr,"DBG2 passed node entry @%p \n", node_entry);//dbg
-    //fprintf(stderr,"DBG2 passed hd @%p \n", *node_entry); //dbg
-    //printf ("adding node\n\n");//dbg
-    pItem = add_node( node_entry, L2_id, NB_info, ch_info_hd, info_time);
-  }
-
-  //fprintf(stderr,"update_node\n");//dbg
-  PRINT_SENS_DB( *node_entry );
-  return pItem;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction rafraichit  les information relatives à la mesure d'un canal. Si c'est
-        la premiere fois qu'on receive des info à propos du canal, il rajoute
-        le canal.
-
-\return   pointer to the channel
-*/
-Sens_ch_t *update_channel_info(
-  Sens_ch_t           **ch_entry , ///< pointeur sur un element de la liste des RB
-  unsigned int        Start_f    , ///< frequence initial du canal  //mod_lor_10_03_17: intxflot
-  unsigned int        Final_f    , ///< frequence final du canal   //mod_lor_10_03_17: intxflot
-  unsigned int        Ch_id      , ///< ID du canal   //mod_lor_10_03_17: intxflot
-  //mod_eure_lor++
-  char *I0 ,
-  char *mu0,
-  char *mu1,
-
-  //float               meas       , ///< Sensing results
-  unsigned int        *is_free      ///< Evaluation about the availability of the channel   //mod_lor_10_05_28 ->char instead of int
-  //mod_eure_lor--
-)
-{
-  //printf("sens_db update passed ch_id: %d\n",Ch_id);//dbg
-
-  Sens_ch_t *pItem = get_chann_info(*ch_entry,Ch_id);
-  int i;
-
-  if ( pItem != NULL) {
-    // printf ("channel existing\n\n");//dbg
-    //  printf("sens_db update1: %d   ", pItem->Ch_id);//dbg
-    //mod_eure_lor++
-    memcpy( pItem->I0 ,I0, MAX_NUM_SB);
-    memcpy( pItem->mu0,mu0, MAX_NUM_SB);
-    memcpy( pItem->mu1,mu1, MAX_NUM_SB);
-    memcpy(pItem->is_free, is_free, MAX_NUM_SB*sizeof(unsigned int));
-    //pItem->meas        = meas ;
-    //pItem->is_free     = is_free ;//mod_lor_10_05_06
-    //for (i=0; i<NUM_SB;i++)
-    //   printf ("sb %d is_free_db %d, is_free %d\n",i,pItem->is_free[i],is_free[i]);//dbg
-    // printf("sens_db update2: %d\n", pItem->Ch_id);//dbg
-  } else {
-    //printf ("channel to add\n\n");//dbg
-    //pItem = add_chann( ch_entry, Start_f, Final_f, Ch_id, meas, is_free);
-    pItem = add_chann( ch_entry, Start_f, Final_f, Ch_id, I0, mu0,mu1,is_free);
-  }
-
-  //mod_eure_lor--
-
-  return pItem;
-}
-
-//mod_lor_10_02_19++
-/*!
-*******************************************************************************
-\brief  La fonction rafraichit les parametres du sensing du noeud et, eventuelement,
-        les misurations. Si c'est la premiere fois qui le node envoye les info,
-        il rajoute le node dans la liste .
-
-\return  pointer to the node
-*/
-Sens_node_t *update_node_par(
-  Sens_node_t      **node_entry  , ///< pointeur sur un element de la liste des RB
-  L2_ID                *L2_id    , ///< id du noeud à refrechir
-  unsigned int         NB_info   , ///< Number of channel info
-  Sens_ch_t           *ch_info_hd, ///< vector with the channel informations
-  double               info_time , ///< time au quel il vient mis à jour
-  unsigned int         tpc       , ///< time on each carrier
-  unsigned int         overlap   , ///< overlap factor (percentage)
-  unsigned int         sampl_freq  ///< sampling frequency (Ms/s)
-)
-{
-  Sens_node_t *pItem = update_node_info(node_entry,L2_id,NB_info,ch_info_hd,info_time);
-
-  pItem->tpc = tpc;
-  pItem->overlap = overlap;
-  pItem->sampl_freq = sampl_freq;
-
-  //fprintf(stderr,"update_node\n");//dbg
-  PRINT_SENS_DB( *node_entry );
-  return pItem;
-}
-//mod_lor_10_02_19--
diff --git a/openair3/MESH/RRM/sens_db.h b/openair3/MESH/RRM/sens_db.h
deleted file mode 100755
index cd02454618..0000000000
--- a/openair3/MESH/RRM/sens_db.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       sens_db.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-            et des fonctions relatives a la gestion de la base de donnée sur
-            les informations de sensing par chaque noeud avec capacité de sensing.
-
-\author     IACOBELLI Lorenzo
-
-\date       16/10/09
-
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#ifndef SENS_DB_H
-#define SENSE_DB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
-*******************************************************************************
-\brief Entete de la file des messages reçus ou a envoyer
-*/
-typedef struct Sens_node_s {
-  L2_ID                L2_id     ; ///< id
-  double               info_time ; ///< information age
-  unsigned int         Nb_chan   ; ///< number of channel informations
-  unsigned int         tpc       ; ///< time on each carrier           //mod_lor_10_02_19
-  unsigned int         overlap   ; ///< overlap factor (percentage)    //mod_lor_10_02_19
-  unsigned int         sampl_freq; ///< sampling frequency (Ms/s)      //mod_lor_10_02_19
-  Sens_ch_t            *info_hd  ; ///< header of the information list
-  struct Sens_node_s   *next     ; ///< next node pointer
-} Sens_node_t ;
-
-
-// ---------------------------------------------------------------------------
-
-
-Sens_node_t *add_node( Sens_node_t **node_entry, L2_ID *L2_id, unsigned int NB_info, Sens_ch_t *ch_info_hd, double info_time ) ;
-Sens_ch_t *add_chann( Sens_ch_t **ch_entry, unsigned int Start_f, unsigned int Final_f, unsigned int Ch_id, char *I0 ,char *mu0, char *mu1,
-                      unsigned int *is_free);        //mod_lor_10_05_28 ->char instead of int
-void del_channels_info( Sens_ch_t **ch_info_entry);
-void del_node( Sens_node_t **node_entry, L2_ID *L2_id ) ;
-void del_all_nodes( Sens_node_t **node_entry ) ;
-Sens_node_t *get_node_info ( Sens_node_t *node_entry, L2_ID *L2_id ) ;
-Sens_ch_t *get_chann_info( Sens_ch_t *ch_entry , unsigned int Ch_id); //mod_lor_10_03_17: intxflot
-Sens_node_t *update_node_info( Sens_node_t **node_entry, L2_ID *L2_id, unsigned int NB_info, Sens_ch_t *ch_info_hd, double info_time);
-Sens_node_t *update_node_par( Sens_node_t **node_entry, L2_ID *L2_id,  unsigned int NB_info, Sens_ch_t *ch_info_hd, double info_time,
-                              unsigned int tpc, unsigned int overlap, unsigned int sampl_freq); //mod_lor_10_02_19 : function creation
-//Sens_ch_t *update_channel_info( Sens_ch_t **ch_entry, unsigned int Start_f, unsigned int Final_f, unsigned int Ch_id, float meas, unsigned int is_free );//mod_lor_10_05_28 ->char instead of int
-Sens_ch_t *update_channel_info( Sens_ch_t **ch_entry, unsigned int Start_f, unsigned int Final_f, unsigned int Ch_id, char *I0 ,char *mu0, char *mu1,
-                                unsigned int *is_free ); //mod_lor_10_05_28 ->char instead of int
-void print_sens_db( Sens_node_t *pEntry );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SENS_DB_H */
diff --git a/openair3/MESH/RRM/sens_op.c b/openair3/MESH/RRM/sens_op.c
deleted file mode 100755
index 0f5878cf9e..0000000000
--- a/openair3/MESH/RRM/sens_op.c
+++ /dev/null
@@ -1,1311 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       sens_op.c
-
-\brief      Fonctions permettant la gestion des informations de sensing des
-            differents noeuds
-
-\author     IACOBELLI Lorenzo
-
-\date       21/10/09
-
-
-\par     Historique:
-            L.IACOBELLI 2010-03-19
-            + "take_decision" function added
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <pthread.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "L3_rrc_interface.h"
-#include "cmm_rrm_interface.h"
-#include "rrm_sock.h"
-#include "rrc_rrm_msg.h"
-#include "ip_msg.h" //mod_lor_10_04_27
-#include "sensing_rrm_msg.h"
-#include "cmm_msg.h"
-#include "msg_mngt.h"
-#include "pusu_msg.h"
-#include "rb_db.h"
-#include "neighbor_db.h"
-#include "sens_db.h"
-#include "channels_db.h"
-#include "rrm_util.h"
-#include "transact.h"
-#include "rrm_constant.h"
-#include "rrm.h"
-#include "sens_op.h"
-
-
-//! Met un message dans la file des messages a envoyer
-#define PUT_CMM_MSG(m)  put_msg(  &(rrm->file_send_cmm_msg), 0, rrm->cmm.s,m )  //mod_lor_10_01_25
-#define PUT_PUSU_MSG(m) put_msg(  &(rrm->file_send_cmm_msg), 0, rrm->pusu.s,m)  //mod_lor_10_01_25
-#define PUT_RRC_MSG(m)  put_msg(  &(rrm->file_send_rrc_msg), 0, rrm->rrc.s,m )  //mod_lor_10_01_25
-#define PUT_IP_MSG(m)   put_msg(  &(rrm->file_send_ip_msg) , 1, rrm->ip.s,m  )  //mod_lor_10_01_25
-#define PUT_SENS_MSG(m) put_msg(  &(rrm->file_send_sensing_msg), 0, rrm->sensing.s,m )  //mod_lor_10_04_01
-
-/*!
-*******************************************************************************
-\brief  Comparaison de deux ID de niveau 2
-
-\return si 0 alors les IDs sont identiques
-*/
-static int L2_ID_cmp(
-  L2_ID *L2_id1, ///< ID de niveau 2
-  L2_ID *L2_id2  ///< ID de niveau 2
-)
-{
-  return memcmp( L2_id1, L2_id2, sizeof(L2_ID) ) ;
-}
-
-
-
-//mod_lor_10_05_26++
-/*!
-*******************************************************************************
-\brief  Function that decides locally if a channel is free using mu0 and mu1 datas:
-
-\return
-*/
-void take_local_decision(
-  Sens_ch_t *Sens_info
-)
-{
-  unsigned int i;
-
-  for (i=0; i < NUM_SB; i++) {
-    if (Sens_info->mu0[i]>LAMBDA0 && Sens_info->mu1[i]>LAMBDA1)
-      Sens_info->is_free[i]=0; // primary system is present
-    else
-      Sens_info->is_free[i]=1; // primary system is not present
-  }
-}
-//mod_lor_10_05_26--
-
-/*!
-*******************************************************************************
-\brief  Updating of the sensing measures received by the rrm from the sensing unit
-* of the node. If the node is a mesh router it reports the information to its clusterhead
-*/
-void rrc_update_sens(
-  Instance_t inst         , //!< Identification de l'instance
-  L2_ID L2_id             , //!< Adresse L2 of the source of information
-  unsigned int NB_info    , //!< Number of channel info
-  Sens_ch_t *Sens_meas    , //!< Pointer to the sensing information
-  double info_time
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-
-  int i,j;
-
-  //fprintf(stderr,"rrc_update_sens NB_info = %d\n",NB_info);//dbg
-  // Sens_ch_t *p;//dbg
-  /*for ( i=0; i<NB_info; i++){//dbg
-      fprintf(stderr," Ch_id %d     \n",Sens_meas[i].Ch_id);//dbg
-      for (j=0;j<MAX_NUM_SB;j++)
-          fprintf(stderr,"    SB %d  is %d   \n",j,Sens_meas[i].is_free[j]);//dbg
-  }*/
-  /*fprintf(stderr," \nrrm_database     ");//dbg
-  if (rrm->rrc.pSensEntry != NULL)//dbg
-      for ( p=rrm->rrc.pSensEntry->info_hd; p!=NULL; p=p->next)//dbg
-          fprintf(stderr," %d     ",p->Ch_id);//dbg
-  else//dbg
-      fprintf(stderr," empty     ");//dbg
-  fprintf(stderr,"\n1 update\n");//dbg*/
-  for (i=0; i<NB_info; i++) {
-    take_local_decision(&Sens_meas[i]); //mod_lor_10_05_26
-    //for (int j=0; j<NUM_SB; j++)//dbg
-    //    fprintf(stderr,"sns_update: channel %d is %d\n",Sens_meas[i].Ch_id, Sens_meas[i].is_free[j]);//dbg*/
-  }
-
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_08
-  update_node_info( &(rrm->rrc.pSensEntry), &L2_id, NB_info, Sens_meas, info_time);
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_08
-
-
-  //AAA: for the moment the channel db is reserved for CHs and SUs only in SCEN_2_DISTR
-
-
-  if ( SCEN_2_DISTR) {
-
-    //fprintf(stderr,"cluster_head\n");//dbg
-
-    CHANNEL_T channel ;
-    CHANNELS_DB_T *canal;
-    unsigned int *is_free; //mod_eure_lor //mod_lor_10_05_28 ->char instead of int
-
-    for (i=0; i<NB_info; i++) {
-
-      channel.Start_f = Sens_meas[i].Start_f;
-      channel.Final_f = Sens_meas[i].Final_f;
-      channel.Ch_id   = Sens_meas[i].Ch_id;
-      channel.QoS     = 0;
-      is_free     = Sens_meas[i].is_free;
-      pthread_mutex_lock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_08
-      canal = up_chann_db( &(rrm->rrc.pChannelsEntry), channel, is_free[0], info_time);//TO DO SCEN2 DISTR fix it!
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_08
-      //fprintf(stderr,"inst %d, channel %d, is_free %d\n", inst,Sens_meas[i].Ch_id,Sens_meas[i].is_free);//dbg
-      //fprintf(stderr,"chann %d updated\n", Sens_meas[i].Ch_id);//dbg
-
-    }
-
-    //AAA: just to save the right L2_id in SCEN_2_DISTR
-    if ( rrm->state != CLUSTERHEAD && SCEN_2_DISTR)
-      memcpy( rrm->L2_id.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-  }
-
-  // mod_lor_10_01_25: monitoring will be launched after an Update SN occupied frequencies message from BTS
-  /*if ( rrm->state == CLUSTERHEAD && !SCEN_2_DISTR)
-  {
-      unsigned int ch_to_scan[NB_info];
-      for (i=0; i<NB_info; i++)
-          ch_to_scan[i]=Sens_meas[i].Ch_id;
-      if (SCEN_2_CENTR && (L2_ID_cmp(&(rrm->L2_id_FC),  &L2_id))==0){
-          pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-          rrm->rrc.trans_cnt++ ;
-          //To send via IP: PUT_RRC_MSG(msg_rrm_clust_mon_req( inst, L2_id, ch_to_scan, NB_info, 0.5, rrm->rrc.trans_cnt));
-          pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-      }
-      else{
-          pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-          rrm->rrc.trans_cnt++ ;
-          PUT_RRC_MSG(msg_rrm_init_mon_req( inst, L2_id,  NB_info, 0.5, ch_to_scan, rrm->rrc.trans_cnt));
-          pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-      }
-  }*/
-#ifndef    RRC_EMUL
-  else if (!SCEN_2_DISTR && rrm->state != CLUSTERHEAD) { ///< Case in which a sensor have to inform the FC via IP about its sensing results
-    //fprintf (stdout,"msg IP to send from inst %d\n",rrm->id);//dbg
-    pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-    rrm->ip.trans_cnt++ ;
-
-    //mod_lor_10_04_22++
-    /*int r =  send_msg_int( rrm->ip.s, msg_update_sens_results_3( inst, rrm->L2_id, NB_info, Sens_meas, rrm->ip.trans_cnt));
-                WARNING(r!=0);*/
-    fprintf(stderr,"before msg_update_sens %d\n",rrm->L2_id.L2_id[0]);//dbg mod_lor_11_02_17
-    PUT_IP_MSG(msg_update_sens_results_3( (rrm->L2_id.L2_id[0]-FIRST_MR_ID+1), rrm->L2_id, NB_info, Sens_meas, rrm->ip.trans_cnt));
-
-    //mod_lor_10_04_22--
-    pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-
-    //mod_lor_10_04_21++ TO DO -> to remove when sensing remont automatically info
-    //sleep(10);
-    /*if(rrm->sensing.sens_active){
-        sleep(10);
-        pthread_mutex_lock( &( rrm->sensing.exclu ) ) ;
-        rrm->sensing.trans_cnt++ ;
-        //fprintf(stderr,"sensing counter %d in msg_rrm_scan_ord on socket %d \n",rrm->sensing.trans_cnt,rrm->sensing.s->s);//dbg
-        PUT_SENS_MSG(msg_rrm_scan_ord( inst,  NB_info, 0, 0, 0, Sens_meas, rrm->sensing.trans_cnt )); //mod_lor_10_04_01: Sampl_nb instead of Sampl_freq
-        pthread_mutex_unlock( &( rrm->sensing.exclu ) ) ;
-    }*/
-    //mod_lor_10_04_21--
-
-  }
-
-#endif
-  //fprintf(stderr,"end funct rrc_update_sens\n");//dbg
-}
-
-
-/*!
-*******************************************************************************
- \brief CMM init sensing request.  Only in CH/FC.
-*/
-void cmm_init_sensing(
-  Instance_t       inst,            //!< identification de l'instance
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  //if ( (rrm->state == CLUSTERHEAD_INIT1 ) || (rrm->state == CLUSTERHEAD ) )
-  if (rrm->role == FUSIONCENTER || rrm->role == CH_COLL) { //mod_lor_10_05_05
-
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    rrm->rrc.trans_cnt++ ;
-    //fprintf(stderr,"rrc counter %d in rrm_init_scan_req  \n",rrm->rrc.trans_cnt);//dbg
-    PUT_RRC_MSG(msg_rrm_init_scan_req( inst, Start_fr ,Stop_fr,Meas_band, Meas_tpf,
-                                       Nb_channels,  Overlap, Sampl_freq, rrm->rrc.trans_cnt));
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-    //mod_lor_10_05_05++
-    /*if (SCEN_2_CENTR && rrm->role == FUSIONCENTER){
-         pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-         rrm->ip.trans_cnt++ ;
-         PUT_IP_MSG(msg_init_coll_sens_req( inst, rrm->L2_id, Start_fr, Stop_fr,Meas_band, Meas_tpf,
-                      Nb_channels,  Overlap, Sampl_freq, rrm->ip.trans_cnt));
-         pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-     }*/
-    //mod_lor_10_05_05--
-
-  } else {
-    fprintf(stderr,"It is not a cluster head!!!");
-  }
-
-
-
-}
-
-/*!
-*******************************************************************************
- \brief rrc transmits order to start sensing received from the clusterhead.
- * The node will than activate its sensing unit sending a scan_ord message
-*/
-//mod_lor_10_03_13++
-void rrc_init_scan_req(
-  Instance_t inst           , //!< identification de l'instance
-  L2_ID     L2_id           , //!< FC/CH address
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq,
-  Transaction_t  Trans_id     //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  Sens_ch_t ch_info_init[Nb_channels];
-  unsigned int Sampl_nb = 0;//((Start_fr - Stop_fr)/Sampl_freq)/Nb_channels; //mod_lor_10_04_01: number of samples per sub-band
-  unsigned int     act_start_fr = Start_fr;
-
-  for (int i = 0; i<Nb_channels; i++) {
-    ch_info_init[i].Start_f = act_start_fr   ;
-    act_start_fr+=Meas_band;
-    ch_info_init[i].Final_f = act_start_fr  ; ///< frequence final du canal
-    ch_info_init[i].Ch_id  = i + 1    ; ///< ID du canal
-
-    //ch_info_init[i].meas   = 0    ; ///< Sensing results
-    //mod_eure_lor++
-    for (int j=0; j<MAX_NUM_SB; j++)
-      ch_info_init[i].is_free[j]  = 2  ; ///< Decision about the channel
-
-    //mod_eure_lor--
-    printf("rrc_init i :%d, start %d, end %d MAX %d band %d\n",i,ch_info_init[i].Start_f,ch_info_init[i].Final_f,Sampl_nb,Meas_band);
-  }
-
-
-
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_13
-  update_node_par( &(rrm->rrc.pSensEntry), &(rrm->L2_id), Nb_channels, ch_info_init, 0,Meas_tpf,Overlap,Sampl_freq); //mod_lor_10_02_19
-  //update_node_info( &(rrm->rrc.pSensEntry), &(rrm->L2_id), Nb_channels, ch_info_init, 0);
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ; //mod_lor_10_03_13
-
-
-  memcpy( rrm->L2_id_FC.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-
-  pthread_mutex_lock( &( rrm->sensing.exclu ) ) ;
-  rrm->sensing.trans_cnt++ ;
-  //fprintf(stderr,"sensing counter %d in msg_rrm_scan_ord on socket %d \n",rrm->sensing.trans_cnt,rrm->sensing.s->s);//dbg
-  PUT_SENS_MSG(msg_rrm_scan_ord( inst,  Nb_channels, Meas_tpf, Overlap, Sampl_nb, ch_info_init, Trans_id )); //mod_lor_10_04_01: Sampl_nb instead of Sampl_freq
-  pthread_mutex_unlock( &( rrm->sensing.exclu ) ) ;
-
-}//mod_lor_10_03_13--
-
-/*!
-*******************************************************************************
- \brief CMM stop sensing request.  Only in CH/FC. With this function the node
-        sends an order to stop sensing to all sensing nodes that were regeistered
-        in sensing database.
-*/
-void cmm_stop_sensing(
-  Instance_t inst            //!< identification de l'instance
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  //   fprintf(stderr,"stop sensing %d role %d\n\n\n\n\n\n\n\n\n", rrm->id, rrm->role);//dbg
-  // if ( (rrm->state == CLUSTERHEAD_INIT1 ) || (rrm->state == CLUSTERHEAD ) )
-  if ( (rrm->role == FUSIONCENTER ) || (rrm->role == CH_COLL ) ) { //mod_lor_10_05_06
-    //fprintf(stderr,"2 end\n");//dbg
-    Sens_node_t     *p = rrm->rrc.pSensEntry;
-
-    if (p == NULL)
-      fprintf(stderr,"no sensor node information saved\n");
-
-    while (p!=NULL) {
-      //for ( int i=0;i<8;i++)
-      //    fprintf(stderr,"cmm_stop_sens: to send on %X end\n",p->L2_id.L2_id[i]);//dbg
-      pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-      rrm->rrc.trans_cnt++ ;
-      //fprintf(stderr,"rrc counter %d in msg_rrm_end_scan_req  \n",rrm->rrc.trans_cnt);//dbg
-      PUT_RRC_MSG(msg_rrm_end_scan_req( inst, p->L2_id, rrm->rrc.trans_cnt));
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-      p = p->next;
-    }
-
-    //mod_lor_10_05_06++
-    if (SCEN_2_CENTR) { //TO DO: need to add control to know if collaboration is active
-      if (rrm->role == FUSIONCENTER) {
-        sleep(2);
-        pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-        rrm->ip.trans_cnt++ ;
-        //fprintf(stderr,"rrc counter %d in msg_rrm_end_scan_req  \n",rrm->rrc.trans_cnt);//dbg
-        PUT_IP_MSG(msg_stop_coll_sens( inst));
-        pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-      } else {
-        pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-        rrm->ip.trans_cnt++ ;
-        //fprintf(stderr,"rrc counter %d in msg_rrm_end_scan_req  \n",rrm->rrc.trans_cnt);//dbg
-        //PUT_IP_MSG(msg_stop_coll_sens_conf( inst));
-        pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-      }
-    }
-
-    /*if (SCEN_2_CENTR ){ //!< To inform the CH that is collaborating in sensing to stop sensing
-        pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-        rrm->rrc.trans_cnt++ ;
-        //fprintf(stderr,"rrc counter %d in msg_rrm_end_scan_req  \n",rrm->rrc.trans_cnt);//dbg
-        PUT_RRC_MSG(msg_rrm_end_scan_req( inst, rrm->L2_id_FC, rrm->rrc.trans_cnt));
-        pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-    }*/
-    //mod_lor_10_05_06--
-
-  }
-
-
-  else {
-    fprintf(stderr,"It is not a cluster head!!!");
-  }
-
-
-
-}
-
-
-/*!
-\brief RRC ending sensing confirmation
- */
-void rrc_end_scan_conf(
-  Instance_t        inst            , //!< instance ID
-  L2_ID             L2_id           , //!< FC/CH address
-  Transaction_t     Trans_id          //!< Transaction ID
-
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  del_node( &(rrm->rrc.pSensEntry), &L2_id ) ;
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-  if ((rrm->role == CH_COLL) && (rrm->rrc.pSensEntry == NULL)) {
-    //printf("before IP message\n");//dbg
-    pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-    PUT_IP_MSG(msg_stop_coll_sens_conf( inst, rrm->L2_id)); //mod_lor_10_05_12
-    pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-    //printf("after IP message\n");//dbg
-  }
-
-
-}
-
-/*!
-\brief RRC ending sensing request
- */
-void rrc_end_scan_req(
-  Instance_t        inst            , //!< instance ID
-  L2_ID             L2_id           , //!< FC/CH address
-  Transaction_t     Trans_id          //!< Transaction ID
-
-)
-{
-
-  //fprintf(stdout,"rrc_end_scan_req() cp1 %d\n",inst); //dbg
-  rrm_t *rrm = &rrm_inst[inst] ;
-  Sens_node_t *pNode = rrm->rrc.pSensEntry;
-
-  if (pNode==NULL)
-    fprintf(stderr,"Database empty \n");
-
-  else {
-    if (rrm->role == CH_COLL && (L2_ID_cmp(&(rrm->L2_id_FC),  &L2_id))==0 ) { ///< case SCEN_2_CENTR
-      pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;//mod_lor_10_03_08
-      pNode = rrm->rrc.pSensEntry;//mod_lor_10_03_08
-
-      while (pNode!=NULL) {
-
-        rrm->rrc.trans_cnt++ ;
-        //fprintf(stderr,"rrc counter %d msg_rrm_end_scan_req  \n",rrm->rrc.trans_cnt);//dbg
-        PUT_RRC_MSG(msg_rrm_end_scan_req( inst, pNode->L2_id, rrm->rrc.trans_cnt));
-
-        pNode = pNode->next;
-      }
-
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;    //mod_lor_10_03_08
-
-    } else {
-      pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;//mod_lor_10_03_08
-      pNode = rrm->rrc.pSensEntry;//mod_lor_10_03_08
-      unsigned int i=0, Nb_chan = rrm->rrc.pSensEntry->Nb_chan;
-      Sens_ch_t *ch_point = rrm->rrc.pSensEntry->info_hd;
-      unsigned int channels[Nb_chan];
-
-      ch_point = rrm->rrc.pSensEntry->info_hd;
-
-      while  (ch_point!=NULL) {
-        channels[i]=ch_point->Ch_id;
-        ch_point = ch_point->next;
-        i++;
-      }
-
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;//mod_lor_10_03_08
-
-      if ((L2_ID_cmp(&(rrm->L2_id_FC),  &L2_id))==0) {
-
-        pthread_mutex_lock( &( rrm->sensing.exclu ) ) ;
-        rrm->sensing.trans_cnt++ ;
-        PUT_SENS_MSG(msg_rrm_end_scan_ord(inst, Nb_chan, channels, Trans_id ));
-        pthread_mutex_unlock( &( rrm->sensing.exclu ) ) ;
-      } else {
-        fprintf(stderr,"The message received is not from the right FC \n");
-      }
-    }
-  }
-
-  //dbg: test end_scan_ack
-  /*
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  rrm->rrc.trans_cnt++ ;
-
-  PUT_RRC_MSG(msg_rrm_end_scan_ord(inst, rrm->L2_id_FC, 0, NULL, Trans_id ));
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;*/
-
-
-}
-
-/*!
-*******************************************************************************
- \brief rrc transmits order to monitor channels
-*/
-void rrc_init_mon_req(
-  Instance_t inst           , //!< identification de l'instance
-  L2_ID     L2_id           , //!< FC address
-  unsigned int  *ch_to_scan , //!< vector of identifiers of the channels to monitor
-  unsigned int  NB_chan     , //!< Number of channels to monitor
-  unsigned int     interv          , //!< time between two sensing operation
-  Transaction_t  Trans_id     //!< Transaction ID
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if ((L2_ID_cmp(&(rrm->L2_id_FC),  &L2_id))==0) {
-
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    rrm->rrc.trans_cnt++ ;
-    //memcpy( rrm->L2_id_FC.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    //fprintf(stderr,"rrc counter %d msg_rrm_scan_ord  \n",rrm->rrc.trans_cnt);//dbg
-    //PUT_RRC_MSG(msg_rrm_scan_ord( inst,  NB_chan, ch_to_scan, Trans_id ));
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-  } else {
-    fprintf(stderr,"The message received is not from the right FC \n");
-  }
-
-}
-
-//To send via IP:
-
-/*!
-*******************************************************************************
- \brief rrc transmits order to monitor channels
-*/
-/*
-void rrc_clust_scan_req(
-    Instance_t inst             , //!< instance ID
-    L2_ID L2_id                 , //!< Layer 2 (MAC) ID of CH1
-    float interv                , //!< time between two sensing operation
-    COOPERATION_T coop          , //!< Cooperation mode
-    Transaction_t Trans_id        //!< Transaction ID
-    )
-{
-    rrm_t *rrm = &rrm_inst[inst] ;
-
-    memcpy( rrm->L2_id_FC.L2_id, L2_id.L2_id, sizeof(L2_ID) )  ;
-    rrm->role = CH_COLL;
-
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    rrm->rrc.trans_cnt++ ;
-    PUT_RRC_MSG(msg_rrm_init_scan_req( inst, interv, rrm->rrc.trans_cnt));
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    rrm->rrc.trans_cnt++ ;
-    PUT_RRC_MSG(msg_rrm_clust_scan_conf( inst, L2_id, coop, Trans_id));
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-
-
-}*/
-
-/*!
-*******************************************************************************
- \brief rrc transmits order from CH1 to monitor channels
-*/
-/*
-void rrc_clust_mon_req(
-    Instance_t inst           , //!< identification de l'instance
-    L2_ID     L2_id           , //!< Layer 2 (MAC) ID of CH1
-    unsigned int  *ch_to_scan , //!< vector of identifiers of the channels to monitor
-    unsigned int  NB_chan     , //!< Number of channels to monitor
-    float     interv          , //!< time between two sensing operation
-    Transaction_t  Trans_id     //!< Transaction ID
-    )
-{
-    rrm_t *rrm = &rrm_inst[inst] ;
-
-    if ((L2_ID_cmp(&(rrm->L2_id_FC),  &L2_id))==0) {
-
-        Sens_node_t *pNode = rrm->rrc.pSensEntry;
-        while (pNode!=NULL){
-             pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-            rrm->rrc.trans_cnt++ ;
-            PUT_RRC_MSG(msg_rrm_init_mon_req( inst,  pNode->L2_id, NB_chan, interv, ch_to_scan, Trans_id ));
-            pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-            pNode = pNode->next;
-        }
-
-
-        pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-        rrm->rrc.trans_cnt++ ;
-        PUT_RRC_MSG(msg_rrm_clust_mon_conf( inst,  L2_id, Trans_id ));
-        pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-
-    }
-    else {
-        fprintf(stderr,"The message received is not from the right CH \n");
-    }
-}*/
-
-/*!mod_lor_10_11_03 -> part about SCEN_2 and CH_COLL
-*******************************************************************************
-\brief  Updating of the sensing measures received via IP from another node
-*/
-unsigned int update_sens_results(
-  Instance_t inst         , //!< Identification de l'instance
-  L2_ID L2_id             , //!< Adresse L2 of the source of information
-  unsigned int NB_info    , //!< Number of channel info
-  Sens_ch_t *Sens_meas    , //!< Pointer to the sensing information
-  double info_time
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  CHANNELS_DB_T *channel;
-  int i,j,k, send_up_to_SN=0;
-  unsigned int all_result;
-  int tot_ch;
-  //L2_ID User_active_L2_id;
-
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  update_node_info( &(rrm->rrc.pSensEntry), &L2_id, NB_info, Sens_meas, info_time);
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-  //mod_lor_10_10_27++
-  if(rrm->role == CH_COLL) {
-    //AAA: add procedure to take decision from the database -> send a probability that the channel is busy to primary
-
-    Sens_ch_t coll_measures[NB_SENS_MAX];
-    Sens_node_t *pNode=rrm->rrc.pSensEntry;
-    unsigned int weight=0; ///number of sensors of CH_COLL
-
-    while (pNode!=NULL) {
-      weight++;
-      pNode=pNode->next;
-    }
-
-    //printf ("nodes %d\n",weight);//dbg
-
-    pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-
-    for (i=0; take_ch_coll_decision( rrm->rrc.pSensEntry, &coll_measures[i],(i+1))==0; i++);
-
-    pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-    //  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-    // take_ch_coll_decision(rrm->rrc.pSensEntry, channel.Ch_id,is_free);
-    // pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-    pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-    rrm->ip.trans_cnt++ ;
-    PUT_IP_MSG(msg_up_clust_sens_results( inst, rrm->L2_id, i, weight, coll_measures, rrm->ip.trans_cnt));
-    pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-
-  }
-
-  //mod_lor_10_10_27++
-
-  //mod_lor_10_05_28
-  ///case of scenario 1
-  if (SCEN_1) {
-    if (!(rrm->ip.waiting_SN_update) ) {
-      pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-      channel = rrm->rrc.pChannelsEntry;
-
-      while (channel!=NULL) {
-        //printf("Channel!=NULL\n");
-        if (channel->is_ass)
-          if((send_up_to_SN = evalaute_sens_info(rrm->rrc.pSensEntry,channel->channel.Start_f,channel->channel.Final_f)))
-            break;
-
-        channel = channel->next;
-      }
-
-      pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-      if (send_up_to_SN && rrm->role == FUSIONCENTER) {
-        return 1;
-        //open_freq_query(inst, L2_id, 0, 0);
-      }
-    }
-  }
-  ///case of scenario 2 add_lor_10_11_03
-  else if (SCEN_2_CENTR) {
-    int free_av=0;
-    int N_chan=0;
-    int chan_in_use=0;
-    unsigned int reallocate = 0;
-    L2_ID User_active_L2_id[MAX_USER_NB];
-    L2_ID User_dest_L2_id[MAX_USER_NB];
-    CHANNELS_DB_T *t_channels_db = NULL;
-
-    ///check part: it evaluates if a channel in use is not free anymore
-    send_up_to_SN = check_allocated_channels( inst, User_active_L2_id ,User_dest_L2_id ,&free_av);
-
-    ///Attribute new channels to users that have to change or that are waiting
-    if (send_up_to_SN>0 || rrm->ip.users_waiting_update>0) {
-      /// case in which there are enough free channels
-      if (free_av>=(send_up_to_SN + rrm->ip.users_waiting_update)) {
-        pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-        j = rrm->ip.users_waiting_update-1;
-
-        for (k = send_up_to_SN; k<(send_up_to_SN + rrm->ip.users_waiting_update); k++) {
-          memcpy(User_active_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[j][0].L2_id, sizeof(L2_ID));
-          memcpy(User_dest_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[j][1].L2_id, sizeof(L2_ID));
-          j--;
-        }
-
-        all_result = ask_freq_to_CH( inst, User_active_L2_id, User_dest_L2_id,k, 0 );  ///Update of channels for both busy and waiting users
-
-        if (all_result == 0) {
-          rrm->ip.users_waiting_update=0;
-        } else {
-          printf ("ERROR!!! in if free not enough free!!! all_result =%d\n",all_result);//dbg
-        }
-
-        pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-      }
-
-      ///no channels to change, but users waiting channels //add_lor_10_11_08++
-      ///reallocate only if there are more available channels, otherwise don't do anything
-      else if (send_up_to_SN==0 && rrm->ip.users_waiting_update>0) {
-        chan_in_use = count_free_channels (inst, &free_av);
-        tot_ch = chan_in_use + free_av;
-        N_chan = find_available_channels(rrm->rrc.pSensEntry,&(t_channels_db));
-        del_all_channels( &(t_channels_db));
-
-        if (N_chan>tot_ch) {
-          reallocate = 1;
-        } else if (free_av>0) {
-          pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-
-          for (k=0; rrm->ip.users_waiting_update>0 && free_av>0; k++) { /// allocate frequencies to waiting users
-            memcpy(User_active_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update-1][0].L2_id, sizeof(L2_ID));
-            memcpy(User_dest_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update-1][1].L2_id, sizeof(L2_ID));
-            free_av--;
-            rrm->ip.users_waiting_update--;
-            printf ("N7 tot waiting: %d\n",rrm->ip.users_waiting_update);//db
-          }
-
-          all_result = ask_freq_to_CH( inst, User_active_L2_id, User_dest_L2_id,k, 0 );  ///Update of channels for waiting users
-          pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-        }
-      }//add_lor_10_11_08--
-
-      ///all channels to reallocate
-      if (reallocate || (free_av<=(send_up_to_SN + rrm->ip.users_waiting_update) && send_up_to_SN>0)) {
-        chan_in_use = count_free_channels (inst, &free_av);
-        tot_ch = chan_in_use + send_up_to_SN;
-
-        if (chan_in_use!=0) {
-          ///add all channels in use to channels to change
-          pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-          t_channels_db = rrm->rrc.pChannelsEntry;
-
-          while (t_channels_db!=NULL) {
-            if (t_channels_db->is_ass && t_channels_db->is_free) {
-              memcpy(User_active_L2_id[send_up_to_SN].L2_id , t_channels_db->source_id.L2_id, sizeof(L2_ID));
-              memcpy(User_dest_L2_id[send_up_to_SN].L2_id , t_channels_db->dest_id.L2_id, sizeof(L2_ID));
-              send_up_to_SN++;
-            }
-
-            t_channels_db = t_channels_db->next;
-          }
-
-          pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-        }
-
-        pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-        del_all_channels( & (rrm->rrc.pChannelsEntry) );
-        pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-        pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-
-        for (k = send_up_to_SN, j = rrm->ip.users_waiting_update-1; j>=0 ; j--,k++) {
-          memcpy(User_active_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[j][0].L2_id, sizeof(L2_ID));
-          memcpy(User_dest_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[j][1].L2_id, sizeof(L2_ID));
-        }
-
-        all_result = ask_freq_to_CH( inst, User_active_L2_id, User_dest_L2_id,k, 0 );  ///Update of channels for waiting users
-        pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-
-        if (all_result == 0) {
-          pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-          rrm->ip.users_waiting_update=0;
-          pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-        } else {
-          pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-          rrm->ip.users_waiting_update=0;
-
-          for (j=1; j<=all_result; j++) {
-            memcpy(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][0].L2_id,User_active_L2_id[k-j].L2_id, sizeof(L2_ID));
-            memcpy(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][1].L2_id,User_dest_L2_id[k-j].L2_id, sizeof(L2_ID));
-            rrm->ip.users_waiting_update++;
-            printf ("N8 tot waiting: %d\n",rrm->ip.users_waiting_update);//db
-          }
-
-          pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-        }
-      }
-    }
-  }
-
-  return 0;
-
-
-  //fprintf(stderr,"node entry  @%p \n", rrm->rrc.pSensEntry);//dbg
-  //fprintf(stderr,"2 cluster_head\n");//dbg
-  //AAA: for the moment the channel db is reserved for CHs and SUs only in SCEN_2_DISTR
-  /*Sens_node_t *pn = rrm->rrc.pSensEntry;
-  Sens_ch_t *pc;
-  while (pn!=NULL){
-      pc = pn->info_hd;
-      while (pc!=NULL){
-          for (int j=0; j<NUM_SB; j++)//dbg
-              fprintf(stderr,"sns_update: channel %d sb %d is %d\n",pc->Ch_id, j, pc->is_free[j]);//dbg
-          pc=pc->next;
-      }
-      pn=pn->next;
-  }*/
-
-
-  /*if ( rrm->role == FUSIONCENTER || SCEN_2_DISTR || rrm->role == CH_COLL ) //mod_lor_10_03_08: role instead of status -> to check
-  //mod_lor_10_05_06 -> 2nd option of if changed (before SCEN_2_DISTR)
-  {
-
-      //fprintf(stderr,"cluster_head\n");//dbg
-      CHANNEL_T channel ;
-      CHANNELS_DB_T *canal;
-      unsigned int is_free[MAX_NUM_SB];//mod_lor_10_05_28 ->char instead of int
-      for (i=0;i<MAX_NUM_SB;i++)
-          is_free[i]=0;
-      int decision;
-      unsigned int send_up_to_SN =0; //mod_lor_10_05_12
-      for (i=0; i<NB_info; i++){
-
-          channel.Start_f = Sens_meas[i].Start_f;
-          channel.Final_f = Sens_meas[i].Final_f;
-          channel.Ch_id   = Sens_meas[i].Ch_id;
-          channel.QoS     = 0;
-          printf(stdout,"Channel in msg %d : \n", channel.Ch_id); //dbg ou LOG
-          for (decision = 0; decision<MAX_NUM_SB; decision++)
-              fprintf(stdout,"SB %d : is %d\n", decision,Sens_meas[i].is_free[decision]); //dbg ou LOG
-          */
-  //mod_lor_10_03_19++
-  /*     pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-       take_decision(rrm->rrc.pSensEntry, channel.Ch_id,is_free);//mod_eure_lor
-    //   pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-       //mod_lor_10_03_19--
-
-       //mod_lor_10_05_07++
-       if (decision>0)
-           is_free = 1;
-       else
-           is_free = 0;*/
-
-
-
-  //Sens_meas[i].meas = decision;
-
-  /*     if(rrm->role == CH_COLL){
-           memcpy(Sens_meas[i].is_free, is_free, MAX_NUM_SB*sizeof(unsigned int));//mod_lor_10_05_28 ->char instead of int
-           //Sens_meas[i].meas = decision;
-       }
-       //mod_lor_10_05_07--
-
-       fprintf(stdout,"Channel %d : \n", channel.Ch_id); //dbg ou LOG
-       for (decision = 0; decision<MAX_NUM_SB; decision++)
-           fprintf(stdout,"SB %d : is %d\n", decision,is_free[decision]); //dbg ou LOG
-       */
-  //   pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  /*        canal = up_chann_db( &(rrm->rrc.pChannelsEntry), channel, is_free[0], info_time);//TO DO: fix it!
-          pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-          //mod_lor_10_05_12++
-          if (!(rrm->ip.waiting_SN_update) && canal->is_ass && !(canal->is_free)){//mod_lor_10_05_18
-              //fprintf(stderr,"send_up_to_SN =1\n");//dbg
-              send_up_to_SN =1;//mod_lor_10_05_12--
-          }
-          //fprintf(stderr,"chann %d updated\n", Sens_meas[i].Ch_id);//dbg
-
-      }
-      //mod_lor_10_05_07++
-      if(rrm->role == CH_COLL){
-          pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-          rrm->ip.trans_cnt++ ;
-          PUT_IP_MSG(msg_up_clust_sens_results( inst, rrm->L2_id, NB_info, decision, Sens_meas, rrm->ip.trans_cnt));
-          pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-
-      }//mod_lor_10_05_07--
-      //mod_lor_10_05_12++
-      if (send_up_to_SN && rrm->role == FUSIONCENTER){
-          open_freq_query(inst, L2_id, 0, 0);
-      }
-
-
-  }else
-      fprintf(stderr,"error!!! Cannot update channels \n");*/
-
-}
-
-//mod_lor_10_04_14++
-/*!
-*******************************************************************************
-\brief  SENSING unit end scan confirmation
-*/
-void sns_end_scan_conf(
-  Instance_t inst          //!< Identification de l'instance
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  ///< Next three lines delete the local sensing information database
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  del_node( &(rrm->rrc.pSensEntry), &(rrm->L2_id));
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-  // AAA TO DO: Confirmation sent via RRC to the fusion centre in case FC id != 0
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  rrm->rrc.trans_cnt++ ;
-  //fprintf(stderr, "before put RRM_end_scan_confirm\n");//dbg
-  PUT_RRC_MSG(msg_rrm_end_scan_conf( inst, rrm->rrc.trans_cnt));
-  //fprintf(stderr, "after put RRM_end_scan_confirm\n"); //dbg
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-}
-//mod_lor_10_04_14--
-
-/*!//mod_lor_10_11_03
-*******************************************************************************
-\brief  Updating of the sensing measures received via IP from another node
-*/
-void up_coll_sens_results(
-  Instance_t inst         , //!< Identification de l'instance
-  L2_ID L2_id             , //!< Adresse L2 of the source of information
-  unsigned int NB_info    , //!< Number of channel info
-  Sens_ch_t *Sens_meas    , //!< Pointer to the sensing information
-  double info_time
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  int free_av=0;
-  int N_chan=0;
-  int chan_in_use=0;
-  unsigned int reallocate = 0;
-  L2_ID User_active_L2_id[MAX_USER_NB];
-  L2_ID User_dest_L2_id[MAX_USER_NB];
-  CHANNELS_DB_T *t_channels_db = NULL;
-  int i,j,k, send_up_to_SN=0;
-  unsigned int all_result;
-  int tot_ch;
-
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  update_node_info( &(rrm->rrc.pSensEntry), &L2_id, NB_info, Sens_meas, info_time);
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-
-  if (SCEN_2_CENTR && rrm->role == FUSIONCENTER) {
-    ///check part: it evaluates if a channel in use is not free anymore
-    send_up_to_SN = check_allocated_channels( inst, User_active_L2_id ,User_dest_L2_id ,&free_av);
-
-    ///Attribute new channels to users that have to change or that are waiting
-    if (send_up_to_SN>0 || rrm->ip.users_waiting_update>0) {
-      /// case in which there are enough free channels
-      if (free_av>=(send_up_to_SN + rrm->ip.users_waiting_update)) {
-        pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-        j = rrm->ip.users_waiting_update-1;
-
-        for (k = send_up_to_SN; k<(send_up_to_SN + rrm->ip.users_waiting_update); k++) {
-          memcpy(User_active_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[j][0].L2_id, sizeof(L2_ID));
-          memcpy(User_dest_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[j][1].L2_id, sizeof(L2_ID));
-          j--;
-        }
-
-        all_result = ask_freq_to_CH( inst, User_active_L2_id, User_dest_L2_id,k, 0 );  ///Update of channels for both busy and waiting users
-
-        if (all_result == 0) {
-          rrm->ip.users_waiting_update=0;
-        } else {
-          printf ("ERROR!!! in if free not enough free!!! all_result =%d\n",all_result);//dbg
-        }
-
-        pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-      }
-
-      ///no channels to change, but users waiting channels //add_lor_10_11_08++
-      ///reallocate only if there are more available channels, otherwise don't do anything
-      else if (send_up_to_SN==0 && rrm->ip.users_waiting_update>0) {
-        chan_in_use = count_free_channels (inst, &free_av);
-        tot_ch = chan_in_use + free_av;
-        N_chan = find_available_channels(rrm->rrc.pSensEntry,&(t_channels_db));
-        del_all_channels( &(t_channels_db));
-
-        if (N_chan>tot_ch) {
-          reallocate = 1;
-        } else if (free_av>0) {
-          pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-
-          for (k=0; rrm->ip.users_waiting_update>0 && free_av>0; k++) { /// allocate frequencies to waiting users
-            memcpy(User_active_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update-1][0].L2_id, sizeof(L2_ID));
-            memcpy(User_dest_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update-1][1].L2_id, sizeof(L2_ID));
-            free_av--;
-            rrm->ip.users_waiting_update--;
-            printf ("N9 tot waiting: %d\n",rrm->ip.users_waiting_update);//db
-          }
-
-          all_result = ask_freq_to_CH( inst, User_active_L2_id, User_dest_L2_id,k, 0 );  ///Update of channels for waiting users
-          pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-        }
-      }//add_lor_10_11_08--
-
-      ///all channels to reallocate
-      if (reallocate || (free_av<=(send_up_to_SN + rrm->ip.users_waiting_update) && send_up_to_SN>0)) {
-        chan_in_use = count_free_channels (inst, &free_av);
-        tot_ch = chan_in_use + send_up_to_SN;
-
-        if (chan_in_use!=0) {
-          ///add all channels in use to channels to change
-          pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-          t_channels_db = rrm->rrc.pChannelsEntry;
-
-          while (t_channels_db!=NULL) {
-            if (t_channels_db->is_ass && t_channels_db->is_free) {
-              memcpy(User_active_L2_id[send_up_to_SN].L2_id , t_channels_db->source_id.L2_id, sizeof(L2_ID));
-              memcpy(User_dest_L2_id[send_up_to_SN].L2_id , t_channels_db->dest_id.L2_id, sizeof(L2_ID));
-              send_up_to_SN++;
-            }
-
-            t_channels_db = t_channels_db->next;
-          }
-
-          pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-        }
-
-        pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-        del_all_channels( & (rrm->rrc.pChannelsEntry) );
-        pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-        pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-
-        for (k = send_up_to_SN, j = rrm->ip.users_waiting_update-1; j>=0 ; j--,k++) {
-          memcpy(User_active_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[j][0].L2_id, sizeof(L2_ID));
-          memcpy(User_dest_L2_id[k].L2_id , rrm->ip.L2_id_wait_users[j][1].L2_id, sizeof(L2_ID));
-        }
-
-        all_result = ask_freq_to_CH( inst, User_active_L2_id, User_dest_L2_id,k, 0 );  ///Update of channels for waiting users
-        pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-
-        if (all_result == 0) {
-          pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-          rrm->ip.users_waiting_update=0;
-          pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-        } else {
-          pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-          rrm->ip.users_waiting_update=0;
-
-          for (j=1; j<=all_result; j++) {
-            memcpy(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][0].L2_id,User_active_L2_id[k-j].L2_id, sizeof(L2_ID));
-            memcpy(rrm->ip.L2_id_wait_users[rrm->ip.users_waiting_update][1].L2_id,User_dest_L2_id[k-j].L2_id, sizeof(L2_ID));
-            rrm->ip.users_waiting_update++;
-            printf ("N10 tot waiting: %d\n",rrm->ip.users_waiting_update);//db
-          }
-
-          pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-        }
-      }
-    }
-  }
-
-  ///check part
-  //        send_up_to_SN = check_allocated_channels( inst, User_active_L2_id ,User_dest_L2_id ,&free_av);
-
-  /*pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  channel = rrm->rrc.pChannelsEntry;
-  tot_ch = 0;
-  send_up_to_SN=0;
-  k=0;
-  free_av=0;
-  while (channel!=NULL){
-      if(evalaute_sens_info(rrm->rrc.pSensEntry,channel->channel.Start_f,channel->channel.Final_f)){
-          if (channel->is_ass){
-              ///save the address of user active on the channel
-              memcpy( User_active_L2_id[send_up_to_SN].L2_id, channel->source_id.L2_id, sizeof(L2_ID) )  ;
-              memcpy( User_dest_L2_id[send_up_to_SN].L2_id, channel->dest_id.L2_id, sizeof(L2_ID) )  ;
-              send_up_to_SN++;
-          }
-          channel->is_free=0;
-          channels_to_change[tot_ch]= channel->channel.Ch_id;
-      }else{
-          if (!(channel->is_ass))
-              free_av++;
-          channels_to_change[tot_ch]=-1;
-      }
-      channel = channel->next;
-      tot_ch++;
-  }
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;*/
-
-  ///Attribute new channels to users that have to change
-  /*      if (send_up_to_SN>0){
-              //pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-              /// case in which there are enough free channels
-              if (free_av>=send_up_to_SN){
-                  for (k = 0; k < send_up_to_SN; k++) {
-                      ask_freq_to_CH( inst, User_active_L2_id[k], User_dest_L2_id[k],1, 0 );  ///QoS fixed to 1
-                  }
-                  /*k = 0;                              ///check on channels to attribute
-                  channel = rrm->rrc.pChannelsEntry;
-                  while (channel!=NULL && k< send_up_to_SN){
-                      if (channel->is_free && !(channel->is_ass)){
-                          channel->is_ass=1;
-                          memcpy( channel->source_id.L2_id, User_active_L2_id[k].L2_id, sizeof(L2_ID) )  ;
-                          memcpy( channel->dest_id.L2_id, User_dest_L2_id[k].L2_id, sizeof(L2_ID) )  ;
-                          k++;
-                      }
-
-                  }*/
-  //            }
-  ///all channels to reallocate
-  /*            else{
-                  del_all_channels( & (rrm->rrc.pChannelsEntry) );
-                  for (k = 0; k < send_up_to_SN; k++) {
-                      all_result = ask_freq_to_CH( inst, User_active_L2_id[k], User_dest_L2_id[k],1, 0 );  ///QoS fixed to 1
-                      if (all_result!=0)
-                          break;
-                  }
-                  //add_lor_10_11_08++
-                  if (k!=send_up_to_SN){
-                      printf("Not enough available channels for all users!\n%d links not assigned\n",send_up_to_SN-k);//dbg
-                      pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-                      while (k < send_up_to_SN){
-                          memcpy(L2_id_wait_users[users_waiting_update][1].L2_id,User_active_L2_id[k].L2_id, sizeof(L2_ID));
-                          memcpy(L2_id_wait_users[users_waiting_update][2].L2_id,User_dest_L2_id[k].L2_id, sizeof(L2_ID));
-                          users_waiting_update++;
-                          k++;
-                      }
-                      pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-                  }
-                  //add_lor_10_11_08--
-
-
-                  /*k = 0;                              ///check on channels to attribute
-                  channel = rrm->rrc.pChannelsEntry;
-                  while (channel!=NULL){
-                      if (channel->is_ass){
-                          memcpy( User_active_L2_id[k].L2_id, channel->source_id.L2_id, sizeof(L2_ID) )  ;
-                          memcpy( User_dest_L2_id[k].L2_id, channel->dest_id.L2_id, sizeof(L2_ID) )  ;
-                          k++;
-                      }
-                  }
-
-                  ///new identification of available channels and allocation to users that need to communicate
-                  NB_chan = find_available_channels(rrm->rrc.pSensEntry,&(rrm->rrc.pChannelsEntry));
-                  printf ("found channels: %d \n", NB_chan);//dbg
-
-                  ///Analysing the list of identified channels
-                  channel = rrm->rrc.pChannelsEntry;
-                  j=0;
-
-                  while (channel!=NULL && j<k){
-                      if (channel->is_free && !channel->is_ass){
-                          memcpy(&(ass_channels[j]) , &(channel->channel), sizeof(CHANNEL_T));
-                          up_chann_ass( rrm->rrc.pChannelsEntry  , ass_channels[j].Ch_id, 1, User_active_L2_id[j], User_dest_L2_id[j] );
-                          printf ("copied channel: %d start %d end %d\n",ass_channels[j].Ch_id,ass_channels[j].Start_f,ass_channels[j].Final_f);//dbg
-                          j++;
-                      }
-                      channel = channel->next;
-                  }*/
-
-  //            }
-  //pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-  //        }
-
-
-  //ask_freq_to_CH( inst, User_active_L2_id, send_up_to_SN, 0 ); /// Update sent to user active
-
-
-  else
-    fprintf(stderr,"Error!!! Not a fusion center or not in Scenario 2 \n");
-
-}
-
-
-/*!//mod_lor_10_11_03
-*******************************************************************************
-\brief  check channels in use in second scenario
-*/
-int check_allocated_channels(
-  Instance_t inst         , //!< Identification de l'instance
-  L2_ID *User_active_L2_id ,
-  L2_ID *User_dest_L2_id ,
-  int *free_av
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  CHANNELS_DB_T *channel;
-  int send_up_to_SN=0;
-
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  channel = rrm->rrc.pChannelsEntry;
-  send_up_to_SN=0;
-  *free_av=0;
-
-  while (channel!=NULL) {
-    if(evalaute_sens_info(rrm->rrc.pSensEntry,channel->channel.Start_f,channel->channel.Final_f)) {
-      if (channel->is_ass) {
-        ///save the address of user active on the channel
-        memcpy( User_active_L2_id[send_up_to_SN].L2_id, channel->source_id.L2_id, sizeof(L2_ID) )  ;
-        memcpy( User_dest_L2_id[send_up_to_SN].L2_id, channel->dest_id.L2_id, sizeof(L2_ID) )  ;
-        send_up_to_SN++;
-      }
-
-      channel->is_free=0;
-    } else {
-      if (!(channel->is_ass))
-        *free_av++;
-    }
-
-    channel = channel->next;
-  }
-
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-  return (send_up_to_SN);
-}
-
-
-/*!//mod_lor_10_11_08
-*******************************************************************************
-\brief  start_coll_sensing
-*/
-void cmm_init_coll_sensing(
-  Instance_t       inst,            //!< identification de l'instance
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-
-  if (SCEN_2_CENTR && rrm->role == FUSIONCENTER) {
-    pthread_mutex_lock( &( rrm->ip.exclu ) ) ;
-    rrm->ip.trans_cnt++ ;
-    PUT_IP_MSG(msg_init_coll_sens_req( inst, rrm->L2_id, Start_fr, Stop_fr,Meas_band, Meas_tpf,
-                                       Nb_channels,  Overlap, Sampl_freq, rrm->ip.trans_cnt));
-    pthread_mutex_unlock( &( rrm->ip.exclu ) ) ;
-  } else {
-    printf ("ERROR! Node is not the main CH or not in the right scenario.\n");
-  }
-}
-
-/*!//mod_lor_10_11_08
-*******************************************************************************
-\brief  count channels in use and free channels in second scenario
-*/
-int count_free_channels(
-  Instance_t inst         , //!< Identification de l'instance
-  int *free_av
-)
-{
-  rrm_t *rrm = &rrm_inst[inst] ;
-  CHANNELS_DB_T *channel;
-  int used_ch=0;
-
-  pthread_mutex_lock( &( rrm->rrc.exclu ) ) ;
-  channel = rrm->rrc.pChannelsEntry;
-  *free_av=0;
-
-  while (channel!=NULL) {
-    if(!evalaute_sens_info(rrm->rrc.pSensEntry,channel->channel.Start_f,channel->channel.Final_f)) {
-      if (!(channel->is_ass))
-        *free_av++;
-      else
-        used_ch++;
-    }
-
-    channel = channel->next;
-  }
-
-  pthread_mutex_unlock( &( rrm->rrc.exclu ) ) ;
-  return (used_ch);
-}
diff --git a/openair3/MESH/RRM/sens_op.h b/openair3/MESH/RRM/sens_op.h
deleted file mode 100755
index 8fb7e26d3a..0000000000
--- a/openair3/MESH/RRM/sens_op.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file     sens_op.h
-
-\brief    Fichier d'entete contenant les declarations des types, des defines ,
-      et des fonctions relatives a la gestion du channel sensing.
-
-\author   IACOBELLI Lorenzo
-
-\date     21/10/09
-
-
-\par     Historique:
-      $Author$  $Date$  $Revision$
-      $Id$
-      $Log$
-
-*******************************************************************************
-*/
-
-#ifndef SENS_OP_H
-#define SENS_OP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//mod_lor_10_05_28: declaration of function for sensing and frequency allocation
-unsigned int evalaute_sens_info(
-  Sens_node_t *Sens_db,
-  unsigned int Start_f,
-  unsigned int Final_f
-);
-
-void take_decision(
-  Sens_node_t *SensDB     , //!< pointer to the sensing database
-  unsigned int Ch_id      , //!< channel ID
-  unsigned int *is_free  //mod_lor_10_05_28 ->char instead of int
-
-);
-
-unsigned int take_decision_sens(
-  Sens_node_t *SensDB     , //!< pointer to the sensing database
-  Sens_ch_t *finalSensChann, //!< info that will be returned after decision
-  unsigned int Ch_id       //!< channel ID
-
-);
-
-unsigned int find_available_channels(
-  Sens_node_t *Sens_db,
-  CHANNELS_DB_T **channels_db
-);
-
-unsigned int evalaute_sens_info(
-  Sens_node_t *Sens_db,
-  unsigned int Start_f,
-  unsigned int Final_f
-);
-
-unsigned int check_SN_channels(
-  Sens_node_t *Sens_db,
-  CHANNELS_DB_T *channels_db,
-  unsigned int *used_channels,
-  unsigned int nb_used_ch
-);
-
-void take_local_decision(
-  Sens_ch_t *Sens_info
-);
-
-unsigned int take_ch_coll_decision(
-  Sens_node_t *SensDB     , //!< pointer to the sensing database
-  Sens_ch_t *finalSensChann, //!< info that will be returned after decision
-  unsigned int Ch_id       //!< channel ID
-);
-
-int check_allocated_channels(
-  Instance_t inst         , //!< Identification de l'instance
-  L2_ID *User_active_L2_id ,
-  L2_ID *User_dest_L2_id ,
-  int *free_av
-);
-
-int count_free_channels(
-  Instance_t inst         , //!< Identification de l'instance
-  int *free_av
-);
-// ---------------------------------------------------------------------------
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SENS_OP_H */
diff --git a/openair3/MESH/RRM/sens_scen_2_form.c b/openair3/MESH/RRM/sens_scen_2_form.c
deleted file mode 100644
index 135888d2fe..0000000000
--- a/openair3/MESH/RRM/sens_scen_2_form.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/* Form definition file generated with fdesign. */
-
-#include "forms.h"
-#include <stdlib.h>
-#include "sens_scen_2_form.h"
-
-FD_sens_scen_2 *create_form_sens_scen_2(void)
-{
-  FL_OBJECT *obj;
-  FD_sens_scen_2 *fdui = (FD_sens_scen_2 *) fl_calloc(1, sizeof(*fdui));
-
-  fdui->sens_scen_2 = fl_bgn_form(FL_NO_BOX, 460, 280);
-  obj = fl_add_box(FL_UP_BOX,0,0,460,280,"");
-  fdui->User_1 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,10,420,100,"User_1");
-  fl_set_object_color(obj,FL_BLACK,FL_PALEGREEN);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  /* fdui->User_3 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,80,340,600,120,"User_3");
-     fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-   fdui->User_4 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,80,490,600,120,"User_4");
-     fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-     fl_set_object_lsize(obj,FL_NORMAL_SIZE);*/
-  fdui->User_2 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,20,140,420,100,"User_2");
-  fl_set_object_color(obj,FL_BLACK,FL_PALEGREEN);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fl_end_form();
-
-  fdui->sens_scen_2->fdui = fdui;
-
-  return fdui;
-}
-/*---------------------------------------*/
-
diff --git a/openair3/MESH/RRM/sens_scen_2_form.fd b/openair3/MESH/RRM/sens_scen_2_form.fd
deleted file mode 100644
index a30c331d51..0000000000
--- a/openair3/MESH/RRM/sens_scen_2_form.fd
+++ /dev/null
@@ -1,106 +0,0 @@
-Magic: 13000
-
-Internal Form Definition File
-    (do not change)
-
-Number of forms: 1
-Unit of measure: FL_COORD_PIXEL
-
-=============== FORM ===============
-Name: sens_scen_2
-Width: 740
-Height: 650
-Number of Objects: 5
-
---------------------
-class: FL_BOX
-type: UP_BOX
-box: 0 0 740 650
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: 
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: 
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 80 20 600 120
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_1
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_1
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 80 340 600 120
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_3
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_3
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 80 490 600 120
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_4
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_4
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 80 180 600 120
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: User_2
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: User_2
-callback: 
-argument: 
-
-==============================
-create_the_forms
diff --git a/openair3/MESH/RRM/sens_scen_2_form.h b/openair3/MESH/RRM/sens_scen_2_form.h
deleted file mode 100644
index 70d69a3273..0000000000
--- a/openair3/MESH/RRM/sens_scen_2_form.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/** Header file generated with fdesign on Thu Nov  4 18:36:46 2010.**/
-
-#ifndef FD_sens_scen_2_h_
-#define FD_sens_scen_2_h_
-
-/** Callbacks, globals and object handlers **/
-
-
-/**** Forms and Objects ****/
-typedef struct {
-  FL_FORM *sens_scen_2;
-  void *vdata;
-  char *cdata;
-  long  ldata;
-  FL_OBJECT *User_1;
-  FL_OBJECT *User_3;
-  FL_OBJECT *User_4;
-  FL_OBJECT *User_2;
-} FD_sens_scen_2;
-
-extern FD_sens_scen_2 * create_form_sens_scen_2(void);
-
-#endif /* FD_sens_scen_2_h_ */
diff --git a/openair3/MESH/RRM/sens_sensor.c b/openair3/MESH/RRM/sens_sensor.c
deleted file mode 100644
index 33841fd3f7..0000000000
--- a/openair3/MESH/RRM/sens_sensor.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/* Form definition file generated with fdesign. */
-
-#include "forms.h"
-#include <stdlib.h>
-#include "sens_sensor.h"
-
-FD_sens_sensor *create_form_sens_sensor(void)
-{
-  FL_OBJECT *obj;
-  FD_sens_sensor *fdui = (FD_sens_sensor *) fl_calloc(1, sizeof(*fdui));
-
-  fdui->sens_sensor = fl_bgn_form(FL_NO_BOX, 940, 280);
-  obj = fl_add_box(FL_UP_BOX,0,0,940,280,"");
-  fdui->local_sensing_results = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,30,30,880,210,"Local Sensing Results");
-  fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fl_end_form();
-
-  fdui->sens_sensor->fdui = fdui;
-
-  return fdui;
-}
-/*---------------------------------------*/
-
diff --git a/openair3/MESH/RRM/sens_sensor.fd b/openair3/MESH/RRM/sens_sensor.fd
deleted file mode 100644
index 91757e916a..0000000000
--- a/openair3/MESH/RRM/sens_sensor.fd
+++ /dev/null
@@ -1,52 +0,0 @@
-Magic: 13000
-
-Internal Form Definition File
-    (do not change)
-
-Number of forms: 1
-Unit of measure: FL_COORD_PIXEL
-
-=============== FORM ===============
-Name: sens_sensor
-Width: 940
-Height: 280
-Number of Objects: 2
-
---------------------
-class: FL_BOX
-type: UP_BOX
-box: 0 0 940 280
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: 
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: 
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 30 30 880 210
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: Local Sensing Results
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: local_sensing_results
-callback: 
-argument: 
-
-==============================
-create_the_forms
diff --git a/openair3/MESH/RRM/sens_sensor.h b/openair3/MESH/RRM/sens_sensor.h
deleted file mode 100644
index f8693efbc4..0000000000
--- a/openair3/MESH/RRM/sens_sensor.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/** Header file generated with fdesign on Fri Feb 18 14:31:56 2011.**/
-
-#ifndef FD_sens_sensor_h_
-#define FD_sens_sensor_h_
-
-/** Callbacks, globals and object handlers **/
-
-
-/**** Forms and Objects ****/
-typedef struct {
-  FL_FORM *sens_sensor;
-  void *vdata;
-  char *cdata;
-  long  ldata;
-  FL_OBJECT *local_sensing_results;
-} FD_sens_sensor;
-
-extern FD_sens_sensor * create_form_sens_sensor(void);
-
-#endif /* FD_sens_sensor_h_ */
diff --git a/openair3/MESH/RRM/sensing_2_rrm_msg.c b/openair3/MESH/RRM/sensing_2_rrm_msg.c
deleted file mode 100644
index bfc4e931b1..0000000000
--- a/openair3/MESH/RRM/sensing_2_rrm_msg.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       rrc_2_rrm_msg.c
-
-\brief      Fonctions permettant le formattage des donnees pour l'envoi d'un
-            message sur le socket entre le  SENSING et le RRM -> to use in emulation of sensing unit
-
-\author     IACOBELLI Lorenzo
-
-\date       15/04/10
-
-
-\par     Historique:
-
-
-*******************************************************************************
-*/
-
-#ifdef SNS_EMUL
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include "L3_rrc_defs.h"
-#include "rrm_sock.h"
-#include "L3_rrc_interface.h"
-#include "rrc_rrm_msg.h"
-#include "rrm_util.h"
-
-#else
-
-#include "defs.h"
-
-#endif
-
-#include "L3_rrc_defs.h"
-
-#include "rrm_sock.h"
-#include "sensing_rrm_msg.h"
-#include "rrm_util.h"
-
-msg_t mesg;
-
-#ifdef TRACE
-//! Macro creant la chaine a partir du nom de la variable
-#define STRINGIZER(x) #x
-//! Tableau pour le mode trace faisant la translation entre le numero et le nom du message
-const char *Str_msg_sns_rrm[NB_MSG_SNS_RRM] = {
-  STRINGIZER(SNS_UPDATE_SENS          ),
-  STRINGIZER(RRM_SCAN_ORD             ),
-  STRINGIZER(RRM_END_SCAN_ORD         ),
-  STRINGIZER(SNS_END_SCAN_CONF        )
-} ;
-
-#endif
-
-
-
-
-
-
-/*!
-*******************************************************************************
-\brief  This function initialize the message header
-\return any return value
-*/
-static void init_sensing_msg_head(
-  msg_head_t    *msg_head , //!< message header to initialize
-  Instance_t     inst     , //!< Instance ID
-  MSG_SENSING_RRM_T  msg_type , //!< type of message to initialize
-  unsigned int   size     , //!< size of message
-  Transaction_t  Trans_id   //!< transaction id associated to this message
-)
-{
-  if ( msg_head != NULL ) {
-    msg_head->start    = START_MSG ;
-    msg_head->msg_type = 0xFF & msg_type ;
-    msg_head->inst     = inst  ;
-    msg_head->Trans_id = Trans_id  ;
-    msg_head->size     = size;
-  }
-}
-
-/*****************************************************************************/
-
-rrc_update_sens_t P_update_sens;
-msg_t * msg_sensing_update_sens(
-  Instance_t      inst         , //!< Instance ID
-  Sens_ch_t *Sens,
-  unsigned char NB_info
-)
-{
-
-  init_sensing_msg_head(&(mesg.head),inst, SNS_UPDATE_SENS, sizeof( rrc_update_sens_t ) ,0);
-  memcpy( &P_update_sens.Sens_meas[0], (rrc_update_sens_t *)Sens, NB_info*sizeof(Sens_ch_t) )  ;
-  P_update_sens.NB_info=NB_info;
-  mesg.data = (char *) &P_update_sens;
-  return &mesg ;
-
-}
-
-/*****************************************************************************/
-
-msg_t * msg_sensing_end_scan_conf(
-  Instance_t      inst          //!< Instance ID
-)
-{
-
-  init_sensing_msg_head(&(mesg.head),inst, SNS_END_SCAN_CONF, 0 ,0);
-
-  mesg.data = NULL;
-  return &mesg ;
-
-}
-
-
-
-
-
-
diff --git a/openair3/MESH/RRM/sensing_form.c b/openair3/MESH/RRM/sensing_form.c
deleted file mode 100644
index ca6a10bb12..0000000000
--- a/openair3/MESH/RRM/sensing_form.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/* Form definition file generated with fdesign. */
-
-#include "forms.h"
-#include <stdlib.h>
-#include "sensing_form.h"
-
-FD_sensing_form *create_form_sensing_form(void)
-{
-  FL_OBJECT *obj;
-  FD_sensing_form *fdui = (FD_sensing_form *) fl_calloc(1, sizeof(*fdui));
-
-  fdui->sensing_form = fl_bgn_form(FL_NO_BOX, 620, 600);
-  obj = fl_add_box(FL_UP_BOX,0,0,620,600,"");
-  fdui->spec_SN1 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,70,50,500,100,"spectrum_plot_SN1");
-  fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fdui->spec_SN2 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,70,180,500,100,"spectrum_plot_SN2");
-  fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fdui->spec_SN3 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,70,310,500,100,"spectrum_plot_SN3");
-  fl_set_object_color(obj,FL_BLACK,FL_BLUE);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fdui->Secondary_Network_frequencies = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,70,460,500,100,"Secondary_Network_frequencies");
-  fl_set_object_color(obj,FL_BLACK,FL_GREEN);
-  fl_set_object_lsize(obj,FL_NORMAL_SIZE);
-  fl_end_form();
-
-  fdui->sensing_form->fdui = fdui;
-
-  return fdui;
-}
-/*---------------------------------------*/
-
diff --git a/openair3/MESH/RRM/sensing_form.fd b/openair3/MESH/RRM/sensing_form.fd
deleted file mode 100644
index a669121a72..0000000000
--- a/openair3/MESH/RRM/sensing_form.fd
+++ /dev/null
@@ -1,106 +0,0 @@
-Magic: 13000
-
-Internal Form Definition File
-    (do not change)
-
-Number of forms: 1
-Unit of measure: FL_COORD_PIXEL
-
-=============== FORM ===============
-Name: sensing_form
-Width: 620
-Height: 600
-Number of Objects: 5
-
---------------------
-class: FL_BOX
-type: UP_BOX
-box: 0 0 620 600
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: 
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: 
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 70 20 500 100
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: spectrum_plot_SN1
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: spec_SN1
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 70 150 500 100
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: spectrum_plot_SN2
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: spec_SN2
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: IMPULSE_XYPLOT
-box: 70 280 500 100
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLUE
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_NORMAL_SIZE
-lcol: FL_BLACK
-label: spectrum_plot_SN3
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: spec_SN3
-callback: 
-argument: 
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 70 430 500 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_GREEN
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: 
-shortcut: 
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: Secondary_Network_frequencies
-callback: 
-argument: 
-
-==============================
-create_the_forms
diff --git a/openair3/MESH/RRM/sensing_form.h b/openair3/MESH/RRM/sensing_form.h
deleted file mode 100644
index 461d378e62..0000000000
--- a/openair3/MESH/RRM/sensing_form.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/** Header file generated with fdesign on Tue Jun  1 11:00:12 2010.**/
-
-#ifndef FD_sensing_form_h_
-#define FD_sensing_form_h_
-
-/** Callbacks, globals and object handlers **/
-
-
-/**** Forms and Objects ****/
-typedef struct {
-  FL_FORM *sensing_form;
-  void *vdata;
-  char *cdata;
-  long  ldata;
-  FL_OBJECT *spec_SN1;
-  FL_OBJECT *spec_SN2;
-  FL_OBJECT *spec_SN3;
-  FL_OBJECT *Secondary_Network_frequencies;
-} FD_sensing_form;
-
-extern FD_sensing_form * create_form_sensing_form(void);
-
-#endif /* FD_sensing_form_h_ */
diff --git a/openair3/MESH/RRM/sensing_rrm_msg.h b/openair3/MESH/RRM/sensing_rrm_msg.h
deleted file mode 100644
index 03acd9ed68..0000000000
--- a/openair3/MESH/RRM/sensing_rrm_msg.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       sensing_msg.h
-
-\brief      Fichier d'entete contenant les declarations des types, des defines ,
-et des fonctions relatives aux messages RRC-RRM ou RRC-RRCI.
-
-Les fonctions servent à créer le buffer de message, remplir
-l'entete et copier les parametres de fonction. Chaque fonction
-retourne le message qui pourra être envoye sur le socket entre le
-CMM et le RRM ou RRCI.
-
-\author     BURLOT Pascal
-
-\date       17/07/08
-
-\par     Historique:
-L.IACOBELLI 2009-10-19
-+ sensing messages
-
-*******************************************************************************
-*/
-
-#ifndef __SENSING_RRM_MSG_H
-#define __SENSING_RRM_MSG_H
-
-
-#ifdef OPENAIR2_IN
-#include "rrm_sock.h"
-#else
-#include "RRC/MESH/rrc_rrm_interface.h"
-#include "RRC/MESH/L3_rrc_defs.h"
-#endif
-//#include "../../../openair2/RRC/MESH/rrc_rrm_interface.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
-*******************************************************************************
-\brief  Enumeration des messages entre RRM/RRCI et le RRC
-*/
-typedef enum {
-  SNS_UPDATE_SENS             , ///< Message SENSING->RRM : update of the sensing information measured by the nodes
-  RRM_SCAN_ORD                , ///< Message RRM->SENSING : order to scann indicated channels
-  RRM_END_SCAN_ORD            , ///< Message RRM->SENSING : end of a scanning process in sensors
-  SNS_END_SCAN_CONF           , ///< Message SENSING->RRC : end of a scanning process in sensors
-  NB_MSG_SNS_RRM                ///< Nombre de message RRM-SENSING
-}
-MSG_SENSING_RRM_T ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_scan_ord() dans
-une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-
-  unsigned int        NB_chan                 ; ///< Number of channels to scan if 0 means all channels
-  unsigned int        Meas_tpf                ; ///< time on each carrier           //mod_lor_10_02_19
-  unsigned int        Overlap                 ; ///< overlap factor (percentage)    //mod_lor_10_02_19
-  unsigned int        Sampl_nb                ; ///< number of samples per sub-band //mod_lor_10_04_01
-  Sens_ch_t           ch_to_scan[NB_SENS_MAX] ; ///< Vector of channels to scan     //mod_lor_10_02_19
-} rrm_scan_ord_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de la fonction rrm_end_scan_ord() dans
-une structure permettant le passage des parametres via un socket
-*/
-typedef struct {
-  unsigned int        NB_chan              ; //!< Number of channels
-  unsigned int        channels[NB_SENS_MAX]; //!< Vector of channels
-} rrm_end_scan_ord_t ;
-
-/*!
-*******************************************************************************
-\brief  Definition des parametres de les fonctions rrc_update_sens()
-        rdans une structure permettant le passage
-        des parametres via un socket
-*/
-typedef struct {
-  double              info_time              ; //!< Date of the message
-  L2_ID               L2_id                  ; //!< Layer 2 ID (MAC) of sensing node
-  unsigned int        NB_info                ; //!< number of sensed channels
-  Sens_ch_t           Sens_meas[NB_SENS_MAX] ; //!< sensing information
-} rrc_update_sens_t;
-
-
-msg_t *msg_rrm_scan_ord( Instance_t inst, unsigned int NB_chan, unsigned int Meas_tpf, unsigned int Overlap,
-                         unsigned int Sampl_nb, Sens_ch_t *ch_to_scan, Transaction_t Trans_id );  //mod_lor_10_02_19
-msg_t *msg_rrm_end_scan_ord(Instance_t inst, unsigned int NB_chan, unsigned int *channels,
-                            Transaction_t Trans_id );
-
-#endif /* SENSING_MSG_H */
diff --git a/openair3/MESH/RRM/transact.c b/openair3/MESH/RRM/transact.c
deleted file mode 100644
index a317eb9fc8..0000000000
--- a/openair3/MESH/RRM/transact.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       transact.c
-
-\brief      Gestion des transactions entre les différentes entités
-
-\author     BURLOT Pascal
-
-\date       17/07/08
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "debug.h"
-#include "L3_rrc_defs.h"
-#include "rrm_util.h"
-#include "transact.h"
-
-
-//! Selection locale du mode de debug
-#define DBG_TRANSACT 0
-
-#if DBG_TRANSACT==0
-//! Macro inactive
-#define PRINT_TRANSACT(...)
-#else
-//! Macro affichant  la liste de transaction
-#define PRINT_TRANSACT(...) print_transact( __VA_ARGS__ )
-#endif
-
-/*!
-*******************************************************************************
-\brief  La fonction affiche a l'ecran la liste (pour DEBUG )
-
-\return  aucune valeur retournee
-*/
-static void print_transact(
-  transact_t *pEntry  ///< pointeur sur la liste de transaction
-)
-{
-  transact_t *pCurrentItem = pEntry;
-
-  fprintf(stderr,"transact_t=[\n");
-
-  while ( pCurrentItem != NULL) {
-    fprintf(stderr,"  @%p(.id=%u, .interf_id=%u,  .funct_id=%u, .ttl=%u,  .next=%p, .parent_id=%d, .parent_status=%d)\n",
-            pCurrentItem, pCurrentItem->id, pCurrentItem->interf_id,pCurrentItem->funct_id,
-            pCurrentItem->ttl, pCurrentItem->next, pCurrentItem->parent_id, pCurrentItem->parent_status);
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  fprintf(stderr," ]\n");
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction ajoute un element en debut de la liste des transactions
-        non-cloturees.
-
-\return  retourne le pointeur de debut de liste.
-*/
-transact_t *add_item_transact(
-  transact_t   **pEntry   , ///< pointeur sur l'entree sur la liste de transaction
-  Transaction_t  id       , ///< ID de la transaction
-  unsigned int   interf_id, ///< Identification de l'interface de la transaction
-  unsigned int   funct_id , ///< Identification de la function a l'origine de la transaction
-  unsigned int   parent   , ///< Transaction parent
-  unsigned int   status     ///< Status de la transaction
-)
-{
-  transact_t *pOldEntry = *pEntry;
-
-  transact_t *pNewItem = RRM_MALLOC(transact_t , 1 ) ;
-
-  PNULL(pNewItem) ;
-
-  if ( pNewItem == NULL )
-    return NULL ;
-
-  *pEntry             = pNewItem          ;
-  pNewItem->next      = pOldEntry         ;
-  pNewItem->id        = id                ;
-  pNewItem->interf_id = interf_id         ;
-  pNewItem->funct_id  = funct_id          ;
-  pNewItem->parent_id = parent            ;
-  pNewItem->parent_status = status            ;
-  pNewItem->ttl       = TTL_DEFAULT_VALUE ;
-
-  PRINT_TRANSACT( *pEntry );
-  return pNewItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction retire un element de la liste des transactions  non-cloturees.
-
-\return  aucune valeur.
-*/
-void del_item_transact(
-  transact_t    **pEntry , ///< pointeur sur l'entree sur la liste de transaction
-  Transaction_t   id       ///< ID de la transaction a detruire
-)
-{
-  transact_t *pCurrentItem = *pEntry;
-  transact_t *pNextItem    ;
-  transact_t **ppPrevItem  = pEntry ;
-
-  if ( (pCurrentItem == NULL)  || (pEntry==NULL))
-    return ;
-
-  while ( pCurrentItem != NULL ) {
-    pNextItem =  pCurrentItem->next ;
-
-    if ( pCurrentItem->id == id ) {
-      *ppPrevItem = pNextItem;
-      RRM_FREE( pCurrentItem ) ;
-      break ;
-    }
-
-    ppPrevItem   = &(pCurrentItem->next) ;
-    pCurrentItem = pNextItem ;
-  }
-
-  PRINT_TRANSACT( *pEntry );
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction recherche un element dans  la liste des transactions
-        non-cloturees.
-
-\return  la valeur retournee est la transaction trouvee sinon NULL
-*/
-transact_t *get_item_transact(
-  transact_t    *pEntry , ///< pointeur sur l'entree sur la liste de transaction
-  Transaction_t  id       ///< ID de la transaction a rechercher
-)
-{
-  transact_t *pCurrentItem = pEntry;
-
-  while ( (pCurrentItem != NULL) && ( pCurrentItem->id != id )) {
-    pCurrentItem = pCurrentItem->next ;
-  }
-
-  return pCurrentItem ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction rearme la valeur du ttl de la transaction
-
-\return  aucune valeur retournee
-*/
-void set_ttl_transact(
-  transact_t    *pEntry   ,  ///< pointeur sur l'entree sur la liste de transaction
-  Transaction_t  id       ,  ///< ID de la transaction
-  unsigned int   value       ///< valeur du ttl
-)
-{
-  transact_t *transaction = get_item_transact( pEntry , id ) ;
-
-  if ( transaction != NULL )
-    transaction->ttl = value ;
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction decremente les valeurs du ttl de toutes les transactions
-
-\return  aucune valeur retournee
-*/
-void dec_all_ttl_transact(
-  transact_t *pEntry ///< pointeur sur l'entree sur la liste de transaction
-)
-{
-  transact_t *pCurrentItem = pEntry;
-
-  while ( pCurrentItem != NULL) {
-    if (pCurrentItem->ttl !=0 )
-      pCurrentItem->ttl -=1 ;
-
-    pCurrentItem = pCurrentItem->next ;
-  }
-}
-
-/*!
-*******************************************************************************
-\brief  La fonction supprime les transactions dont le ttl est nulle
-
-\return  aucune valeur retournee
-*/
-void del_all_obseleted_transact(
-  transact_t **pEntry ///< pointeur sur l'entree sur la liste de transaction
-)
-{
-  transact_t *pCurrentItem = *pEntry;
-  transact_t *pNextItem ;
-
-  while ( pCurrentItem != NULL) {
-    pNextItem = pCurrentItem->next ;
-
-    if (pCurrentItem->ttl == 0 ) {
-      fprintf(stderr,"Delete obselete Transaction: \n" ) ;
-      print_transact(pCurrentItem) ;
-      del_item_transact( pEntry ,  pCurrentItem->id ) ;
-    }
-
-    pCurrentItem = pNextItem ;
-  }
-}
diff --git a/openair3/MESH/RRM/transact.h b/openair3/MESH/RRM/transact.h
deleted file mode 100644
index 351a7b478d..0000000000
--- a/openair3/MESH/RRM/transact.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!
-*******************************************************************************
-
-\file       transact.h
-
-\brief      Fichier d'entete contenant les declarations de type, des defines ,
-            les fonctions relatifs a la gestion des transactions.
-
-\author     BURLOT Pascal
-
-\date       17/07/08
-
-\par     Historique:
-            $Author$  $Date$  $Revision$
-            $Id$
-            $Log$
-
-*******************************************************************************
-*/
-
-#ifndef TRANSACT_H
-#define TRANSACT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//! Valeur par defaut du TTL de transaction
-#define TTL_DEFAULT_VALUE       20
-
-
-//typedef void (*fct_abort_transaction_t)( void *data) ;
-
-///< \brief Transaction en suspend ( non-traite )
-typedef struct transact_s {
-  unsigned int                    id          ; ///< Transaction ID
-  enum  { INT_RRC=0, ///< Interface avec le RRC
-          INT_CMM,   ///< Interface avec le CMM
-          INT_PUSU   ///< Interface avec le PUSU
-        }                       interf_id   ; ///< interface
-  unsigned int                    funct_id    ; ///< Transaction type
-  unsigned int                    ttl         ; ///< Time to live  of transaction
-  struct transact_s              *next        ; ///< next Transaction to process
-
-  unsigned int                    parent_id   ; ///< Transaction parent id
-  enum  { NO_PARENT=0 ,
-          PARENT
-        }                       parent_status; ///< Transaction parent status
-} transact_t ;
-
-transact_t *add_item_transact(
-  transact_t **pEntry ,
-  unsigned int   id,
-  unsigned int   interf_id,
-  unsigned int   funct_id,
-  unsigned int   parent,
-  unsigned int   status
-);
-void del_item_transact( transact_t **pEntry , unsigned int   id );
-
-transact_t *get_item_transact(
-  transact_t *pEntry ,
-  unsigned int   id
-);
-
-void set_ttl_transact( transact_t *pEntry , Transaction_t   id , unsigned int value );
-void dec_all_ttl_transact( transact_t *pEntry );
-void del_all_obseleted_transact( transact_t **pEntry );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* TRANSACT_H */
diff --git a/openair3/MESH/cmm_ral_interface.h b/openair3/MESH/cmm_ral_interface.h
deleted file mode 100644
index 171e5df5b2..0000000000
--- a/openair3/MESH/cmm_ral_interface.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/**  @addtogroup _mesh_layer3_
- @{
- */
-
-
-/**
-  \brief Establish a new classification rule.
-  @returns status indication
-*/
-int cmm_class_setup_req(L3ID_T L3id,           //!< L3 ID type (IPv4 Addr,IPv6 Addr,MPLS Labels)
-                        void *InA,             //!< L3 ID A
-                        void *InB,             //!< L3 ID B
-                        RBID_T Rbid,           //!< L2 RBID
-                        L3QOS_T L3QoS,         //!< L3 QoS type (DSCP,EXP,ICMPV6)
-                        void *QoS_id,          //!< L3 QoS id (DSCP #, EXP #, ICMPv6 message type)
-                        Transaction_t Trans_id  //!< Transaction ID
-                       );
-
-/**
-  \brief Release a classification rule which was previously established.
-  @returns status indication
-*/
-int cmm_class_release_req(L3ID_T L3id,           //!< L3 ID type (IPv4 Addr,IPv6 Addr,MPLS Labels)
-                          void *InA,             //!< L3 ID A
-                          void *InB,             //!< L3 ID B
-                          RBID_T Rbid,           //!< L2 RBID
-                          L3QOS_T L3QoS,         //!< L3 QoS type (DSCP,EXP,ICMPV6)
-                          void *QoS_id,          //!< L3 QoS id (DSCP #, EXP #, ICMPv6 message type)
-                          Transaction_t Trans_id  //!< Transaction ID
-                         );
-
-
-/** @} */
diff --git a/openair3/MESH/cmm_rrm_interface.h b/openair3/MESH/cmm_rrm_interface.h
deleted file mode 100644
index 9e90c16ed6..0000000000
--- a/openair3/MESH/cmm_rrm_interface.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/*******************************************************************************
-    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@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06410 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-/*!  @addtogroup _mesh_layer3_
- @{
- */
-
-/*!
-  \brief  CMM connection setup request.  Only in CH.
-  \return status indication
-*/
-int cmm_cx_setup_req(
-  Instance_t    inst      , //!< Identification de l'instance
-  L2_ID         Src       , //!< L2 source MAC address
-  L2_ID         Dst       , //!< L2 destination MAC address
-  QOS_CLASS_T   QoS_class , //!< QOS class index
-  Transaction_t Trans_id    //!< Transaction ID
-);
-
-/*!
-  \brief RRM connection confirm.  Only in CH. Confirms a cmm_cx_setup_req
-*/
-void rrm_cx_setup_cnf(
-  Instance_t    inst     , //!< Identification de l'instance
-  RB_ID         Rb_id    , //!< L2 Rb_id
-  Transaction_t Trans_id   //!< Transaction ID
-);
-
-/*!
-  \brief  CMM connection modify request.  Only in CH.
-  \return status indication
-*/
-int cmm_cx_modify_req(
-  Instance_t    inst      , //!< Identification de l'instance
-  RB_ID         Rb_id     , //!< L2 Rb_id
-  QOS_CLASS_T   QoS_class , //!< QOS class index
-  Transaction_t Trans_id    //!< Transaction ID
-);
-
-/*!
-  \brief RRM connection modify confirm.  Only in CH. Confirms a cmm_cx_modify_req
-*/
-void rrm_cx_modify_cnf(
-  Instance_t    inst     , //!< Identification de l'instance
-  Transaction_t Trans_id   //!< Transaction ID
-);
-
-/*!
-  \brief CMM connection release request.  Only in CH.
-  \return status indication
-*/
-int cmm_cx_release_req(
-  Instance_t    inst     , //!< Identification de l'instance
-  RB_ID         Rb_id    , //!< L2 Rb_id
-  Transaction_t Trans_id   //!< Transaction ID
-);
-
-/*!
-  \brief RRM connection modify confirm.  Only in CH. Confirms a cmm_cx_modify_req
-*/
-void rrm_cx_release_cnf(
-  Instance_t    inst     , //!< Identification de l'instance
-  Transaction_t Trans_id   //!< Transaction ID
-);
-
-/*!
-  \brief  CMM connection release all resources request.  Only in CH.
-  \return status indication
-*/
-int cmm_cx_release_all_req(
-  Instance_t    inst     , //!< Identification de l'instance
-  L2_ID         L2_id    , //!< L2 Rb_id
-  Transaction_t Trans_id   //!< Transaction ID
-);
-
-/*!
-  \brief RRM connection release all confirm.  Only in CH. Confirms a
-          cmm_cx_release_all_req.
-*/
-void rrm_cx_release_all_cnf(
-  Instance_t    inst     , //!< Identification de l'instance
-  Transaction_t Trans_id   //!< Transaction ID
-);
-
-/*!
-  \brief  L3 Connection attachment request.  Message sent by RRCI in MR after
-           configuration of initial RBs and reception of CH IPAddr.  Here L3_info
-           contains CH IPAddr.  The RBID's of basic IP services are also required.
-  \return status indication
-*/
-int rrci_attach_req(
-  Instance_t     inst      , //!< Identification de l'instance
-  L2_ID          L2_id     , //!< Layer 2 (MAC) ID
-  L3_INFO_T      L3_info_t , //!< Type of L3 Information
-  unsigned char *L3_info   , //!< L3 addressing Information
-  RB_ID          DTCH_B_id , //!< RBID of broadcast IP service (MR only)
-  RB_ID          DTCH_id   , //!< RBID of default IP service (MR only)
-  Transaction_t  Trans_id    //!< Transaction ID
-);
-
-/*!
-  \brief Connection Attachment indication.  Message sent by RRM in CH at
-          completion of attachment phase of a new MR (after configuration
-          MR IPAddr). Here L3_info contains MR IPAddr.
-*/
-void rrm_attach_ind(
-  Instance_t     inst      , //!< Identification de l'instance
-  L2_ID          L2_id     , //!< Layer 2 (MAC) ID
-  L3_INFO_T      L3_info_t , //!< Type of L3 Information
-  unsigned char *L3_info   , //!< L3 addressing Information
-  RB_ID          DTCH_id     //!< RBID of default IP service (MR only)
-);
-
-/*!
-  \brief L3 Connection Attachment confirmation.  Message sent by CMM in MR at
-          completion of L3 attachment phase of a new MR Here L3_info contains
-          MR IPAddr.
-*/
-void cmm_attach_cnf(
-  Instance_t     inst      , //!< Identification de l'instance
-  L2_ID          L2_id     , //!< L2_id of CH ( Mesh Router can see 2 CH )
-  L3_INFO_T      L3_info_t , //!< Type of L3 Information
-  unsigned char *L3_info   , //!< L3 addressing Information
-  Transaction_t  Trans_id    //!< Transaction ID
-);
-
-
-/*!
-  \brief  Message sent by RRM to CMM to indicate attachement at layer 2 of
-           a new MR.
-*/
-void rrm_MR_attach_ind(
-  Instance_t inst  , //!< Identification de l'instance
-  L2_ID      L2_id   //!< MR Layer 2 (MAC) ID
-);
-
-/*!
-  \brief  Message sent by RRM to CMM to indicate that the node function is
-           Cluster head. CMM initializes then the CH configuration.
-*/
-void router_is_CH_ind(
-  Instance_t inst  , //!< Identification de l'instance
-  L2_ID      L2_id   //!< CH Layer 2 (MAC) ID
-);
-
-/*!
-  \brief
-*/
-void rrci_CH_synch_ind(
-  Instance_t inst    //!< Identification de l'instance
-);
-
-/*!
-  \brief
-*/
-void cmm_init_mr_req(
-  Instance_t inst    //!< Identification de l'instance
-);
-
-/*!
-  \brief
-*/
-void rrm_MR_synch_ind(
-  Instance_t inst    //!< Identification de l'instance
-);
-
-/*!
-  \brief
-*/
-void rrm_no_synch_ind(
-  Instance_t inst    //!< Identification de l'instance
-);
-
-/*!
-  \brief
-*/
-void cmm_init_ch_req(
-  Instance_t  inst     ,  //!< Identification de l'instance
-  L3_INFO_T   L3_info_t,
-  void       *L3_info
-);
-
-/*!
-  \brief
-*/
-void cmm_init_sensing(
-  Instance_t       inst,            //!< identification de l'instance
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq
-);
-
-/*!
-  \brief
-*/
-void cmm_stop_sensing(
-  Instance_t inst            //!< identification de l'instance
-);
-
-/*!
-  \brief
-*/
-void cmm_ask_freq(
-  Instance_t inst            //!< identification de l'instance
-);
-
-/*!
-  \brief  add_lor_10_11_03
-*/
-
-void cmm_need_to_tx(
-  Instance_t inst             ,//!< identification de l'instance
-  Instance_t dest             ,//!< identification de l'instance du noeud destinataire
-  QOS_CLASS_T QoS_class        //!< Required quality of service (i.e. number of channels)
-);
-
-/*!
-  \brief  add_lor_10_11_08
-*/
-void cmm_init_coll_sensing(
-  Instance_t       inst,            //!< identification de l'instance
-  unsigned int     Start_fr,
-  unsigned int     Stop_fr,
-  unsigned int     Meas_band,
-  unsigned int     Meas_tpf,
-  unsigned int     Nb_channels,
-  unsigned int     Overlap,
-  unsigned int     Sampl_freq
-);
-/*!
-  \brief  add_lor_10_11_09
-*/
-void cmm_user_disc(
-  Instance_t inst            //!< identification de l'instance
-);
-/*!
-  \brief  add_lor_10_11_09
-*/
-void cmm_link_disc(
-  Instance_t inst           ,//!< identification de l'instance
-  Instance_t dest            //!< identification du destinataire
-);
-/*!
-  \brief  add_lor_10_11_09
-*/
-void disconnect_user(
-  Instance_t    inst     , //!< identification de l'instance
-  L2_ID         L2_id      //!< L2_id of the SU
-);
-/*!
- \brief  add_lor_10_11_09
-*/
-int close_active_link(
-  Instance_t    inst       , //!< identification de l'instance
-  L2_ID         L2_id      , //!< L2_id of the SU
-  L2_ID         L2_id_dest   //!< L2_id of the SU dest
-);
-
-
-
-
-
-/*! @} */
diff --git a/openair3/UTILS/COPYING b/openair3/UTILS/COPYING
deleted file mode 100644
index 94a9ed024d..0000000000
--- a/openair3/UTILS/COPYING
+++ /dev/null
@@ -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>.
diff --git a/openair3/UTILS/GPSDRIVE/README.txt b/openair3/UTILS/GPSDRIVE/README.txt
deleted file mode 100644
index 2cdb69918c..0000000000
--- a/openair3/UTILS/GPSDRIVE/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-File: Readme.txt
-Author: Florian Kaltenberger
-Date: 11.2.09
-
-This directory contains configuration files and maps for gpsdrive. gpsdrive displays your position and position of others (which are connected to the friends server) on a map. see man gpsdrive and man friendsd2 for details. 
-
-Copy the maps directory to your ~/.gpsdrive directory or merge it with the existing directory iff you have already created other maps. 
- 
diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_27650000_43.847_7.448.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_27650000_43.847_7.448.gif
deleted file mode 100644
index a16cfbd86fd4d9e9b720b392df24ec257c75a51b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 110871
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
P{>H6SovUMG5)c48%cwh?

diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.282_1.989.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.282_1.989.gif
deleted file mode 100644
index e62bdfeadf6eb77c3c7e86c38be5a08d64fd6b66..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 57710
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
PqKOC!DngZA1Oxy(kr&`S

diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.501_2.111.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.501_2.111.gif
deleted file mode 100644
index 7d6d7d9d6d6937b93df8011ec0d067d0f13962f9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 47311
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
L0Cb(j6c7MAEjJf1

diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.502_2.113.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.502_2.113.gif
deleted file mode 100644
index 92e037a2319d7babc33bb2019dff7a0bc404edb0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 54633
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
G0029P0r1oS

diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.516_2.087.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.516_2.087.gif
deleted file mode 100644
index 663bd7eb03abdb8f87608a3d74c06c664bd5c162..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 25447
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

diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.735_7.421.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.735_7.421.gif
deleted file mode 100644
index e1b46bbafdf560011a9addf5fffe2cabb8b5c9bf..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 84014
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

diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.883_7.355.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.883_7.355.gif
deleted file mode 100644
index 9f613284ee4dcd6d52e10174325a829fc72e75d0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 20204
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
L6896D0s;U#fb>hN

diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.912_7.516.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.912_7.516.gif
deleted file mode 100644
index 061596307b34977940b70464e75d7851e91b83b7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 14725
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

diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.923_7.527.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.923_7.527.gif
deleted file mode 100644
index 9967a44747639d5314d59f12f64405def9f7614d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 11399
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

diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_47400_41.282_1.989.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_47400_41.282_1.989.gif
deleted file mode 100644
index 7f9e2e7f329e43e66801e20e619eec7662ee29ae..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 113594
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
I<`@tFJ3Z%sVgLXD

diff --git a/openair3/UTILS/GPSDRIVE/maps/expedia/map_98750_41.516_2.088.gif b/openair3/UTILS/GPSDRIVE/maps/expedia/map_98750_41.516_2.088.gif
deleted file mode 100644
index 603cea4f28f1d77c11dce4d163f54a0eddbacad1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 119955
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%0DTW4dXhH7W%IVk0*;
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

diff --git a/openair3/UTILS/GPSDRIVE/maps/map_koord.txt b/openair3/UTILS/GPSDRIVE/maps/map_koord.txt
deleted file mode 100644
index 77203b7a67..0000000000
--- a/openair3/UTILS/GPSDRIVE/maps/map_koord.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-top_Africa.jpg 1.82500 26.57917 24167707
-top_Americas.jpg 4.25000 -91.50000 38529708
-top_AsiaMiddleEast.jpg 34.33333 54.87500 17638272
-top_AsiaEast.jpg 32.78333 139.37500 24646780
-top_Australia.jpg -26.96667 134.12500 10990784
-top_BritishIsles.jpg 54.54167 -4.20833 3135892
-top_Europe.jpg 52.91667 12.41667 11823932
-top_Germany.jpg 51.50833 11.05000 3909032
-top_GPSWORLD.jpg 0.00000 0.00000 88067900
-top_JapanKorea.jpg 38.45833 135.15833 5379458
-top_NewZealand.jpg -40.85000 172.50000 4240306
-top_NorthAmerica.jpg 39.96667 -95.52500 20982408
-top_SouthAmerica.jpg -21.58333 -63.14583 21456356
-top_WorldEast.jpg 12.40000 68.00000 43055416
-expedia/map_98750_41.516_2.088.gif 41.51642 2.08774 98750
-expedia/map_3950_41.516_2.087.gif 41.51642 2.08732 3950
-expedia/map_47400_41.282_1.989.gif 41.28168 1.98933 47400
-expedia/map_3950_41.282_1.989.gif 41.28160 1.98929 3950
-expedia/map_98750_41.516_2.088.gif 41.51600 2.08802 98750
-expedia/map_98750_41.516_2.088.gif 41.51597 2.08801 98750
-expedia/map_3950_41.502_2.113.gif 41.50223 2.11301 3950
-expedia/map_3950_41.501_2.111.gif 41.50111 2.11116 3950
-expedia/map_3950_43.735_7.421.gif 43.73466 7.42114 3950
-expedia/map_3950_43.883_7.355.gif 43.88309 7.35546 3950
-expedia/map_27650000_43.847_7.448.gif 43.84667 7.44823 27650000
-expedia/map_3950_43.912_7.516.gif 43.91186 7.51550 3950
-expedia/map_3950_43.923_7.527.gif 43.92305 7.52726 3950
-expedia/map_3950_43.735_7.421.gif 43.73466 7.42114 3950
-expedia/map_3950_43.735_7.421.gif 43.73466 7.42114 3950
diff --git a/openair3/UTILS/REMSERIAL-1.4.UDP/Makefile b/openair3/UTILS/REMSERIAL-1.4.UDP/Makefile
deleted file mode 100755
index 99eff32890..0000000000
--- a/openair3/UTILS/REMSERIAL-1.4.UDP/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-all: remserial
-
-REMOBJ=remserial.o stty.o
-remserial: $(REMOBJ)
-	$(CC) $(LDFLAGS) -o remserial $(REMOBJ)
-
-clean:
-	rm -f remserial *.o
diff --git a/openair3/UTILS/REMSERIAL-1.4.UDP/README.txt b/openair3/UTILS/REMSERIAL-1.4.UDP/README.txt
deleted file mode 100755
index a4c0bb1c0c..0000000000
--- a/openair3/UTILS/REMSERIAL-1.4.UDP/README.txt
+++ /dev/null
@@ -1,150 +0,0 @@
-Remserial
----------
-
-The remserial program acts as a communications bridge between a TCP/IP
-network port and a Linux device such as a serial port.  Any character-oriented
-Linux /dev device will work.
-
-The program can also use pseudo-ttys as the device.  A pseudo-tty is like
-a serial port in that it has a /dev entry that can be opened by a program
-that expects a serial port device, except that instead of belonging to
-a physical serial device, the data can be intercepted by another program.
-The remserial program uses this to connect a network port to the
-"master" (programming) side of the pseudo-tty allowing the device driver
-(slave) side to be used by some program expecting a serial port.  See example
-3 below for details.
-
-The program can operate as a server accepting network connections from
-other machines, or as a client, connecting to remote machine that
-is running the remserial program or some other program that accepts
-a raw network connection.  The network connection passes data as-is,
-there is no control protocol over the network socket.
-
-Multiple copies of the program can run on the same computer at the same
-time assuming each is using a different network port and device.
-
-Some examples:
-
-1) Give access to a RS232 device over a network.
-
-The computer with the serial port connected to the device (such as a
-data aquisition device) runs the remserial program:
-
-	remserial -d -p 23000 -s "9600 raw" /dev/ttyS0 &
-
-This starts the program in daemon mode so that it runs in the background,
-it waits for connections on port 23000 and sets up the serial port
-/dev/ttyS0 at 9600 baud.  Network connections to port 23000 from any
-machine can then read and write to the device attached to the serial port.
-
-This can be started from /etc/rc.local or as an entry in /etc/inittab
-or set up as a system service with a file in /etc/rc.init/.
-
-2) Connect an RS232 device to a specified server.
-
-The computer with the serial port connected to the device (such as a
-data aquisition device) runs the remserial program:
-
-	remserial -d -r server-name -p 23000 -s "9600 raw" /dev/ttyS0 &
-
-This would be used with case number 1 above creating an end-to-end serial
-port connection.  What goes in the serial port on one machine would come
-out the serial port of the other machine.  The ports could be running at
-different baud rates or other serial port settings.
-
-3) Connect a Linux program that needs a serial port to a remote serial port.
-
-Some programs are written to communicate directly with a serial port such
-as some data aquisition programs.  The remserial program can use
-pseudo-ttys to fool the program into thinking that it is talking to a
-real serial port on the local machine:
-
-	remserial -d -r server-name -p 23000 -l /dev/remserial1 /dev/ptmx &
-
-This creates a file called /dev/remserial1 which can be used by the
-data aquisition application as its serial port.  Any data sent or received
-is passed to the remote server-name on port 23000 where a computer configured
-in case number 1 above passes it to a real serial port.
-
-The remserial program uses the special pseudo-tty master device /dev/ptmx
-(see man ptmx) which creates a slave device that looks like a normal
-serial port named /dev/pts/something.  Unfortunately, the actual device
-name created isn't consistent, so the remserial program creates a symbol
-link from the device name specified with the -l option to the /dev/pts/
-name that was created allowing the other application to be configured
-with a consistent device name.
-
-4) Server farm console control.
-
-Assuming multiple Linux servers (such as web servers) are set up to have a
-serial port as their console instead of a monitor/keyboard, their serial
-ports could be connected to a control server using a multi-port serial board.
-On the control server, a copy of remserial is run for each server:
-
-	remserial -d -p 23000 -s "115200 raw" /dev/ttyS0 &
-	remserial -d -p 23001 -s "115200 raw" /dev/ttyS1 &
-	remserial -d -p 23002 -s "115200 raw" /dev/ttyS2 &
-	remserial -d -p 23003 -s "115200 raw" /dev/ttyS3 &
-	etc.
-
-From any computer on the local network, use a telnet program to connect
-to the control server on the appropriate port:
-
-	telnet control-server-name 23002
-
-This would connect through the associated serial port to the desired server's
-console.  This example would then give the user console access to the 3rd
-server.
-
-Careful scripting such as using the Linux "expect" program could allow
-batches of commands to be run on each server.
-
-Other Linux program useful with remserial
------------------------------------------
-
-- nc - The netcat program is similar to remserial except that it creates
-  connections between network ports and command line standard input and
-  output.
-
-  For example, with case number 1 above, the following command run on
-  another computer will send the contents of the named file out the
-  serial port used by the remserial program:
-
-  nc server-name 23000 <file-name
-
-  Similarily, the following command will store incoming serial data in a file
-  until the program is manually interrupted:
-
-  nc server-name 23000 >file-name
-
-- telnet - The telnet program is normally used to log into a remote computer,
-  but when used with network ports other than number 23, it operates in a
-  raw data mode.
-
-  For example, with case number 1 above, the following command will allow
-  the user of the telnet program to see incoming serial port data and
-  type data on the keyboard to send to the serial port:
-
-  telnet server-name 23000
-
-  This is ideal for controlling the device connected to the serial port
-  if it has some sort of command line interface usable over the serial port.
-
-
-remserial Usage:
----------------
-
-remserial [-r machinename] [-p netport] [-s "stty params"] device
-
--r machinename		The remote machine name to connect to.  If not
-			specified, then this is the server side.
--p netport		Specifiy IP port# (default 23000)
--s "stty params"	If serial port, specify stty parameters, see man stty
--d			Run as daemon programs
--x debuglevel		Set debug level, 0 is default, 1,2 give more info
--l linkname		If the device is /dev/ptmx, creates a symbolic link
-                        to the corresponding slave pseudo-tty so that another
-			application has a static device name to use.
--m max-connections	Maximum number of simultaneous client connections to allow
-device			Character oriented device node such as /dev/ttyS0.
-
diff --git a/openair3/UTILS/REMSERIAL-1.4.UDP/remserial.c b/openair3/UTILS/REMSERIAL-1.4.UDP/remserial.c
deleted file mode 100755
index 413fddeee4..0000000000
--- a/openair3/UTILS/REMSERIAL-1.4.UDP/remserial.c
+++ /dev/null
@@ -1,540 +0,0 @@
-/*
-* remserial
-* Copyright (C) 2000  Paul Davis, pdavis@lpccomp.bc.ca
-*
-* 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 2 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, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-*
-* This program acts as a bridge either between a socket(2) and a
-* serial/parallel port or between a socket and a pseudo-tty.
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <syslog.h>
-#include <signal.h>
-#include <errno.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-struct sockaddr_in addr,remoteaddr;
-int                sockfd            = -1;
-int                server_port       = 23000;
-int                client_port       = 22999;
-int                debug             = 0;
-int                devfd;
-int               *remotefd;
-char              *machinename       = NULL;
-char              *sttyparms         = NULL;
-static char       *sdevname          = NULL;
-char              *linkname          = NULL;
-int                isdaemon          = 0;
-fd_set             fdsread,fdsreaduse;
-struct hostent    *remotehost;
-extern char*       ptsname(int fd);
-int                curConnects       = 0;
-
-void sighandler (int sig);
-int  connect_to (struct sockaddr_in *addr);
-void usage      (char *progname);
-void link_slave (int fd);
-
-int main(int argc, char *argv[])
-{
-  int          result;
-  extern char *optarg;
-  extern int   optind;
-  int          maxfd = -1;
-  char         devbuf[512];
-  int          devbytes;
-  int          remoteaddrlen;
-  int          c;
-  int          waitlogged = 0;
-  int          maxConnects = 1;
-  int          writeonly = 0;
-  register int i;
-
-  while ( (c=getopt(argc,argv,"dl:m:p:r:s:wx:")) != EOF )
-    switch (c) {
-    case 'd':
-      isdaemon = 1;
-      break;
-
-    case 'l':
-      linkname = optarg;
-      break;
-
-    case 'x':
-      debug = atoi(optarg);
-      break;
-
-    case 'm':
-      maxConnects = atoi(optarg);
-      break;
-
-    case 'p':
-      server_port = atoi(optarg);
-      break;
-
-    case 'r':
-      machinename = optarg;
-      break;
-
-    case 's':
-      sttyparms = optarg;
-      break;
-
-    case 'w':
-      writeonly = 1;
-      break;
-
-    case '?':
-      usage(argv[0]);
-      exit(1);
-    }
-
-  sdevname = argv[optind];
-  remotefd = (int *) malloc (maxConnects * sizeof(int));
-
-  // struct group *getgrgid(gid_t gid);
-
-  printf("sdevname=%s,server_port=%d,stty=%s\n",sdevname,server_port,sttyparms);
-
-  openlog("remserial", LOG_PID, LOG_USER);
-
-  if (writeonly)
-    devfd = open(sdevname,O_WRONLY);
-  else
-    devfd = open(sdevname,O_RDWR);
-
-  if ( devfd == -1 ) {
-    syslog(LOG_ERR, "Open of %s failed: %m",sdevname);
-    printf("Open of %s failed: %m",sdevname);
-    exit(1);
-  }
-
-  if (linkname)
-    link_slave(devfd);
-
-  if ( sttyparms ) {
-    set_tty(devfd,sttyparms);
-  }
-
-  signal(SIGINT,sighandler);
-  signal(SIGHUP,sighandler);
-  signal(SIGTERM,sighandler);
-
-  if ( machinename ) {
-    //-----------------------------------------------------------------
-    // We are the client, Find the IP address for the remote machine
-    //-----------------------------------------------------------------
-
-    remotehost = gethostbyname(machinename);
-
-    if ( !remotehost ) {
-      syslog(LOG_ERR, "Couldn't determine address of %s", machinename );
-      exit(1);
-    }
-
-    /* Copy it into the addr structure */
-    addr.sin_family = AF_INET;
-    addr.sin_addr.s_addr = 0;
-
-    //memcpy(&(addr.sin_addr),remotehost->h_addr_list[0], sizeof(struct in_addr));
-    //addr.sin_port = htons(server_port);
-    addr.sin_port = htons(0);
-
-    remotefd[curConnects] = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-
-    if ( remotefd[curConnects] == -1 ) {
-      syslog(LOG_ERR, "Can't open socket: %m");
-      exit(1);
-    }
-
-
-    /* Set up to listen on the given port */
-    if( bind( remotefd[curConnects], (struct sockaddr*)(&addr), sizeof(struct sockaddr_in)) < 0 ) {
-      syslog(LOG_ERR, "Couldn't bind port %d, aborting: %m",client_port );
-      exit(1);
-    }
-
-
-    addr.sin_family = AF_INET;
-    memcpy(&(addr.sin_addr),remotehost->h_addr_list[0], sizeof(struct in_addr));
-    addr.sin_port = htons(server_port);
-
-    if (connect(remotefd[curConnects], (struct sockaddr*)(&addr), sizeof(struct sockaddr_in)) < 0 ) {
-      syslog(LOG_ERR, "Couldn't connect client socket to server socket, aborting: %m");
-      exit(1);
-    }
-
-    if ( debug>1 )
-      syslog(LOG_NOTICE,"Connected to remote UDP socket");
-
-    curConnects += 1;
-  } else {
-    //-------------------------------
-    // We are the server
-    //-------------------------------
-
-    /* Open the initial socket for communications */
-    sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-
-    if ( sockfd == -1 ) {
-      syslog(LOG_ERR, "Can't open socket: %m");
-      exit(1);
-    }
-
-    addr.sin_family = AF_INET;
-    addr.sin_addr.s_addr = 0;
-    addr.sin_port = htons(server_port);
-
-    /* Set up to listen on the given port */
-    if( bind( sockfd, (struct sockaddr*)(&addr),
-              sizeof(struct sockaddr_in)) < 0 ) {
-      syslog(LOG_ERR, "Couldn't bind port %d, aborting: %m",server_port );
-      exit(1);
-    }
-
-    if ( debug>1 )
-      syslog(LOG_NOTICE,"Bound port");
-  }
-
-
-  if ( isdaemon ) {
-    setsid();
-    close(0);
-    close(1);
-    close(2);
-  }
-
-  /* Set up the files/sockets for the select() call */
-  if ( sockfd != -1 ) {
-    FD_SET(sockfd,&fdsread);
-
-    if ( sockfd >= maxfd )
-      maxfd = sockfd + 1;
-  }
-
-  for (i=0 ; i<curConnects ; i++) {
-    FD_SET(remotefd[i],&fdsread);
-
-    if ( remotefd[i] >= maxfd )
-      maxfd = remotefd[i] + 1;
-  }
-
-  if (!writeonly) {
-    FD_SET(devfd,&fdsread);
-
-    if ( devfd >= maxfd )
-      maxfd = devfd + 1;
-  }
-
-  while (1) {
-
-    /* Wait for data from the listening socket, the device
-    or the remote connection */
-    fdsreaduse = fdsread;
-
-    if ( select(maxfd,&fdsreaduse,NULL,NULL,NULL) == -1 )
-      break;
-
-    /* Activity on the controlling socket, only on server */
-    if ( !machinename && FD_ISSET(sockfd,&fdsreaduse) ) {
-      remoteaddrlen = sizeof(struct sockaddr_in);
-      devbytes = recvfrom(sockfd, devbuf, 512, 0, (struct sockaddr *) &remoteaddr, &remoteaddrlen);
-
-
-      //if ( debug>1 && devbytes>0 )
-      if (debug>1) {
-        syslog(LOG_INFO,"Remote: %d bytes",devbytes);
-      }
-
-      printf("Socket Remote read: %d bytes\n",devbytes);
-
-      if ( devbytes == 0 ) {
-      } else if ( devfd != -1 ) {
-        if (connect(sockfd, (struct sockaddr*)(&remoteaddr), remoteaddrlen) < 0 ) {
-          syslog(LOG_ERR, "Couldn't connect server socket to client socket, aborting: %m");
-          exit(1);
-        }
-
-        // socket read/write
-        //remotefd[curConnects] = sockfd;
-
-        /* Write the data to the device */
-        result = write(devfd,devbuf,devbytes);
-
-        if (result < 0) {
-          printf("write(%d,devbuf,%d):%s", devfd, devbytes,strerror(result));
-        } else {
-          printf("Write to device returned %d", result);
-        }
-
-        fflush(NULL);
-      }
-    }
-
-    /* Data to read from the device */
-    if ( FD_ISSET(devfd,&fdsreaduse) ) {
-      devbytes = read(devfd,devbuf,512);
-
-      //if ( debug>1 && devbytes>0 )
-      if (debug>1) {
-        syslog(LOG_INFO,"Device: %d bytes",devbytes);
-      }
-
-      printf("Device: %d bytes", devbytes);
-
-      if ( devbytes <= 0 ) {
-        if ( debug>0 ) {
-          syslog(LOG_INFO,"%s closed",sdevname);
-          printf("%s closed",sdevname);
-        }
-
-        close(devfd);
-        FD_CLR(devfd,&fdsread);
-
-        while (1) {
-          devfd = open(sdevname,O_RDWR);
-
-          if ( devfd != -1 )
-            break;
-
-          syslog(LOG_ERR, "Open of %s failed: %m", sdevname);
-
-          if ( errno != EIO )
-            exit(1);
-
-          sleep(1);
-        }
-
-        if ( debug>0 )
-          syslog(LOG_INFO,"%s re-opened",sdevname);
-
-        if ( sttyparms )
-          set_tty(devfd,sttyparms);
-
-        if (linkname)
-          link_slave(devfd);
-
-        FD_SET(devfd,&fdsread);
-
-        if ( devfd >= maxfd )
-          maxfd = devfd + 1;
-      } else {
-        for (i=0 ; i<curConnects ; i++) {
-          result = write(remotefd[i],devbuf,devbytes);
-
-          if (result < 0) {
-            printf("write(remotefd[%d]=%d,devbuf,%d):%s", i, remotefd[i], devbytes, strerror(result));
-          } else {
-            printf("Write to remotefd[%d]=%d returned %d", i, remotefd[i], result);
-          }
-
-          fflush(NULL);
-        }
-
-        if ( !machinename) {
-          result = write(sockfd, devbuf,devbytes);
-
-          if (result < 0) {
-            printf("write(sockfd=%d,devbuf,%d):%s", sockfd, devbytes, strerror(result));
-          } else {
-            printf("Write to sockfd=%d returned %d", sockfd, result);
-          }
-
-          fflush(NULL);
-        }
-      }
-    }
-
-    /* Data to read from the remote system */
-    for (i=0 ; i<curConnects ; i++)
-      if (FD_ISSET(remotefd[i],&fdsreaduse) ) {
-
-        devbytes = read(remotefd[i],devbuf,512);
-
-        //if ( debug>1 && devbytes>0 )
-        if (debug>1) {
-          syslog(LOG_INFO,"Remote: %d bytes",devbytes);
-        }
-
-        printf("Remote: %d bytes",devbytes);
-
-        if ( devbytes == 0 ) {
-          /*register int j;
-
-          syslog(LOG_NOTICE,"Connection closed");
-          printf("Connection closed");
-          close(remotefd[i]);
-          FD_CLR(remotefd[i],&fdsread);
-          curConnects--;
-          for (j=i ; j<curConnects ; j++)
-              remotefd[j] = remotefd[j+1];
-          if ( machinename ) {
-              // Wait for the server again
-              remotefd[curConnects++] = connect_to(&addr);
-              FD_SET(remotefd[curConnects-1],&fdsread);
-              if ( remotefd[curConnects-1] >= maxfd )
-                  maxfd = remotefd[curConnects-1] + 1;
-          }*/
-        } else if ( devfd != -1 ) {
-          /* Write the data to the device */
-          result = write(devfd,devbuf,devbytes);
-
-          if (result < 0) {
-            printf("write(devfd=%d,devbuf,%d):%s", devfd, devbytes, strerror(result));
-          } else {
-            printf("Write to devfd=%d returned %d", devfd, result);
-          }
-
-          fflush(NULL);
-        }
-      }
-  }
-
-  close(sockfd);
-
-  for (i=0 ; i<curConnects ; i++)
-    close(remotefd[i]);
-
-  printf("End of program, normal exit\n");
-}
-
-void sighandler(int sig)
-{
-  int i;
-
-  if ( sockfd != -1 )
-    close(sockfd);
-
-  for (i=0 ; i<curConnects ; i++)
-    close(remotefd[i]);
-
-  if ( devfd != -1 )
-    close(devfd);
-
-  if (linkname)
-    unlink(linkname);
-
-  syslog(LOG_ERR,"Terminating on signal %d",sig);
-  exit(0);
-}
-
-void link_slave(int fd)
-{
-  char *slavename;
-  int status = grantpt(devfd);
-
-  if (status != -1)
-    status = unlockpt(devfd);
-
-  if (status != -1) {
-    slavename = ptsname(devfd);
-
-    if (slavename) {
-      // Safety first
-      unlink(linkname);
-      status = symlink(slavename, linkname);
-    } else
-      status = -1;
-  }
-
-  if (status == -1) {
-    syslog(LOG_ERR, "Cannot create link for pseudo-tty: %m");
-    printf("Cannot create link for pseudo-tty: %m");
-    exit(1);
-  }
-}
-
-int
-connect_to(struct sockaddr_in *addr)
-{
-  int waitlogged = 0;
-  int stat;
-  extern int errno;
-  int sockfd;
-
-  if ( debug>0 ) {
-    unsigned long ip = ntohl(addr->sin_addr.s_addr);
-    syslog(LOG_NOTICE, "Trying to connect to %d.%d.%d.%d",
-           (int)(ip>>24)&0xff,
-           (int)(ip>>16)&0xff,
-           (int)(ip>>8)&0xff,
-           (int)(ip>>0)&0xff);
-  }
-
-  while (1) {
-    /* Open the socket for communications */
-    sockfd = socket(AF_INET, SOCK_STREAM, 6);
-
-    if ( sockfd == -1 ) {
-      syslog(LOG_ERR, "Can't open socket: %m");
-      exit(1);
-    }
-
-    /* Try to connect to the remote server,
-    if it fails, keep trying */
-
-    stat = connect(sockfd, (struct sockaddr*)addr,
-                   sizeof(struct sockaddr_in));
-
-    if ( debug>1 )
-      if (stat == -1)
-        syslog(LOG_NOTICE, "Connect status %d, errno %d: %m\n", stat,errno);
-      else
-        syslog(LOG_NOTICE, "Connect status %d\n", stat);
-
-    if ( stat == 0 )
-      break;
-
-    /* Write a message to syslog once */
-    if ( ! waitlogged ) {
-      syslog(LOG_NOTICE, "Waiting for server on %s port %d: %m", machinename,server_port );
-      waitlogged = 1;
-    }
-
-    close(sockfd);
-    sleep(10);
-  }
-
-  if ( waitlogged || debug>0 )
-    syslog(LOG_NOTICE, "Connected to server %s port %d", machinename,server_port );
-
-  return sockfd;
-}
-
-void usage(char *progname)
-{
-  printf("Remserial version 1.3.  Usage:\n");
-  printf("remserial [-r machinename] [-p netport] [-s \"stty params\"] [-m maxconnect] device\n\n");
-
-  printf("-r machinename		The remote machine name to connect to.  If not\n");
-  printf("			specified, then this is the server side.\n");
-  printf("-p netport		Specifiy IP port# (default 23000)\n");
-  printf("-s \"stty params\"	If serial port, specify stty parameters, see man stty\n");
-  printf("-m max-connections	Maximum number of simultaneous client connections to allow\n");
-  printf("-d			Run as a daemon program\n");
-  printf("-x debuglevel		Set debug level, 0 is default, 1,2 give more info\n");
-  printf("-l linkname		If the device name is a pseudo-tty, create a link to the slave\n");
-  printf("-w          		Only write to the device, no reading\n");
-  printf("device			I/O device, either serial port or pseudo-tty master\n");
-}
diff --git a/openair3/UTILS/REMSERIAL-1.4.UDP/stty.c b/openair3/UTILS/REMSERIAL-1.4.UDP/stty.c
deleted file mode 100755
index f7953be063..0000000000
--- a/openair3/UTILS/REMSERIAL-1.4.UDP/stty.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * remserial
- * Copyright (C) 2000  Paul Davis, pdavis@lpccomp.bc.ca
- *
- * 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 2 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, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <stdlib.h>
-#include <termios.h>
-#include <unistd.h>
-#include <string.h>
-
-#define CFLG  0
-#define IFLG  1
-#define OFLG  2
-#define LFLG  3
-#define RFLG  4
-#define BFLG  5
-
-extern int errno;
-
-static struct sttyset {
-  char *name;
-  int which;
-  int mask;
-  int value;
-} sttynames[] = {
-  { "0",    BFLG, 0,    B0  },
-  { "50",   BFLG, 0,    B50 },
-  { "75",   BFLG, 0,    B75 },
-  { "110",  BFLG, 0,    B110  },
-  { "134",  BFLG, 0,    B134  },
-  { "150",  BFLG, 0,    B150  },
-  { "200",  BFLG, 0,    B200  },
-  { "300",  BFLG, 0,    B300  },
-  { "600",  BFLG, 0,    B600  },
-  { "1200", BFLG, 0,    B1200 },
-  { "1800", BFLG, 0,    B1800 },
-  { "2400", BFLG, 0,    B2400 },
-  { "4800", BFLG, 0,    B4800 },
-  { "9600", BFLG, 0,    B9600 },
-  { "19200",  BFLG, 0,    B19200  },
-  { "38400",  BFLG, 0,    B38400  },
-#ifdef B57600
-  { "57600",  BFLG, 0,    B57600  },
-#endif
-#ifdef B115200
-  { "115200", BFLG, 0,    B115200 },
-#endif
-#ifdef B230400
-  { "230400", BFLG, 0,    B230400 },
-#endif
-  { "cs7",  CFLG, CSIZE,    CS7 },
-  { "cs8",  CFLG, CSIZE,    CS8 },
-  { "cstopb", CFLG, CSTOPB,   CSTOPB  },
-  { "cread",  CFLG, CREAD,    CREAD },
-  { "parenb", CFLG, PARENB,   PARENB  },
-  { "parodd", CFLG, PARODD,   PARODD  },
-  { "hubcl",  CFLG, HUPCL,    HUPCL },
-  { "clocal", CFLG, CLOCAL,   CLOCAL  },
-#ifdef CRTSCTS
-  { "crtscts",  CFLG, CRTSCTS,  CRTSCTS },
-#endif
-#ifdef ORTSFL
-  { "ortsfl", CFLG, ORTSFL,   ORTSFL  },
-#endif
-#ifdef CTSFLOW
-  { "ctsflow",  CFLG, CTSFLOW,  CTSFLOW },
-#endif
-#ifdef RTSFLOW
-  { "rtsflow",  CFLG, RTSFLOW,  RTSFLOW },
-#endif
-  { "ignbrk", IFLG, IGNBRK,   IGNBRK  },
-  { "brkint", IFLG, BRKINT,   BRKINT  },
-  { "ignpar", IFLG, IGNPAR,   IGNPAR  },
-  { "parmrk", IFLG, PARMRK,   PARMRK  },
-  { "inpck",  IFLG, INPCK,    INPCK },
-  { "istrip", IFLG, ISTRIP,   ISTRIP  },
-  { "inlcr",  IFLG, INLCR,    INLCR },
-  { "igncr",  IFLG, IGNCR,    IGNCR },
-  { "icrnl",  IFLG, ICRNL,    ICRNL },
-#ifdef IUCLC  // Missing on OSX, FreeBSD
-  { "iuclc",  IFLG, IUCLC,    IUCLC },
-#endif
-  { "ixon", IFLG, IXON,   IXON  },
-  { "ixany",  IFLG, IXANY,    IXANY },
-  { "ixoff",  IFLG, IXOFF,    IXOFF },
-#ifdef IMAXBEL
-  { "imaxbel",  IFLG, IMAXBEL,  IMAXBEL },
-#endif
-  { "opost",  OFLG, OPOST,    OPOST },
-#ifdef ILCUC  // Missing on OSX, FreeBSD
-  { "olcuc",  OFLG, OLCUC,    OLCUC },
-#endif
-  { "onlcr",  OFLG, ONLCR,    ONLCR },
-  { "ocrnl",  OFLG, OCRNL,    OCRNL },
-  { "onocr",  OFLG, ONOCR,    ONOCR },
-  { "onlret", OFLG, ONLRET,   ONLRET  },
-  { "ofil", OFLG, OFILL,    OFILL },
-  { "ofdel",  OFLG, OFDEL,    OFDEL },
-  { "nl0",  OFLG, NLDLY,    NL0 },
-  { "nl1",  OFLG, NLDLY,    NL1 },
-  { "cr0",  OFLG, CRDLY,    CR0 },
-  { "cr1",  OFLG, CRDLY,    CR1 },
-  { "cr2",  OFLG, CRDLY,    CR2 },
-  { "cr3",  OFLG, CRDLY,    CR3 },
-  { "tab0", OFLG, TABDLY,   TAB0  },
-  { "tab1", OFLG, TABDLY,   TAB1  },
-  { "tab2", OFLG, TABDLY,   TAB2  },
-  { "tab3", OFLG, TABDLY,   TAB3  },
-  { "bs0",  OFLG, BSDLY,    BS0 },
-  { "bs1",  OFLG, BSDLY,    BS1 },
-  { "vt0",  OFLG, VTDLY,    VT0 },
-  { "vt1",  OFLG, VTDLY,    VT1 },
-  { "ff0",  OFLG, FFDLY,    FF0 },
-  { "ff1",  OFLG, FFDLY,    FF1 },
-  { "isig", LFLG, ISIG,   ISIG  },
-  { "icanon", LFLG, ICANON,   ICANON  },
-#ifdef XCASE  // Missing on OSX, FreeBSD
-  { "xcase",  LFLG, XCASE,    XCASE },
-#endif
-  { "echo", LFLG, ECHO,   ECHO  },
-  { "echoe",  LFLG, ECHOE,    ECHOE },
-  { "echok",  LFLG, ECHOK,    ECHOK },
-  { "echonl", LFLG, ECHONL,   ECHONL  },
-  { "noflsh", LFLG, NOFLSH,   NOFLSH  },
-  { "tostop", LFLG, TOSTOP,   TOSTOP  },
-#ifdef ECHOCTL
-  { "echoctl",  LFLG, ECHOCTL,  ECHOCTL },
-#endif
-#ifdef ECHOPRT
-  { "echoprt",  LFLG, ECHOPRT,  ECHOPRT },
-#endif
-#ifdef ECHOKE
-  { "echoke", LFLG, ECHOKE,   ECHOKE  },
-#endif
-#ifdef FLUSHO
-  { "flusho", LFLG, FLUSHO,   FLUSHO  },
-#endif
-#ifdef PENDIN
-  { "pendin", LFLG, PENDIN,   PENDIN  },
-#endif
-  { "iexten", LFLG, IEXTEN,   IEXTEN  },
-#ifdef TOSTOP
-  { "tostop", LFLG, TOSTOP,   TOSTOP  },
-#endif
-  { "raw",  RFLG, 0,    0 },
-  { NULL,   0,  0,    0 }
-};
-
-static void
-set_this_tty(struct termios *term,struct sttyset *p,int turnon)
-{
-  /*
-  pdebug(5,"set_this_tty: setting %s on? %d\n",p->name,turnon);
-  */
-  switch ( p->which ) {
-  case CFLG:
-    term->c_cflag &= ~(p->mask);
-
-    if ( turnon )
-      term->c_cflag |= p->value;
-
-    break;
-
-  case IFLG:
-    term->c_iflag &= ~(p->mask);
-
-    if ( turnon )
-      term->c_iflag |= p->value;
-
-    break;
-
-  case OFLG:
-    term->c_oflag &= ~(p->mask);
-
-    if ( turnon )
-      term->c_oflag |= p->value;
-
-    break;
-
-  case LFLG:
-    term->c_lflag &= ~(p->mask);
-
-    if ( turnon )
-      term->c_lflag |= p->value;
-
-    break;
-
-  case RFLG:
-    term->c_iflag = 0;
-    term->c_oflag = 0;
-    term->c_lflag = 0;
-    term->c_cc[VMIN] = 1;
-    term->c_cc[VTIME] = 0;
-    break;
-
-  case BFLG:
-    cfsetispeed(term, p->value);
-    cfsetospeed(term, p->value);
-    break;
-  }
-}
-
-int
-set_tty(int fd,char *settings)
-{
-  register char *p;
-  register char *s;
-  struct termios term;
-  register int i;
-  int mode;
-
-  /*
-  pdebug(4,"set_tty: fd %d settings %s\n",fd,settings);
-  */
-  if ( tcgetattr(fd,&term) == -1 ) {
-    /*
-    pdebug(4,"set_tty: cannot get settings for fd %d, error %d\n",
-      fd,errno);
-    */
-    return -1;
-  }
-
-  s = strdup(settings);
-  p = strtok(s," \t\n");
-
-  while (p) {
-    mode = 1;
-
-    if ( *p == '-' ) {
-      mode = 0;
-      p++;
-    }
-
-    for ( i=0 ; sttynames[i].name ; i++ ) {
-      if ( !strcmp(p,sttynames[i].name) ) {
-        set_this_tty(&term,&sttynames[i],mode);
-        break;
-      }
-    }
-
-    p = strtok(NULL," \t\n");
-  }
-
-  free(s);
-
-  if ( tcsetattr(fd,TCSANOW,&term) == -1 ) {
-    /*
-    pdebug(4,"set_tty: cannot get settings for fd %d error %d\n",
-      fd,errno);
-    */
-    return -1;
-  } else
-    return 0;
-}
diff --git a/openair3/history.txt b/openair3/history.txt
deleted file mode 100644
index b3523124fe..0000000000
--- a/openair3/history.txt
+++ /dev/null
@@ -1,7 +0,0 @@
--------------------------
-11 Jun: 
-Description: 1st Importation. Forgive me if I make some error :-P
-Features: (released on 5 may 2008) 
-	PMIPv6 + IPv6-in-IPv6 + IPv6-Movement Detection
-	Configuration files (radvd for MR1 & MR2 only)
-	
\ No newline at end of file
-- 
GitLab