From e2417efa29f0d317a3ed1044ee20cc14df32e1d3 Mon Sep 17 00:00:00 2001 From: HariomGupta Date: Wed, 1 Jun 2022 15:27:05 +0530 Subject: [PATCH] 3gpp yang model pruning and installation IssueID: ODUHIGH-454 Signed-off-by: HariomGupta Change-Id: Id705b826ef4407438b71987599f3a74e14ca9748 --- build/scripts/load_yang.sh | 130 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 108 insertions(+), 22 deletions(-) diff --git a/build/scripts/load_yang.sh b/build/scripts/load_yang.sh index 03b999f12..b5b660823 100755 --- a/build/scripts/load_yang.sh +++ b/build/scripts/load_yang.sh @@ -1,3 +1,4 @@ +#!/bin/bash ################################################################################ # Copyright (c) [2020-2021] [HCL Technologies Ltd.] # # # @@ -14,37 +15,122 @@ # limitations under the License. # ################################################################################ # This script is used to install yang module and load initial configuration -#!/bin/bash - +#initialize globle variables CURRENT_DIR=$PWD ROOT_DIR=$CURRENT_DIR/../../ +CONFIG_PATH=$ROOT_DIR/bin/odu/config/ +YANG_PATH_3GPP="https://forge.3gpp.org/rep/sa5/MnS/-/raw/0032d2835382c47bc402c077b40ef71d77c9a3c9/yang-models" + +#list of 3gpp yang models +declare -a YANG_MODEL_3GPP=( "_3gpp-common-yang-types.yang" + "_3gpp-common-top.yang" + "_3gpp-common-measurements.yang" + "_3gpp-common-trace.yang" + "_3gpp-common-managed-function.yang" + "_3gpp-common-subscription-control.yang" + "_3gpp-common-fm.yang" + "_3gpp-common-managed-element.yang" + "_3gpp-5g-common-yang-types.yang" + "_3gpp-nr-nrm-rrmpolicy.yang" + "_3gpp-nr-nrm-gnbdufunction.yang" + "_3gpp-nr-nrm-nrcelldu.yang") + + +#list of ORAN yang models +declare -a YANG_MODEL_ORAN=( "o-ran-sc-odu-alarm-v1.yang" + "o-ran-sc-du-hello-world.yang" + "o-ran-sc-odu-interface-v1.yang") + + +#list of config files +declare -a CONFIGURATION_ARRAY=( "startup_config.xml" + "nacm_config.xml" + "netconf_server_ipv6.xml") + +#list of modules corresponding to the above config files +declare -a MODULE_ARRAY=( "o-ran-sc-odu-interface-v1" + "ietf-netconf-acm" + "ietf-netconf-server") + -if [ -d "$ROOT_DIR/bin/odu/config" ] -then - CONFIG_PATH=$ROOT_DIR/bin/odu/config/ - echo "CONFIG_PATH = $CONFIG_PATH" -else - CONFIG_PATH=$ROOT_DIR/build/config/ - echo "CONFIG_PATH = $CONFIG_PATH" -fi - echo "CONFIG_PATH = $CONFIG_PATH" +#check 3GPP yang module if not available then downalod and update +check3gppYang() +{ + #check 3GPP yang modules available + for yang in "${YANG_MODEL_3GPP[@]}" + do -#load yand models -echo "### loading yang model ###" -sysrepoctl -i $ROOT_DIR/build/yang/o-ran-sc-odu-alarm-v1.yang -sysrepoctl -i $ROOT_DIR/build/yang/o-ran-sc-du-hello-world.yang -sysrepoctl -i $ROOT_DIR/build/yang/o-ran-sc-odu-interface-v1.yang + if [ ! -f "$ROOT_DIR/build/yang/$yang" ] + then + wget $YANG_PATH_3GPP/$yang -P $ROOT_DIR/build/yang + fi -echo "### loading yang model Done###" + done +} + +#3GPP yang modules having some warning so fix it. +updateYang() +{ + sed -i -e "s/'\.\/tj/'\.\.\/tj/g" $ROOT_DIR/build/yang/_3gpp-common-trace.yang + sed -i -e "s/\ \.\/tj/\ \.\.\/tj/g" $ROOT_DIR/build/yang/_3gpp-common-trace.yang + sed -i -e 's/"IMMEDIATE_MDT"/"IMMEDIATE_MDT_ONLY"/g' $ROOT_DIR/build/yang/_3gpp-common-trace.yang + sed -i -e 's/"TRACE"/"TRACE_ONLY"/g' $ROOT_DIR/build/yang/_3gpp-common-trace.yang + + echo "updateYang done" +} + + +#initialize the variable +init() +{ + if [ -d "$ROOT_DIR/bin/odu/config" ] + then + CONFIG_PATH=$ROOT_DIR/bin/odu/config/ + echo "CONFIG_PATH = $CONFIG_PATH" + else + CONFIG_PATH=$ROOT_DIR/build/config/ + echo "CONFIG_PATH = $CONFIG_PATH" + fi + echo "CONFIG_PATH = $CONFIG_PATH" + +} + +#install 3GPP and ORAN yang modules +installYang() +{ + echo "### install yang modules ###" + #install 3GPP yang modules + for yang in "${YANG_MODEL_3GPP[@]}" + do + sysrepoctl -i $ROOT_DIR/build/yang/$yang + done + + #install ORAN yang modules + for yang in "${YANG_MODEL_ORAN[@]}" + do + sysrepoctl -i $ROOT_DIR/build/yang/$yang + done +} #load initial configuration -echo "### loading initial configuration ###" +loadConfig() +{ + echo "### load initial configuration ###" + + for ((i=0;i<${#CONFIGURATION_ARRAY[@]};i++)) + do + sysrepocfg --import=$CONFIG_PATH/${CONFIGURATION_ARRAY[$i]} -v 3 --datastore running --module ${MODULE_ARRAY[$i]} + done + + echo "### load initial configuration done ###" +} -sysrepocfg --import=$CONFIG_PATH/startup_config.xml -v 3 --datastore running --module o-ran-sc-odu-interface-v1 -sysrepocfg --import=$CONFIG_PATH/nacm_config.xml -v 3 --datastore running --module ietf-netconf-acm -sysrepocfg --import=$CONFIG_PATH/netconf_server_ipv6.xml -v 3 --datastore running --module ietf-netconf-server -echo "### loading initial configuration done ###" +init +check3gppYang +updateYang +installYang +loadConfig ################################################################################ # End of file # -- 2.16.6