build_m5g 14.6 KB
Newer Older
nikaeinn's avatar
nikaeinn committed
1
2
#!/bin/bash
################################################################################
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Licensed to the Mosaic5G under one or more contributor license
# agreements. See the NOTICE file distributed with this
# work for additional information regarding copyright ownership.
# The Mosaic5G licenses this file to You under the
# Apache License, Version 2.0  (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#  
#    	http://www.apache.org/licenses/LICENSE-2.0
  
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
# -------------------------------------------------------------------------------
#   For more information about the Mosaic5G:
#   	contact@mosaic-5g.io
nikaeinn's avatar
nikaeinn committed
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#
#
################################################################################
# file build_m5g
# brief  Mosaic5G.io automated build and install tool 
# author  Navid Nikaein

export DEBIAN_FRONTEND=noninteractive


###################################
# colorful echos
###################################

black='\E[30m'
red='\E[31m'
green='\E[32m'
yellow='\E[33m'
blue='\E[1;34m'
magenta='\E[35m'
cyan='\E[36m'
white='\E[37m'
reset_color='\E[00m'
COLORIZE=1

cecho()  {  
    # Color-echo
    # arg1 = message
    # arg2 = color
    local default_msg="No Message."
    message=${1:-$default_msg}
    color=${2:-$green}
    [ "$COLORIZE" = "1" ] && message="$color$message$reset_color"
    echo -e "$message"
    return
}

echo_error()   { cecho "$*" $red          ;}
echo_fatal()   { cecho "$*" $red; exit -1 ;}
echo_warning() { cecho "$*" $yellow       ;}
echo_success() { cecho "$*" $green        ;}
echo_info()    { cecho "$*" $blue         ;}


################################
# Set the vars 
################################
SUDO='sudo -E'
ORIGIN_PATH=$PWD
m5g_path=$(dirname $(readlink -f $0))
nikaeinn's avatar
nikaeinn committed
71
72
m5g_bin=$m5g_path/bin
mkdir -p $m5g_bin
nikaeinn's avatar
nikaeinn committed
73

nikaeinn's avatar
nikaeinn committed
74
rtc_path=$m5g_path/flexran
nikaeinn's avatar
nikaeinn committed
75
rtc_bin=$rtc_path/build/rt_controller
nikaeinn's avatar
nikaeinn committed
76
rtc_branch=develop-uplink
nikaeinn's avatar
nikaeinn committed
77

78
79
80
81
oai_ran_path=$m5g_path/oai-ran
oai_ran_build=$oai_ran_path/cmake_targets
oai_ran_bin=$oai_ran_path/targets/bin
oai_ran_branch=develop
82

83
oai_cn_path=$m5g_path/oai-cn
nikaeinn's avatar
nikaeinn committed
84
oai_cn_build=$oai_cn_path/scripts
85
86
87
oai_cn_exec=$oai_cn_path/build
oai_cn_exec_name=''
oai_cn_branch=openair-cn-llmec
nikaeinn's avatar
nikaeinn committed
88
89

jox_path=$m5g_path/jox
nikaeinn's avatar
nikaeinn committed
90
jox_exec=$jox_path/scripts
nikaeinn's avatar
nikaeinn committed
91
92
93
94
jox_exec_name=jox
jox_branch=develop


nikaeinn's avatar
nikaeinn committed
95
96
llmec_path=$m5g_path/ll-mec
llmec_branch=develop
nikaeinn's avatar
nikaeinn committed
97
llmec_bin=$llmec_path/ll-mec
nikaeinn's avatar
nikaeinn committed
98
99

store_path=$m5g_path/store
nikaeinn's avatar
nikaeinn committed
100
store_sdk=$m5g_path/store/sdk
101
store_branch=develop
nikaeinn's avatar
nikaeinn committed
102

nikaeinn's avatar
nikaeinn committed
103
echo_info "Mosaic5G Path:           $m5g_path"
nikaeinn's avatar
nikaeinn committed
104
105
106
107
echo_info "FlexRAN Path:            $rtc_path"
echo_info "LL-MEC Path:             $llmec_path"
echo_info "Jox Path:                $jox_path"
echo_info "Store Path:              $store_path"
108
109
echo_info "OAI oai_ran Path:        $oai_ran_path"
echo_info "OAI oai_cn Path:        $oai_cn_path"
nikaeinn's avatar
nikaeinn committed
110

nikaeinn's avatar
nikaeinn committed
111

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
os=$(grep "^ID=" /etc/os-release | sed "s/ID=//" | sed "s/\"//g")
os_release=$(grep "^VERSION_ID=" /etc/os-release | sed "s/VERSION_ID=//" | sed "s/\"//g")
os_dist=$os$os_release
echo_info "Detected OS Dist:        $os_dist"

case "$os" in
  fedora) os_base="fedora"; os_pm="dnf"; os_cmake="cmake" ;;
  rhel)   os_base="fedora"; os_pm="yum"; os_cmake="cmake3" ;;
  centos) os_base="fedora"; os_pm="yum"; os_cmake="cmake3" ;;
  debian) os_base="debian"; os_pm="apt-get"; os_cmake="cmake" ;;
  ubuntu) os_base="debian"; os_pm="apt-get"; os_cmake="cmake" ;;
esac

check_supported_os_dist() {
    case "$os_dist" in
        "ubuntu17.10") return 0 ;;
        "ubuntu17.04") return 0 ;;
        "ubuntu16.04") return 0 ;;
        "ubuntu14.04") return 0 ;;
        "fedora24")    return 0 ;;
        "rhel7")       return 0 ;;
        "centos7")     return 0 ;;
    esac
    return 1
}
nikaeinn's avatar
nikaeinn committed
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
pb_version=3

################################
# Function to killall the subprocesses when Ctrl-C Key is hit
###############################

function handle_ctrl_c(){
CURPID=$$
ppid=$$
arraycounter=1
echo_info "** Trapped CTRL-C. Killing all subprocesses now..."
while true
do
    FORLOOP=FALSE
    # Get all the child process id
    for i in `ps -ef| awk '$3 == '$ppid' { print $2 }'`
    do
        if [ $i -ne $CURPID ] ; then
            procid[$arraycounter]=$i
            arraycounter=`expr $arraycounter + 1`
            ppid=$i
            FORLOOP=TRUE
        fi
    done
    if [ "$FORLOOP" = "FALSE" ] ; then
        arraycounter=`expr $arraycounter - 1`
        ## We want to kill child process id first and then parent id's
        while [ $arraycounter -ne 0 ]
        do  
            echo "first we send ctrl-c to program"
            $SUDO kill -INT "${procid[$arraycounter]}"
            sleep 3
            echo "Now we force kill if that didn't work"
            $SUDO kill -9 "${procid[$arraycounter]}" >/dev/null
            arraycounter=`expr $arraycounter - 1`
        done
        exit
    fi
done
}

############################
# install additonal tools 
##########################

install_required_packages(){

184
185
186
187
    if ! check_supported_os_dist; then
        echo_error "Your distribution $os_dist is not supported by Mosaic5G !"
        exit 1
    fi
nikaeinn's avatar
nikaeinn committed
188
    
189
190
    $SUDO $os_pm  update -y
    $SUDO $os_pm install -y \
191
	  virt-what \
192
          snapcraft \
nikaeinn's avatar
nikaeinn committed
193
	  build-essential \
194
195
196
197
	  python-dev  \
	  python-pexpect \
	  python-pip  \
	  python-yaml \
198
	  libyaml-dev  \
nikaeinn's avatar
nikaeinn committed
199
200
201
202
203
204
205
206
	  python-tk    \
	  doxygen     \
	  nodejs-legacy \
	  npm \
	  curl 
    
    install_python_packages
    install_npm_packages
nikaeinn's avatar
nikaeinn committed
207
}
208

nikaeinn's avatar
nikaeinn committed
209
install_python_packages(){
210
211
212
213
214
215
216
217
218
219
    
    $SUDO pip install ipcalc
    $SUDO pip install matplotlib
    $SUDO pip install pyyaml
    $SUDO pip install tornado
    $SUDO pip install enum
    $SUDO pip install requests
    
}

nikaeinn's avatar
nikaeinn committed
220
221
222
223
install_npm_packages(){
    
    sudo npm install apidoc -g
}
nikaeinn's avatar
nikaeinn committed
224
install_optional_packages (){
225
226
    $SUDO $os_pm get update
    $SUDO $os_pm install -y \
nikaeinn's avatar
nikaeinn committed
227
228
229
230
231
232
233
	  check \
	  dialog \
	  gawk \
	  sshfs \
	  swig  \
	  tshark \
	  exuberant-ctags \
234
	  ntpdate \
nikaeinn's avatar
nikaeinn committed
235
236
237
	  tree \
	  htop \
	  python  \
238
	  vim \
nikaeinn's avatar
nikaeinn committed
239
240
241
242
243
244
245
246
247
248
	  emacs \
	  wireshark \
	  ccze \
	  iperf \
	  iperf3 \
	  mscgen \
	  gdb \
	  git \
	  ethtool \
	  meld \
249
250
251
252
	  hping3 \
	  jq  \
	  wget \
	  libyaml-dev \
nikaeinn's avatar
nikaeinn committed
253
254
255
256
257
258
	  iperf \
	  iproute \
	  iptables \
	  meld    \
	  gitk \
	  openssh-server 
259
	         
nikaeinn's avatar
nikaeinn committed
260
261
}

nikaeinn's avatar
nikaeinn committed
262
263


nikaeinn's avatar
nikaeinn committed
264
265
266
267
268
#######################################
# install and build mosaic5G.io platforms 
#######################################
build_rtc(){

nikaeinn's avatar
nikaeinn committed
269
    git submodule update flexran
270
271
272
    cd $rtc_path
    git checkout $rtc_branch
    echo_info "Cloned FlexRAN controller $rtc_branch branch"
nikaeinn's avatar
nikaeinn committed
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
    
    if [ "$kernel" == "generic" ]; then 
	build_args="$build_args -r"
    fi
   
    if [ -z $pb_version ] ; then
        build_args="$build_args -p $pb_version"
    fi

    if [ -z $bind_port ] ; then 
	exec_args="-p $bind_port"	
    fi 

    if [ -z $rest_port ] ; then
        exec_args="$exec_args -n $rest_port"
    fi
289
        
nikaeinn's avatar
nikaeinn committed
290
291
292
    export FLEXRAN_RTC_HOME=$rtc_path
    export FLEXRAN_RTC_EXEC=$rtc_exec
   
nikaeinn's avatar
nikaeinn committed
293
294
295
296
297
298
    ./tools/install_dependencies 
    ./build_flexran_rtc.sh $build_args

    cd $m5g_path
    cp $rtc_bin $m5g_bin
    echo_success "Built FlexRAN RTC branch $rtc_branch in $m5g_bin"
nikaeinn's avatar
nikaeinn committed
299
}
300
build_oai_ran(){
nikaeinn's avatar
nikaeinn committed
301

302
303
304
305
    git submodule update oai-ran 
    cd $oai_ran_path
    git checkout $oai_ran_branch
    cd $oai_ran_build
nikaeinn's avatar
nikaeinn committed
306
307
308
    ./build_oai -I  -w USRP
    ./build_oai -c -C --eNB  -w USRP 
    cd $m5g_path
309
310
    cp $oai_ran_bin $m5g_bin
    echo_success "Build OAI RAN $oai_ran_branch branch with FlexRAN agent in $oai_ran_bin"
nikaeinn's avatar
nikaeinn committed
311
312
}

313
build_oai_cn(){
nikaeinn's avatar
nikaeinn committed
314

315
316
317
    git submodule update oai-cn
    cd $oai_cn_path
    git checkout $oai_cn_branch
nikaeinn's avatar
nikaeinn committed
318
319
320
    cd $oai_cn_build
    ./build_hss -i -F -e
    ./build_hss 
nikaeinn's avatar
nikaeinn committed
321

nikaeinn's avatar
nikaeinn committed
322
323
324
325
326
327
    ./build_spgw -i -f
    ./build_spgw

    ./build_mme -i -f
    ./build_mme
    
nikaeinn's avatar
nikaeinn committed
328
    cd $m5g_path
329
    echo_success "Cloned OAI CN $oai_cn_branch branch with  ll-mec agent"
330
}
nikaeinn's avatar
nikaeinn committed
331
332
333

build_llmec(){

nikaeinn's avatar
nikaeinn committed
334
    git submodule update ll-mec
335
    cd $llmec_path
nikaeinn's avatar
nikaeinn committed
336
    git checkout $llmec_branch
nikaeinn's avatar
nikaeinn committed
337
338
339
340
341
    ./install_dependencies.sh
    ./build_ll-mec.sh -d 
    cd $m5g_path
    cp $llmec_bin $m5g_bin
    echo_success "Built LL-MEC $llmec_branch branch in $llmec_bin"
nikaeinn's avatar
nikaeinn committed
342
343
}

nikaeinn's avatar
nikaeinn committed
344
345
346
build_store(){

    git submodule update store 
347
    cd $store_path
nikaeinn's avatar
nikaeinn committed
348
    git checkout $store_branch
nikaeinn's avatar
nikaeinn committed
349
350
351
352
353
354
355
356
    cd $store_sdk
    mkdir -p docs
    doxygen
    apidoc -i lib/ -o ./docs/apidoc -f ".*\\.py$"
    echo_success "Generated the store $store_branch branch"

    cd $m5g_path
    echo_success "Cloned the store $store_branch branch"
nikaeinn's avatar
nikaeinn committed
357
}
358
359
360
361
362
363
364
365
build_jox(){

    git submodule update jox
    cd $jox_path
    git checkout $jox_branch
    source ./joxenv
    echo_info "./scripts/build_jox"
    cd -
nikaeinn's avatar
nikaeinn committed
366
    echo_success "Cloned JoX $jox_branch branch"
367
}
nikaeinn's avatar
nikaeinn committed
368

nikaeinn's avatar
nikaeinn committed
369
370
371
372
build_m5g (){
 
    build_rtc
    build_llmec
nikaeinn's avatar
nikaeinn committed
373
    build_store
374
    build_jox
375
376
    build_oai_ran
    build_oai_cn
nikaeinn's avatar
nikaeinn committed
377
378
379
380
381
382
}

snap_rtc(){
    echo ''
}

383
snap_oai_ran(){
nikaeinn's avatar
nikaeinn committed
384
385
    echo ''
}
386
snap_oai_cn(){
nikaeinn's avatar
nikaeinn committed
387
388
389
390
391
392
393
394
395
396
    echo ''
}
snap_llmec(){
    echo ''
}

    
snap_m5g (){
 
    snap_rtc
397
398
    snap_oai_ran
    snap_oai_cn
nikaeinn's avatar
nikaeinn committed
399
400
401
402
403
404
405
406
407
408
    snap_llmec
}

init_snap_m5g(){
    echo ''
    
}

init_build_m5g(){

nikaeinn's avatar
nikaeinn committed
409
    if [ ! -f  ./submodule_init ]; then
nikaeinn's avatar
nikaeinn committed
410
	git submodule init
nikaeinn's avatar
nikaeinn committed
411
	echo "yes"  > ./.submodule_init
nikaeinn's avatar
nikaeinn committed
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
    fi 
}

############################
# Clean all
###########################

clean_all(){
    echo_info "cleaning "
}

############################
# manage options and helps
###########################
function print_help() {
  echo_info '
428
This program installs the Mosaic5G.io software platforms from snaps
nikaeinn's avatar
nikaeinn committed
429
430
431
432
433
or build a custom platform from the source file. 
You should have ubuntu 16.xx. Root password required.
Options
-h
   print this help
nikaeinn's avatar
nikaeinn committed
434
435
--clean-snaps
   Clean all the snaps"
nikaeinn's avatar
nikaeinn committed
436
437
438
439
440
441
--clean-all
   Clean all files to make a rebuild from start"
--install-kernel
   install the required kernel
-i | --install-required-pkg
   install required packages for build and/or snap process
nikaeinn's avatar
nikaeinn committed
442
443
-I | --install-all-packages
   Install both required and developper/optional/useful pachages 
444
445
446
447
-c | --build-oai-cn
   Builds OAI CN with the LL-MEC agent from source
-C | --snap-oai-cn
   install OAI CN with the LL-MEC agent from snap
nikaeinn's avatar
nikaeinn committed
448
449
450
451
452
453
454
455
456
457
458
-m | --build-m5g
   Builds all the Mosaic5G.io software plarforms from source 
-M | --snap-m5g
   Install all of the Mosaic5G.io platforms form snap
-j | --build-jox
   Builds JOX Orchestrator
-l | --build-llmec
   Builds lowlatency MEC platform from source
-L | --snap-llmec
   Install lowlatency MEC platform from snap
-f | --build-flexran
nikaeinn's avatar
nikaeinn committed
459
   Build FlexRAN realtime controller from source 
nikaeinn's avatar
nikaeinn committed
460
461
-F | --snap-flexran
   Install FlexRAN realtime controller from snap 
462
463
464
465
-r | --build-oai-ran
   Builds OAI RAN with the FlexRAN agent from source
-R | --snap-oai-ran
   install OAI RAN with the FlexRAN agent from snap
nikaeinn's avatar
nikaeinn committed
466
467
-s | --build-store
   Builds ans setup the store 
nikaeinn's avatar
nikaeinn committed
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
-p | --pb-version
   Set the protobuf version for FlexRAN RTC. Valid options 2 and 3.
Usage:
- build_m5g -i -m : insatll all the sanps and run 
- build_m5g -i -j
'
}


function main() {
    until [ -z "$1" ]; do
	
	case "$1" in
	    --clean-snaps)
		CLEAN_SNAPS=1
		shift;;
	    -k | --install-kernel)
		INSTALL_KERNEL=1
		echo_info "Will install the kernel"
		shift;;
	    -i | --install-required-pkg)
		INSTALL_PKG=1
		echo_info "Will install the required packages for build and snap process"
		shift;;
nikaeinn's avatar
nikaeinn committed
492
493
494
495
	    -I | --install-optional-packages)
		INSTALL_OPTIONAL=1
		echo_info "Will install optional packages"
		shift;;
nikaeinn's avatar
nikaeinn committed
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
	    -m | --build-m5g)
		BUILD_M5G=1
		echo_info "Will build mosaic5G.io platforms from source"
		shift;;
	    -M | --snap-m5g)
		SNAP_M5G=1
		echo_info "Will install mosaic5G.io platforms from snap"
		shift;;
	    -j | --build-jox)
		BUILD_JOX=1
		echo_info "Will build the environment for JOX"
		shift;;
	    -l | --build-llmec)
		BUILD_LLMEC=1
		echo_info "Will build ll-mec from source"
		shift;;
	    -L | --snap-llmec)
		SNAP_LLMEC=1
		echo_info "Will install ll-mec from snap"
		shift;;
	    -f | --build-flexran)
		BUILD_RTC=1
		echo_info "Will build FlexRAN Realtime Controller (RTC) from source"
		shift;;
	    -F | --snap-flexran)
		SNAP_RTC=1
		echo_info "Will install FlexRAN Realtime Controller (RTC) from snap"
		shift;;
524
525
526
	    -r | --build-oai-ran)
		BUILD_OAI_RAN=1
		echo_info "Will buildOAI RAN with the FlexRAN Agent from source"
nikaeinn's avatar
nikaeinn committed
527
		shift;;
528
529
530
	    -R | --snap-oai-ran)
		SNAP_OAI_RAN=1
		echo_info "Will install OAI CN with the FlexRAN Agent from snap"
nikaeinn's avatar
nikaeinn committed
531
		shift;;
nikaeinn's avatar
nikaeinn committed
532
533
534
535
	    -s | --build-store)
		BUILD_STORE=1
		echo_info "Will build Mosaic5G store" 
		shift;;
536
537
538
	    -c | --build-oai-cn)
		BUILD_OAI_CN=1
		echo_info "Will build OAI CN with the LL-MEC Agent from source"
nikaeinn's avatar
nikaeinn committed
539
		shift;;
540
541
542
	    -C | --snap-oai-cn)
		SNAP_OAI_CN=1
		echo_info "Will install OAI CN with the LL-MEC Agent from snap"
nikaeinn's avatar
nikaeinn committed
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
		shift;;
	    -p | --protobuf-version)
		echo "setting protobuf version to $2" 
		pb_version=$2
		shift 2;;
	    -h | --help)
		print_help
		exit 1;;
	    *)
		print_help
		if [ "$1" != "-h" -o "$1" != "--help" -o "$1" != "-help" ]; then 
		    echo_fatal "Unknown option $1"
		fi 
		break;;
	esac
    done
    
    if [ "$CLEAN_SNAPS" = "1" ] ; then
	clean_snaps
	echo_info "Remove all the previously installed snaps"
    fi
    
    if [ "$INSTALL_PKG" = "1" ] ; then
	install_required_packages
nikaeinn's avatar
nikaeinn committed
567
	echo_info "Installed the required packages"
nikaeinn's avatar
nikaeinn committed
568
    fi
nikaeinn's avatar
nikaeinn committed
569
570
571
572
573
574
575

    if [ "$INSTALL_OPTIONAL" = "1" ] ; then
	echo_info "Installing optional packages"
	install_optional_packages
	echo_info "Installed the optional packages"
    fi

nikaeinn's avatar
nikaeinn committed
576
577
578
579
580
581
582
583
584
585
586
    
    if [ "$BUILD_M5G" = "1" ] ; then
	echo_info "Build Customized MOSAIC5G.io Sotware Platforms"
	init_build_m5g
	build_m5g
    else
	init_build_m5g
	if [ "$BUILD_RTC" = "1" ] ; then
	    echo_info "Building FlexRAN realtime controller"
            build_rtc
	fi
587
588
589
	if [ "$BUILD_OAI_RAN" = "1" ] ; then
	    echo_info "Building OAI RAN with the FlexRAN Agent"
            build_oai_ran
nikaeinn's avatar
nikaeinn committed
590
	fi
591
592
593
	if [ "$BUILD_OAI_CN" = "1" ] ; then
	    echo_info "Building OAI CN with the LL-MEC Agent"
            build_oai_cn
594
	fi
nikaeinn's avatar
nikaeinn committed
595
596
597
598
599
	if [ "$BUILD_LLMEC" = "1" ] ; then
	    echo_info "Building lowlatency MEC platforms"
            build_llmec
	fi
	if [ "$BUILD_JOX" = "1" ] ; then
nikaeinn's avatar
nikaeinn committed
600
	    echo_info "Building JOX orchestrator"
nikaeinn's avatar
nikaeinn committed
601
602
            build_jox
	fi
nikaeinn's avatar
nikaeinn committed
603
604
605
606
	if [ "$BUILD_STORE" = "1" ] ; then
	    echo_info "Building Store"
            build_store
	fi
nikaeinn's avatar
nikaeinn committed
607
608
609
610
611
612
613
614
615
616
    fi
    
    if [ "$SNAP_M5G" = "1" ] ; then
	echo_info "Snap MOSAIC5G.io Sotware Platforms"
	init_snap_m5g
	snap_m5g
    else
	init_snap_m5g
	if [ "$SNAP_RTC" = "1" ] ; then
	    echo_info "Snap FlexRAN realtime controller"
617
        snap_rtc
nikaeinn's avatar
nikaeinn committed
618
	fi
619
620
621
	if [ "$SNAP_OAI_RAN" = "1" ] ; then
	    echo_info "Snap OAI RAN with the FlexRAN Agent"
        snap_oai_ran
nikaeinn's avatar
nikaeinn committed
622
	fi
623
624
625
	if [ "$SNAP_OAI_CN" = "1" ] ; then
	    echo_info "Snap OAI CN with the LL-MEC Agent"
            snap_oai_cn
nikaeinn's avatar
nikaeinn committed
626
627
628
629
630
631
632
633
634
635
636
	fi
	if [ "$SNAP_LLMEC" = "1" ] ; then
	    echo_info "Snap lowlatency MEC platforms"
            snap_llmec
	fi
    fi
    
    
}

main "$@"