diff --git a/ci-scripts/conf_files/episci/proxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf b/ci-scripts/conf_files/episci/proxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf
index 50dba38a511599987b99677c91eea083d3b870cc..20b0d3caf7f92b67e61a9f4c97519b493486ffa7 100644
--- a/ci-scripts/conf_files/episci/proxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf
+++ b/ci-scripts/conf_files/episci/proxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf
@@ -11,7 +11,7 @@ gNBs =
 
     // Tracking area code, 0x0000 and 0xfffe are reserved values
     tracking_area_code  =  1;
-    plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
+    plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0xffffff }) });
 
     nr_cellid = 12345678L;
 
diff --git a/ci-scripts/conf_files/gNB_SA_CU.conf b/ci-scripts/conf_files/gNB_SA_CU.conf
index 664af9d65eae102711e67b4342a91af53ab41344..81635f7eb203bea1eca8f6292eb1a3d369df3997 100644
--- a/ci-scripts/conf_files/gNB_SA_CU.conf
+++ b/ci-scripts/conf_files/gNB_SA_CU.conf
@@ -15,7 +15,7 @@ gNBs =
 
     // Tracking area code, 0x0000 and 0xfffe are reserved values
     tracking_area_code  =  1;
-    plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
+    plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0xffffff }) });
 
 
     nr_cellid = 12345678L;
diff --git a/ci-scripts/conf_files/gNB_SA_DU.conf b/ci-scripts/conf_files/gNB_SA_DU.conf
index 50a3468340056dd899b38a75a2f18bc34134e997..2a2524cb8779bd3de3ce70240c47f6289788a246 100644
--- a/ci-scripts/conf_files/gNB_SA_DU.conf
+++ b/ci-scripts/conf_files/gNB_SA_DU.conf
@@ -14,7 +14,7 @@ gNBs =
 
     // Tracking area code, 0x0000 and 0xfffe are reserved values
     tracking_area_code  =  1;
-    plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }) });
+    plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0xffffff }) });
 
 
     nr_cellid = 12345678L;
diff --git a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
index 9f83c3f654ebb7aa50d3e3a02da948c86e76da93..53adb4eae14d9d143c55e8f70eaf00b85fd412b0 100644
--- a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
+++ b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
@@ -15,7 +15,7 @@ gNBs =
     // Tracking area code, 0x0000 and 0xfffe are reserved values
     tracking_area_code  =  1;
 
-    plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst = 1 }) });
+    plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0xffffff }) });
 
     nr_cellid = 12345678L
 
diff --git a/ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf b/ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
index 787701fc9c3eab813cfced3234891e3cbcf1a5ca..d45f9bfd622dc07b86874de3ae638154b06da153 100644
--- a/ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
+++ b/ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
@@ -11,7 +11,7 @@ gNBs =
 
     // Tracking area code, 0x0000 and 0xfffe are reserved values
     tracking_area_code  =  1;
-    plmn_list = ({ mcc = 208; mnc = 95; mnc_length = 2; snssaiList = ({ sst = 1 }) });
+    plmn_list = ({ mcc = 208; mnc = 95; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0xffffff }) });
 
     nr_cellid = 12345678L;
 
diff --git a/ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf b/ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf
index 3ec265f12c082df474062ba6b9a710b3c10e4cb4..b82944805a12d714552a5295dbf3bcde9df86e75 100644
--- a/ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf
+++ b/ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf
@@ -11,7 +11,7 @@ gNBs =
 
     // Tracking area code, 0x0000 and 0xfffe are reserved values
     tracking_area_code  =  1;
-    plmn_list = ({ mcc = 222; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; }) });
+    plmn_list = ({ mcc = 222; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0xffffff }) });
 
     nr_cellid = 12345678L;
 
diff --git a/ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml b/ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml
index 183d184977a2cfa7a61659cbbfc6f288976b150e..107ec626e281e23bd842d721117aed05b748fd03 100644
--- a/ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml
+++ b/ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml
@@ -248,6 +248,7 @@ services:
             GNB_NGA_IP_ADDRESS: 192.168.71.140
             GNB_NGU_IF_NAME: eth0
             GNB_NGU_IP_ADDRESS: 192.168.71.140
+            SDR_ADDRS: serial=XXXXXXX
             USE_ADDITIONAL_OPTIONS: --sa -E --rfsim --log_config.global_log_options level,nocolor,time
         depends_on:
             - oai-ext-dn
diff --git a/docker/scripts/generateTemplate.py b/docker/scripts/generateTemplate.py
index b79d25f8f3d2280cf78d6028e5751dc69a2b5aee..1d5dbb5cb5369b9fb6645688cfd8815e1af3e583 100644
--- a/docker/scripts/generateTemplate.py
+++ b/docker/scripts/generateTemplate.py
@@ -90,7 +90,7 @@ def main():
               if templine.find(key["key"]) >= 0:
                 if re.search(r'preference', templine): # false positive
                   continue
-                if re.search(r'sdr_addrs', templine): # false positive
+                if key["key"] != 'sdr_addrs' and re.search(r'sdr_addrs', templine): # false positive
                   continue
                 elif re.search('downlink_frequency', line):
                   templine = re.sub(r'[0-9]+', key["env"], line)
@@ -106,7 +106,10 @@ def main():
                                     r'\1' + key["env"] + r"\2", templine)
                 # next: matches key = NUMBER
                 elif re.search(key["key"] + "\s*=\s*[x0-9]+", templine): # x for "0x" hex start
-                  templine = re.sub("(" + key["key"] + "\s*=\s*(?:0x)?)[x0-9]+", r"\1" + key["env"], templine)
+                  templine = re.sub("(" + key["key"] + "\s*=\s*(?:0x)?)[x0-9a-fA-F]+", r"\1" + key["env"], templine)
+                # next: special case for sdr_addrs
+                elif key["key"] == 'sdr_addrs' and re.search(key["key"] + "\s*=\s*", templine):
+                  templine = re.sub("(" + key["key"] + "\s*=\s*.*$)", key["key"] + " = \"" + key["env"] + "\"", templine)
             outputfile.write(templine)
 
 if __name__ == "__main__":
diff --git a/docker/scripts/gnb_entrypoint.sh b/docker/scripts/gnb_entrypoint.sh
index 4e8983599e26e6eb21db247e0d6a0de17ff86f7a..f1d6bd833337c1d1bc024ccb0944ddfc018a29f8 100755
--- a/docker/scripts/gnb_entrypoint.sh
+++ b/docker/scripts/gnb_entrypoint.sh
@@ -18,8 +18,13 @@ if [[ -v USE_SA_NFAPI_VNF ]]; then cp $PREFIX/etc/gnb.sa.nfapi.vnf.conf $PREFIX/
 # Sometimes, the templates are not enough. We mount a conf file on $PREFIX/etc. It can be a template itself.
 if [[ -v USE_VOLUMED_CONF ]]; then cp $PREFIX/etc/mounted.conf $PREFIX/etc/gnb.conf; fi
 
-# Resolve AMF FQDN
+# Defualt Parameters
+GNB_ID=${GNB_ID:-e00}
+NSSAI_SD=${NSSAI_SD:-ffffff}
+USE_FQDN=${USE_FQDN:-false}
 AMF_FQDN=${AMF_FQDN:-oai-amf-svc}
+
+# Resolve AMF FQDN
 if ($USE_FQDN); then AMF_IP_ADDRESS=(`getent hosts $AMF_FQDN | awk '{print $1}'`); fi
 
 # Only this template will be manipulated
diff --git a/docker/scripts/gnb_parameters.yaml b/docker/scripts/gnb_parameters.yaml
index a7539daa69f1b345af0a4057454fa8ac8eee6d2d..524c6fbb4230e9f9701330b2c5294b17893cedbb 100644
--- a/docker/scripts/gnb_parameters.yaml
+++ b/docker/scripts/gnb_parameters.yaml
@@ -28,6 +28,8 @@
   - filePrefix: gnb.band78.tm1.fr1.106PRB.usrpb210.conf
     outputfilename: "gnb.nsa.tdd.conf"
     config:
+    - key: gNB_ID
+      env: "@GNB_ID@" 
     - key: Active_gNBs
       env: "@GNB_NAME@"
     - key: gNB_name
@@ -72,6 +74,8 @@
   - filePrefix: gnb.band78.sa.fr1.106PRB.usrpn310.conf
     outputfilename: "gnb.sa.tdd.conf"
     config:
+    - key: gNB_ID
+      env: "@GNB_ID@" 
     - key: Active_gNBs
       env: "@GNB_NAME@"
     - key: gNB_name
@@ -88,6 +92,8 @@
       env: "@NSSAI_SST@"
     - key: sd
       env: "@NSSAI_SD@"
+    - key: tracking_area_code
+      env: "@TAC@"
     - key: ipv4
       env: "@AMF_IP_ADDRESS@"
     - key: GNB_INTERFACE_NAME_FOR_NG_AMF
@@ -98,12 +104,16 @@
       env: "@GNB_NGU_IF_NAME@"
     - key: GNB_IPV4_ADDRESS_FOR_NGU
       env: "@GNB_NGU_IP_ADDRESS@"
+    - key: sdr_addrs
+      env: "@SDR_ADDRS@"
     - key: parallel_config
       env: "@THREAD_PARALLEL_CONFIG@"
 
   - filePrefix: gnb.sa.band78.fr1.106PRB.usrpb210.conf
     outputfilename: "gnb.sa.tdd.b2xx.conf"
     config:
+    - key: gNB_ID
+      env: "@GNB_ID@" 
     - key: Active_gNBs
       env: "@GNB_NAME@"
     - key: gNB_name
@@ -118,6 +128,10 @@
       env: "@TAC@"
     - key: sst
       env: "@NSSAI_SST@"
+    - key: sd
+      env: "@NSSAI_SD@"
+    - key: tracking_area_code
+      env: "@TAC@"
     - key: ipv4
       env: "@AMF_IP_ADDRESS@"
     - key: GNB_INTERFACE_NAME_FOR_NG_AMF
@@ -134,6 +148,8 @@
   - filePrefix: gnb.sa.band66.fr1.106PRB.usrpn300.conf
     outputfilename: "gnb.sa.fdd.conf"
     config:
+    - key: gNB_ID
+      env: "@GNB_ID@" 
     - key: Active_gNBs
       env: "@GNB_NAME@"
     - key: gNB_name
@@ -150,6 +166,8 @@
       env: "@NSSAI_SST@"
     - key: sd
       env: "@NSSAI_SD@"
+    - key: tracking_area_code
+      env: "@TAC@"
     - key: ipv4
       env: "@AMF_IP_ADDRESS@"
     - key: GNB_INTERFACE_NAME_FOR_NG_AMF
@@ -166,6 +184,8 @@
   - filePrefix: gNB_SA_CU.conf
     outputfilename: "gnb.sa.cu.conf"
     config:
+    - key: gNB_ID
+      env: "@GNB_ID@" 
     - key: Active_gNBs
       env: "@GNB_NAME@"
     - key: gNB_name
@@ -182,6 +202,8 @@
       env: "@NSSAI_SST@"
     - key: sd
       env: "@NSSAI_SD@"
+    - key: tracking_area_code
+      env: "@TAC@"
     - key: ipv4
       env: "@AMF_IP_ADDRESS@"
     - key: GNB_INTERFACE_NAME_FOR_NG_AMF
@@ -206,6 +228,8 @@
   - filePrefix: gNB_SA_DU.conf
     outputfilename: "gnb.sa.du.tdd.conf"
     config:
+    - key: gNB_ID
+      env: "@GNB_ID@" 
     - key: Active_gNBs
       env: "@GNB_NAME@"
     - key: gNB_name
@@ -222,6 +246,8 @@
       env: "@NSSAI_SST@"
     - key: sd
       env: "@NSSAI_SD@"
+    - key: tracking_area_code
+      env: "@TAC@"
     - key: ipv4
       env: "@AMF_IP_ADDRESS@"
     - key: GNB_INTERFACE_NAME_FOR_NG_AMF
@@ -248,6 +274,8 @@
   - filePrefix: proxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf
     outputfilename: "gnb.sa.nfapi.vnf.conf"
     config:
+    - key: gNB_ID
+      env: "@GNB_ID@" 
     - key: Active_gNBs
       env: "@GNB_NAME@"
     - key: gNB_name
@@ -264,6 +292,8 @@
       env: "@NSSAI_SST@"
     - key: sd
       env: "@NSSAI_SD@"
+    - key: tracking_area_code
+      env: "@TAC@"
     - key: ipv4
       env: "@AMF_IP_ADDRESS@"
     - key: GNB_INTERFACE_NAME_FOR_NG_AMF