diff --git a/openair-cn/SCRIPTS/install_openvswitch1.9.0.bash b/openair-cn/SCRIPTS/install_openvswitch1.9.0.bash
index cf9fb8bf2279b2d93700278a5e695a40c98b31e3..cb32561d8d5a407be73d1cd53a11b5d925dd4744 100755
--- a/openair-cn/SCRIPTS/install_openvswitch1.9.0.bash
+++ b/openair-cn/SCRIPTS/install_openvswitch1.9.0.bash
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Tested on ubuntu 12.04 with updates on 05 april 2013
+# Tested on ubuntu 12.04 with updates on 05 april 2013, 07 november 2013
 
 # Make sure only root can run our script
 if [[ $EUID -ne 0 ]]; then
diff --git a/openair-cn/SCRIPTS/start_lte-epc-ovs.bash b/openair-cn/SCRIPTS/start_lte-epc-ovs.bash
index cd069b060ff7ea368fee28116de486fd758926ef..e4e6e4d8603d33a3c3f56ff94e34a958c310dc48 100755
--- a/openair-cn/SCRIPTS/start_lte-epc-ovs.bash
+++ b/openair-cn/SCRIPTS/start_lte-epc-ovs.bash
@@ -1,7 +1,8 @@
 #!/bin/bash
 # start MME+S/P-GW with openvswitch setting
 
-                                                                              hss.eur
+#                                                                           hss.eur
+#                                                                             |
 #        +-----------+          +------+              +-----------+           v   +----------+
 #        |  eNB      +------+   |  ovs | VLAN 1+------+    MME    +----+      +---+   HSS    |
 #        |           |cpenb0+------------------+cpmme0|           |    +------+   |          |
@@ -17,28 +18,89 @@
 #                                                     |           |      11 VLANS    |              |
 #                                                     +-----------+   ids=[5..15]    +--------------+
 #
-
-
 BRIDGE="vswitch"
 
 ###########################################################
-IPTABLES=/sbin/iptables
 THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
-declare -x OPENAIR_DIR=""
-declare -x OPENAIR1_DIR=""
-declare -x OPENAIR2_DIR=""
-declare -x OPENAIR3_DIR=""
-declare -x OPENAIR_TARGETS=""
+source $THIS_SCRIPT_PATH/utils.bash
 ###########################################################
 
-set_openair
-cecho "OPENAIR_DIR     = $OPENAIR_DIR" $green
-cecho "OPENAIR1_DIR    = $OPENAIR1_DIR" $green
-cecho "OPENAIR2_DIR    = $OPENAIR2_DIR" $green
-cecho "OPENAIR3_DIR    = $OPENAIR3_DIR" $green
-cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green
+test_command_install_package "gccxml" "gccxml" "--force-yes"
+test_command_install_package "vconfig" "vlan"
+test_command_install_package "iptables" "iptables"
+test_command_install_package "ip" "iproute"
+test_command_install_script   "ovs-vsctl" "$OPENAIRCN_DIR/SCRIPTS/install_openvswitch1.9.0.bash"
+test_command_install_script   "tunctl" "uml-utilities"
+if [ ! -d /usr/local/etc/freeDiameter ]
+    then
+        cd $OPENAIRCN_DIR/S6A/freediameter && ./install_freediameter.sh
+    else
+        echo_success "freediameter is installed"
+fi
+
+test_command_install_script   "asn1c" "$OPENAIRCN_DIR/SCRIPTS/install_asn1c_0.9.24.modified.bash"
+
+# One mor check about version of asn1c
+ASN1C_COMPILER_REQUIRED_VERSION_MESSAGE="ASN.1 Compiler, v0.9.24"
+ASN1C_COMPILER_VERSION_MESSAGE=`asn1c -h 2>&1 | grep -i ASN\.1\ Compiler`
+##ASN1C_COMPILER_VERSION_MESSAGE=`trim $ASN1C_COMPILER_VERSION_MESSAGE`
+if [ "$ASN1C_COMPILER_VERSION_MESSAGE" != "$ASN1C_COMPILER_REQUIRED_VERSION_MESSAGE" ]
+then
+    diff <(echo -n "$ASN1C_COMPILER_VERSION_MESSAGE") <(echo -n "$ASN1C_COMPILER_REQUIRED_VERSION_MESSAGE")
+    echo_error "Version of asn1c is not the required one, do you want to install the required one (overwrite installation) ? (Y/n)"
+    echo_error "$ASN1C_COMPILER_VERSION_MESSAGE"
+    while read -r -n 1 -s answer; do
+        if [[ $answer = [YyNn] ]]; then
+            [[ $answer = [Yy] ]] && $OPENAIRCN_DIR/SCRIPTS/install_asn1c_0.9.24.modified.bash
+            [[ $answer = [Nn] ]] && echo_error "Version of asn1c is not the required one, exiting." && exit 1
+            break
+        fi
+    done
+fi
+
+
+IPTABLES=`which iptables`
+
+cd $OPENAIRCN_DIR
+##################################
+# Get or set OBJ DIR and compile #
+##################################
+# TEST IF EXIST
+OBJ_DIR=`find . -maxdepth 1 -type d -iname obj*`
+if [ -n "$OBJ_DIR" ]
+then
+    OBJ_DIR=`basename $OBJ_DIR`
+    if [ ! -f $OBJ_DIR/Makefile ]
+    then
+        cd ./$OBJ_DIR
+        echo_success "Invoking configure"
+        rm -f Makefile
+        ../configure --enable-standalone-epc --disable-nas LDFLAGS=-L/usr/local/lib
+    else
+        cd ./$OBJ_DIR
+    fi
+else
+    OBJ_DIR="OBJS"
+    bash_exec "mkdir -m 777 ./$OBJ_DIR"
+    echo_success "Created $OBJ_DIR directory"
+    echo_success "Invoking autogen"
+    bash_exec "./autogen.sh"
+    cd ./$OBJ_DIR
+    echo_success "Invoking configure"
+    ../configure --enable-standalone-epc --disable-nas LDFLAGS=-L/usr/local/lib
+fi
+if [ -f Makefile ]
+then
+    echo_success "Compiling..."
+    bash_exec "make"
+else
+    echo_error "Configure failed, exiting"
+    exit 1
+fi
+cd $OPENAIRCN_DIR
+
 
-cat $OPENAIR3_DIR/OPENAIRMME/objs/Makefile | grep CFLAGS\ \=\  | grep DENABLE_USE_NETFILTER_FOR_SGI
+cat $OPENAIRCN_DIR/$OBJ_DIR/Makefile | grep CFLAGS\ \=\  | grep DENABLE_USE_NETFILTER_FOR_SGI
 if [ $? -ne 0 ]
 then
     export ENABLE_USE_NETFILTER_FOR_SGI=0
@@ -46,7 +108,7 @@ else
     export ENABLE_USE_NETFILTER_FOR_SGI=1
 fi
 
-cat $OPENAIR3_DIR/OPENAIRMME/objs/Makefile | grep CFLAGS\ \=\  | grep DENABLE_USE_RAW_FOR_SGI
+cat $OPENAIRCN_DIR/$OBJ_DIR/Makefile | grep CFLAGS\ \=\  | grep DENABLE_USE_RAW_FOR_SGI
 if [ $? -ne 0 ]
 then
     export ENABLE_USE_RAW_FOR_SGI=0
@@ -54,16 +116,34 @@ else
     export ENABLE_USE_RAW_FOR_SGI=1
 fi
 
-pkill oaisim_mme
-
+pkill oai_epc
 
+#######################################################
+# SOURCE $OPENAIRCN_DIR/UTILS/CONF/epc_$HOSTNAME.conf
+#######################################################
 rm -f /tmp/source.txt
-cat $OPENAIR3_DIR/OPENAIRMME/UTILS/CONF/epc_$HOSTNAME.conf | tr -d " " > /tmp/source.txt
-source /tmp/source.txt
+if [ -f $OPENAIRCN_DIR/UTILS/CONF/epc_$HOSTNAME.conf ]
+then
+    cat $OPENAIRCN_DIR/UTILS/CONF/epc_$HOSTNAME.conf | tr -d " " > /tmp/source.txt
+    source /tmp/source.txt
+else
+    echo_error "Missing config file $OPENAIRCN_DIR/UTILS/CONF/epc_$HOSTNAME.conf (Please write your own config file), exiting"
+    exit 1
+fi
 
+#######################################################
+# SOURCE $OPENAIRCN_DIR/UTILS/CONF/epc_$HOSTNAME.conf
+#######################################################
 rm -f /tmp/source.txt
-cat $OPENAIR3_DIR/OPENAIRMME/UTILS/CONF/enb_$HOSTNAME.conf | tr -d " " > /tmp/source.txt
-source /tmp/source.txt
+if [ -f $OPENAIRCN_DIR/UTILS/CONF/enb_$HOSTNAME.conf ]
+then
+    cat $OPENAIRCN_DIR/UTILS/CONF/enb_$HOSTNAME.conf | tr -d " " > /tmp/source.txt
+    source /tmp/source.txt
+else
+    echo_error "Missing config file $OPENAIRCN_DIR/UTILS/CONF/enb_$HOSTNAME.conf (Please write your own config file), exiting"
+    exit 1
+fi
+
 
 ping -c 1 hss.eur || { echo "hss.eur does not respond to ping" >&2 ; exit ; }
 ping -c 1 router.eur || { echo "router.eur does not respond to ping" >&2 ; exit ; }
@@ -105,6 +185,8 @@ echo "   Disabling reverse path filtering"
 bash_exec "sysctl -w net.ipv4.conf.all.rp_filter=0"
 assert "  `sysctl -n net.ipv4.conf.all.rp_filter` -eq 0" $LINENO
 
+echo_warning "LG FORCED EXIT"
+exit
 
 start_openswitch_daemon
 # REMINDER:
diff --git a/openair-cn/SCRIPTS/utils.bash b/openair-cn/SCRIPTS/utils.bash
index b84bc64d87e2ba3512171e80725c4fbc311aa735..536a04dd3db1987e15e34e0cac2562c3636ad1ae 100755
--- a/openair-cn/SCRIPTS/utils.bash
+++ b/openair-cn/SCRIPTS/utils.bash
@@ -38,6 +38,13 @@ trim ()
     echo "$1" | sed -n '1h;1!H;${;g;s/^[ \t]*//g;s/[ \t]*$//g;p;}'
 }
 
+trim2() 
+{
+    local var=$@
+    var="${var#"${var%%[![:space:]]*}"}"   # remove leading whitespace characters
+    var="${var%"${var##*[![:space:]]}"}"   # remove trailing whitespace characters
+    echo -n "$var"
+}
 
 cecho()   # Color-echo
 # arg1 = message
@@ -92,6 +99,30 @@ bash_exec() {
     fi
 }
 
+extract() {
+    if [ -f $1 ] ; then
+        case $1 in
+            *.tar.bz2)    tar xvjf $1        ;;
+            *.tar.gz)     tar xvzf $1        ;;
+            *.bz2)        bunzip2  $1        ;;
+            *.rar)        unrar    $1        ;;
+            *.gz)         gunzip   $1        ;;
+            *.tar)        tar xvf  $1        ;;
+            *.tbz2)       tar xvjf $1        ;;
+            *.tgz)        tar xvzf $1        ;;
+            *.zip)        unzip    $1        ;;
+            *.Z)          uncompress $1      ;;
+            *.7z)         7z x     $1        ;;
+            *)            echo_error "'$1' cannot be extracted via >extract<" ; return 1;;
+        esac
+    else
+        echo_error "'$1' is not a valid file"
+        return 1
+    fi
+    return 0
+}
+
+
 set_openair() {
     path=`pwd`
     declare -i length_path
@@ -113,6 +144,7 @@ set_openair() {
                export OPENAIR1_DIR=$openair_path/openair1
                export OPENAIR2_DIR=$openair_path/openair2
                export OPENAIR3_DIR=$openair_path/openair3
+               export OPENAIRCN_DIR=$openair_path/openair-cn
                export OPENAIR_TARGETS=$openair_path/targets
                return 0
            fi
@@ -172,9 +204,24 @@ assert() {
     fi
 }
 
-test_command_install() {
-  # usage: test_command_install searched_binary package_to_be_installed_if_binary_not_found
-  command -v $1 >/dev/null 2>&1 || { echo_warning "Program $1 is not installed. Trying installing it." >&2; apt-get install $2 -y; command -v $1 >/dev/null 2>&1 || { echo_error "Program $1 is not installed. Aborting." >&2; exit 1; };}
+test_command_install_package() {
+  # usage: test_command_install_package searched_binary package_to_be_installed_if_binary_not_found optional_option_to_apt_get_install
+  if [ $# -eq 2 ]; then
+      command -v $1 >/dev/null 2>&1 || { echo_warning "Program $1 is not installed. Trying installing it." >&2; apt-get install $2 -y; command -v $1 >/dev/null 2>&1 || { echo_error "Program $1 is not installed. Aborting." >&2; exit 1; };}
+  else
+      if [ $# -eq 3 ]; then
+          command -v $1 >/dev/null 2>&1 || { echo_warning "Program $1 is not installed. Trying installing it (apt-get install $3 $2)." >&2; apt-get install $3 $2 -y; command -v $1 >/dev/null 2>&1 || { echo_error "Program $1 is not installed. Aborting." >&2; exit 1; };}
+      else
+          echo_success "test_command_install_package: BAD PARAMETER"
+          exit 1
+      fi
+  fi
+  echo_success "$1 available"
+}
+
+test_command_install_script() {
+  # usage: test_command_install_script searched_binary script_to_be_invoked_if_binary_not_found
+  command -v $1 >/dev/null 2>&1 || { echo_warning "Program $1 is not installed. Trying installing it." >&2; bash $2; command -v $1 >/dev/null 2>&1 || { echo_error "Program $1 is not installed. Aborting." >&2; exit 1; };}
   echo_success "$1 available"
 }
 
@@ -261,6 +308,7 @@ declare -x OPENAIR_DIR=""
 declare -x OPENAIR1_DIR=""
 declare -x OPENAIR2_DIR=""
 declare -x OPENAIR3_DIR=""
+declare -x OPENAIRCN_DIR=""
 declare -x OPENAIR_TARGETS=""
 ###########################################################
 
@@ -269,4 +317,5 @@ cecho "OPENAIR_DIR     = $OPENAIR_DIR" $green
 cecho "OPENAIR1_DIR    = $OPENAIR1_DIR" $green
 cecho "OPENAIR2_DIR    = $OPENAIR2_DIR" $green
 cecho "OPENAIR3_DIR    = $OPENAIR3_DIR" $green
+cecho "OPENAIRCN_DIR   = $OPENAIRCN_DIR" $green
 cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green