diff --git a/.gitmodules b/.gitmodules
index 63f61a9dc25c881d6cc969e502bcdd420a56e98b..5f8583ea89749164483442dac5d0c46da6755dbb 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -34,3 +34,6 @@
 [submodule "component/oai-upf"]
 	path = component/oai-upf
 	url = https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-upf.git
+[submodule "component/oai-lmf"]
+	path = component/oai-lmf
+	url = https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-lmf.git
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 08251950636f59a7c505caf3ba8c355d0bae4982..6d9f7e93db64bb4c78023b2a8ba1faf8bbe22df9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,154 @@
 # RELEASE NOTES: #
 
+## v2.1.0 -- August 2024 ##
+
+* 1 new Network Funtion:
+  * LMF
+* Testing
+  * Using a Robot Framework based test pipeline now
+* Tutorials:
+  - Remove ipv4 addresses from basic tutorial
+  - Use correct SD values on DB, slicing and for VPP UPF
+* Tech Debt for all Network Functions
+  - Stopping support for RHEL8/Rocky8 in favor of RHEL9/Rocky9
+  - HTTP client cpr library refactoring effort
+  - Move SBI models to common src git submodule
+* `AMF` changes:
+  * Features
+    - Adding NRPPA protocol support
+    - Support Non UE N2 Info message
+    - Support Multiple PDU sessions service request
+    - Adding gNB statistics
+    - Adding NGAP Utils
+    - Adding LTTNg tracepoints for logging
+    - Using hexadecimal values for SD in all APIs
+    - Updating UE info statistics on AMF after service request
+    - Exposing NCGI in UE Location Report notification
+    - Use HTTP Request Timeout from conf file
+  * Fixes
+    - Fix issue for JSON iterator comparison
+    - Fix multiple sessions response handling
+    - Fix NF registration/deregistration when discovering NRFs from NSSF
+    - Fix PDU session resource context request null pointer
+    - Fix issue for retrieving GUTI from 5G-S-TMSI
+    - Fix HTTP/2 server shutdown
+    - Fix shutdown threads procedure
+    - Fix UE Context Release procedure
+    - Fix buffer-overflow issue
+    - Fix AMF UE NGAP ID (uint64_t, 40 bits)
+    - Fix Nas buffer allocation length
+    - Fix issue for N2 handover
+    - Fix GUTI decode
+    - Fix NAS Decode: check buffer length before decoding
+    - Fix issue for mobility registration update procedure
+    - Fix HTTP client by using SBI task to send HTTP request
+  * Tech Debt
+    - Cleanup common utils
+    - Move NAS to common src git submodule
+    - Move NGAP to common src git submodule
+    - Move conversions from AMF to common src git submodule
+    - Separate all in one implementation
+* `AUSF` changes:
+  * Features
+    - Add connection handling mechanism
+    - Use HTTP Request Timeout parameter from Conf file
+  * Fixes
+    - Fix HTTP/2 server shutdown
+    - Fix of the shutdown for the task manager
+    - Fix issue for SD
+  * Tech Debt
+    - Remove NRF dependency from AUSF
+    - Code refactor cleanup
+    - Removing unneccessary packages from target images
+    - Cleanup AUSF client
+* `NRF` changes:
+  * Features
+    - Adding debug info
+  * Fixes
+    - Fix for Boost::signals2 issue
+    - Fix exception handling
+    - Fix HTTP/2 server shutdown
+  * Tech Debt
+    - Removing unneccessary packages from target images
+* `NSSF` changes:
+  * Fixes
+    - Fix HTTP/2 server shutdown
+* `PCF` changes:
+  * Features
+    - Add possibility to read QoS values from file
+  * Fixes
+    - Fix HTTP/2 server shutdown
+    - Use new FlowDirection fix
+  * Tech Debt
+    - Resynch PCF with common source git-submodule and use utils from there
+* `SMF` changes:
+  * Features
+    - Use HTTP Request Timeout parameter from Conf file
+    - Support advanced `UpfInfo` from config file, allows to configure different UPF flavors without NRF
+    - Resolve UPF from config file 10 times every 2 seconds, allowing flexibility in start order
+  * Fixes
+    - Fix multiple PDU session SEID handling
+    - Fix issue for PDU session establishment
+    - Fix: properly ending any thread and not generating seg fault when stopping smf process
+    - Fix N1/N2 handling between AMF and SMF when gNB exits
+    - Fix(handover): Check if N2 SM Info is set in HO Complete
+    - Fix: smf expecting CreatedPDR in n4_session_establishment_response when UPF that does not support TEID Creation
+    - Fix: NGAP S-AMBR encoding from bitrate string
+    - Fix: Allow lower-case SD values and also allow 0xSD values in config
+    - Fix HTTP/2 server shutdown
+    - Fix error message upon PFCP session establishment request
+    - Fix SMF crash on startup when peer UPF is not reachable
+  * Tech Debt
+    - Graph refactor, preparation for QoS handling
+    - Resynch SMF with common source git-submodule and use utils from there
+* `PCF` changes:
+  * Features
+    - Add possibility to read QoS values from file
+  * Fixes
+    - Fix HTTP/2 server shutdown
+    - Use new FlowDirection fix
+  * Tech Debt
+    - Resynch PCF with common source git-submodule and use utils from there
+* `UDM` changes:
+  * Features
+    - Update UDM APP structure
+    - Use HTTP Request Timeout parameter from Conf file
+  * Fixes
+    - Fix HTTP/2 server shutdown
+  * Tech Debt
+    - Code cleanup
+    - Removing unneccessary packages from target images
+    - Cleanup UDM client and add connection handling mechanism
+* `UDR` changes:
+  * Features
+    - Add NRF connection handling mechanism
+    - Use HTTP Request Timeout parameter from Conf file
+  * Fixes
+    - Fix HTTP/2 server shutdown
+    - Fix duplicated HTTP/1 route
+    - Fix: remove PID section in main
+  * Tech Debt
+    - Remove NRF dependency from UDR
+    - Code cleanup
+* `UPF` changes:
+  * Features
+    - Add connection handling between UPF and NRF
+    - Use HTTP Request Timeout parameter from Conf file
+    - QoS initial support
+    - N4 interoperability improved
+    - Performance improvement: CPU usage is further reduced
+  * Fixes
+    - Fixes: thread management especially at shutdown.
+    - Fix FDQN IPv4-only resolution
+    - Fix Using SD in string hex in UPF profile to send to NRF
+    - Fix to update TEID after a reconnection with FiveG_S_TMSI
+  * Tech Debt
+    - Remove NRF dependency from UPF
+    - Bumping up libbpf and bpftool versions:
+      - libbpf to `master` (currently above `v1.4.5`)
+      - bpftool to `v7.3.0`
+      - This should allow to build on newer systems
+
 ## v2.0.1 -- January 2024 ##
 
 * `AMF` changes:
diff --git a/ci-scripts/Jenkinsfile-GitLab-COTS-UE-Test b/ci-scripts/Jenkinsfile-GitLab-COTS-UE-Test
index ecd5d1284b8185be62b79750d74f922270420460..a6173b1b12e762a1147aa99490978eff8886dbd4 100644
--- a/ci-scripts/Jenkinsfile-GitLab-COTS-UE-Test
+++ b/ci-scripts/Jenkinsfile-GitLab-COTS-UE-Test
@@ -118,13 +118,6 @@ pipeline {
             if (ii == SMF) {
               branchNames[SMF] = params.SMF_BRANCH
               baseTags[SMF] = params.SMF_TAG
-              // TODO: temporary work-around until UPF v2.1.0 released
-              if (upstreamEvent && upstreamJobs[UPF]) {
-                branchNames[SMF] = 'master'
-                baseTags[SMF] = 'v2.1.0'
-                echo "SMF_TAG to use: ${baseTags[SMF]}"
-                echo "SMF_BRANCH to use: ${branchNames[SMF]}"
-              }
             }
             if (ii == UPF) {
               branchNames[UPF] = params.UPF_BRANCH
diff --git a/ci-scripts/Jenkinsfile-GitLab-Load-Check b/ci-scripts/Jenkinsfile-GitLab-Load-Check
index f439fc2df1001e1be965f3994b769df37869978b..15ce07887b0286cbc79f9a4df10d0a8a566e7a7d 100644
--- a/ci-scripts/Jenkinsfile-GitLab-Load-Check
+++ b/ci-scripts/Jenkinsfile-GitLab-Load-Check
@@ -135,13 +135,6 @@ pipeline {
                 echo "Upstream Job passed SMF_TAG to use: ${imageTags[SMF]}"
                 echo "Upstream Job passed SMF_BRANCH to use: ${branchNames[SMF]}"
               }
-              // TODO: temporary work-around until UPF v2.1.0 released
-              if (upstreamEvent && upstreamJobs[UPF]) {
-                branchNames[SMF] = 'master'
-                imageTags[SMF] = 'v2.1.0'
-                echo "SMF_TAG to use: ${imageTags[SMF]}"
-                echo "SMF_BRANCH to use: ${branchNames[SMF]}"
-              }
             }
             if (ii == UPF) {
               branchNames[UPF] = params.UPF_BRANCH
@@ -566,7 +559,7 @@ def checkImageInfo(imageName, origTag) {
 
 def updateDockerCompose(filename, lRanTag) {
   for (ii = 0; ii < imageNames.size(); ii++) {
-    sh 'sed -i -e "s@oaisoftwarealliance/' + imageNames[ii] + ':develop@' + imageNames[ii] + ':' + imageTags[ii] + '@" ' + filename
+    sh 'sed -i -e "s@oaisoftwarealliance/' + imageNames[ii] + ':v2.1.0@' + imageNames[ii] + ':' + imageTags[ii] + '@" ' + filename
   }
   sh 'sed -i -e "s@oaisoftwarealliance/trf-gen-cn5g:latest@trf-gen-cn5g:latest@" ' + filename
   sh 'sed -i -e "s@5gc-gnbsim:tag-to-use@5gc-gnbsim:' + lRanTag + '@" ci-scripts/docker-compose/load-test-gnbsim/docker-compose-omec-gnbsim.yaml'
diff --git a/ci-scripts/Jenkinsfile-GitLab-RobotTests b/ci-scripts/Jenkinsfile-GitLab-RobotTests
index ad619a6edff03f733b47ab0120eeb9fe37cb7975..d45c94b7cb376039dc4155b5d13b66517ae2a2bc 100644
--- a/ci-scripts/Jenkinsfile-GitLab-RobotTests
+++ b/ci-scripts/Jenkinsfile-GitLab-RobotTests
@@ -193,13 +193,6 @@ pipeline {
                 echo "Upstream Job passed SMF_TAG to use: ${imageTags[SMF]}"
                 echo "Upstream Job passed SMF_BRANCH to use: ${branchNames[SMF]}"
               }
-              // TODO: temporary work-around until UPF v2.1.0 released
-              if (upstreamEvent && upstreamJobs[UPF]) {
-                branchNames[SMF] = 'master'
-                imageTags[SMF] = 'v2.1.0'
-                echo "SMF_TAG to use: ${imageTags[SMF]}"
-                echo "SMF_BRANCH to use: ${branchNames[SMF]}"
-              }
             }
             if (ii == UPF) {
               branchNames[UPF] = params.UPF_BRANCH
diff --git a/ci-scripts/Jenkinsfile-GitLab-Tutorial-Check b/ci-scripts/Jenkinsfile-GitLab-Tutorial-Check
index 7051ad87cc2fc99250aff2687303321518af281e..26679c33754cedccd53538a5a859530925362b93 100644
--- a/ci-scripts/Jenkinsfile-GitLab-Tutorial-Check
+++ b/ci-scripts/Jenkinsfile-GitLab-Tutorial-Check
@@ -168,13 +168,6 @@ pipeline {
                 run_ulcl_pcf = true
                 run_mongo_db = false
               }
-              // TODO: temporary work-around until UPF v2.1.0 released
-              if (upstreamEvent && upstreamJobs[UPF]) {
-                branchNames[SMF] = 'master'
-                imageTags[SMF] = 'v2.1.0'
-                echo "SMF_TAG to use: ${imageTags[SMF]}"
-                echo "SMF_BRANCH to use: ${branchNames[SMF]}"
-              }
             }
             if (ii == UPF) {
               branchNames[UPF] = params.UPF_BRANCH
@@ -509,7 +502,7 @@ def checkImageInfo(imageName, origTag) {
 
 def updateDockerCompose(filename, lRanTag) {
   for (ii = 0; ii < imageNames.size(); ii++) {
-    sh 'sed -i -e "s@oaisoftwarealliance/' + imageNames[ii] + ':develop@' + imageNames[ii] + ':' + imageTags[ii] + '@" ' + filename
+    sh 'sed -i -e "s@oaisoftwarealliance/' + imageNames[ii] + ':v2.1.0@' + imageNames[ii] + ':' + imageTags[ii] + '@" ' + filename
   }
   sh 'sed -i -e "s@oaisoftwarealliance/trf-gen-cn5g:latest@trf-gen-cn5g:latest@" ' + filename
   // Using the develop variant of gnbsim
diff --git a/ci-scripts/Jenkinsfile-GitLab-Tutorial-Check-eBPF b/ci-scripts/Jenkinsfile-GitLab-Tutorial-Check-eBPF
index 11fcce25bfbb2c93fcc5702f263e06eb3fa84bca..e3cda57613c256c60969ed8f2139ed7a0ce6522b 100644
--- a/ci-scripts/Jenkinsfile-GitLab-Tutorial-Check-eBPF
+++ b/ci-scripts/Jenkinsfile-GitLab-Tutorial-Check-eBPF
@@ -148,13 +148,6 @@ pipeline {
                 echo "Upstream Job passed SMF_BRANCH to use: ${branchNames[SMF]}"
                 run_ebpf_upf = true
               }
-              // TODO: temporary work-around until UPF v2.1.0 released
-              if (upstreamEvent && upstreamJobs[UPF]) {
-                branchNames[SMF] = 'master'
-                imageTags[SMF] = 'v2.1.0'
-                echo "SMF_TAG to use: ${imageTags[SMF]}"
-                echo "SMF_BRANCH to use: ${branchNames[SMF]}"
-              }
             }
             if (ii == UPF) {
               branchNames[UPF] = params.UPF_BRANCH
@@ -345,7 +338,7 @@ def checkImageInfo(imageName, origTag) {
 
 def updateDockerCompose(filename, lRanTag) {
   for (ii = 0; ii < imageNames.size(); ii++) {
-    sh 'sed -i -e "s@oaisoftwarealliance/' + imageNames[ii] + ':develop@' + imageNames[ii] + ':' + imageTags[ii] + '@" ' + filename
+    sh 'sed -i -e "s@oaisoftwarealliance/' + imageNames[ii] + ':v2.1.0@' + imageNames[ii] + ':' + imageTags[ii] + '@" ' + filename
   }
   sh 'sed -i -e "s@oaisoftwarealliance/trf-gen-cn5g:latest@trf-gen-cn5g:latest@" ' + filename
   // Using the develop variant of gnbsim
diff --git a/component/oai-amf b/component/oai-amf
index 2c31091d69682f8af6fac85320431c7bc41cbdd8..58f77cfb5d59908d98d5688a6bb1a733b4dc4b39 160000
--- a/component/oai-amf
+++ b/component/oai-amf
@@ -1 +1 @@
-Subproject commit 2c31091d69682f8af6fac85320431c7bc41cbdd8
+Subproject commit 58f77cfb5d59908d98d5688a6bb1a733b4dc4b39
diff --git a/component/oai-ausf b/component/oai-ausf
index 2884d6e0b324cd6d72b0357d39ecb854385e19a8..7876739c808a190f9176c16f6a694b8648124c76 160000
--- a/component/oai-ausf
+++ b/component/oai-ausf
@@ -1 +1 @@
-Subproject commit 2884d6e0b324cd6d72b0357d39ecb854385e19a8
+Subproject commit 7876739c808a190f9176c16f6a694b8648124c76
diff --git a/component/oai-lmf b/component/oai-lmf
new file mode 160000
index 0000000000000000000000000000000000000000..a3ecce0b52f1263f1dc9da8451491d9b4e9280c7
--- /dev/null
+++ b/component/oai-lmf
@@ -0,0 +1 @@
+Subproject commit a3ecce0b52f1263f1dc9da8451491d9b4e9280c7
diff --git a/component/oai-nrf b/component/oai-nrf
index 68dde4ed321208bf7d6cc8d18830cdd5ce31c6ef..c06ee97ae9424ddd1b2a3f368d325c91190b75d9 160000
--- a/component/oai-nrf
+++ b/component/oai-nrf
@@ -1 +1 @@
-Subproject commit 68dde4ed321208bf7d6cc8d18830cdd5ce31c6ef
+Subproject commit c06ee97ae9424ddd1b2a3f368d325c91190b75d9
diff --git a/component/oai-nssf b/component/oai-nssf
index ad69d9a086238c5fce8f27523c8398a35875fc24..126d170be01ab97aba6a3acf1865fe63bed7c55a 160000
--- a/component/oai-nssf
+++ b/component/oai-nssf
@@ -1 +1 @@
-Subproject commit ad69d9a086238c5fce8f27523c8398a35875fc24
+Subproject commit 126d170be01ab97aba6a3acf1865fe63bed7c55a
diff --git a/component/oai-pcf b/component/oai-pcf
index 53d27f9ac739f4cc605429a9a43e9ac46c042002..da4ae380be9456120c00cf0f80e177a875964e1b 160000
--- a/component/oai-pcf
+++ b/component/oai-pcf
@@ -1 +1 @@
-Subproject commit 53d27f9ac739f4cc605429a9a43e9ac46c042002
+Subproject commit da4ae380be9456120c00cf0f80e177a875964e1b
diff --git a/component/oai-smf b/component/oai-smf
index ffd50b6d9648ea37bdc75497a413a49eeeb29f99..531b6d8755ee792e49122c57bbab047db88ec4b5 160000
--- a/component/oai-smf
+++ b/component/oai-smf
@@ -1 +1 @@
-Subproject commit ffd50b6d9648ea37bdc75497a413a49eeeb29f99
+Subproject commit 531b6d8755ee792e49122c57bbab047db88ec4b5
diff --git a/component/oai-udm b/component/oai-udm
index 74224d7c2ee9173b44cd5bee290ad0654ee065ae..9889e9c8644d424d12a4fe8321dc61320d953d1d 160000
--- a/component/oai-udm
+++ b/component/oai-udm
@@ -1 +1 @@
-Subproject commit 74224d7c2ee9173b44cd5bee290ad0654ee065ae
+Subproject commit 9889e9c8644d424d12a4fe8321dc61320d953d1d
diff --git a/component/oai-udr b/component/oai-udr
index ab5ad7e7d39b39c6a3c182facba3c660d00f193a..52f08a210c8785f76414b9c39041aaaf00fb6921 160000
--- a/component/oai-udr
+++ b/component/oai-udr
@@ -1 +1 @@
-Subproject commit ab5ad7e7d39b39c6a3c182facba3c660d00f193a
+Subproject commit 52f08a210c8785f76414b9c39041aaaf00fb6921
diff --git a/component/oai-upf b/component/oai-upf
index 93cab8f222a5d12ba8ab90fb436cce6cea4f0bff..89ee4c966a8cd739572a38930a7cf46bbdd27181 160000
--- a/component/oai-upf
+++ b/component/oai-upf
@@ -1 +1 @@
-Subproject commit 93cab8f222a5d12ba8ab90fb436cce6cea4f0bff
+Subproject commit 89ee4c966a8cd739572a38930a7cf46bbdd27181
diff --git a/docker-compose/docker-compose-basic-nrf-ebpf.yaml b/docker-compose/docker-compose-basic-nrf-ebpf.yaml
index 471887530950567bccc4aab761bb98c0b20c79ec..3470a7ca0a7246330421770bb3f63bca823102a3 100644
--- a/docker-compose/docker-compose-basic-nrf-ebpf.yaml
+++ b/docker-compose/docker-compose-basic-nrf-ebpf.yaml
@@ -22,7 +22,7 @@ services:
                 ipv4_address: 192.168.70.131
     oai-udr:
         container_name: "oai-udr"
-        image: oaisoftwarealliance/oai-udr:develop
+        image: oaisoftwarealliance/oai-udr:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -38,7 +38,7 @@ services:
                 ipv4_address: 192.168.70.136
     oai-udm:
         container_name: "oai-udm"
-        image: oaisoftwarealliance/oai-udm:develop
+        image: oaisoftwarealliance/oai-udm:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -53,7 +53,7 @@ services:
                 ipv4_address: 192.168.70.137
     oai-ausf:
         container_name: "oai-ausf"
-        image: oaisoftwarealliance/oai-ausf:develop
+        image: oaisoftwarealliance/oai-ausf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -68,7 +68,7 @@ services:
                 ipv4_address: 192.168.70.138
     oai-nrf:
         container_name: "oai-nrf"
-        image: oaisoftwarealliance/oai-nrf:develop
+        image: oaisoftwarealliance/oai-nrf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -81,7 +81,7 @@ services:
                 ipv4_address: 192.168.70.130
     oai-amf:
         container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:develop
+        image: oaisoftwarealliance/oai-amf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -97,7 +97,7 @@ services:
                 ipv4_address: 192.168.70.132
     oai-smf:
         container_name: "oai-smf"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -115,7 +115,7 @@ services:
             - "oai-upf:192.168.70.129"
     oai-upf:
         container_name: "oai-upf"
-        image: oaisoftwarealliance/oai-upf:develop
+        image: oaisoftwarealliance/oai-upf:v2.1.0
         expose:
             - 2152/udp
             - 8805/udp
diff --git a/docker-compose/docker-compose-basic-nrf-mongodb.yaml b/docker-compose/docker-compose-basic-nrf-mongodb.yaml
index cdb2668ba0048f20660b3f72f480e4a779c25aa1..5f0f88bd90655a462ace7439081168ec78a90b40 100644
--- a/docker-compose/docker-compose-basic-nrf-mongodb.yaml
+++ b/docker-compose/docker-compose-basic-nrf-mongodb.yaml
@@ -21,7 +21,7 @@ services:
                 ipv4_address: 192.168.70.131
     oai-udr:
         container_name: "oai-udr"
-        image: oaisoftwarealliance/oai-udr:develop
+        image: oaisoftwarealliance/oai-udr:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -37,7 +37,7 @@ services:
                 ipv4_address: 192.168.70.136
     oai-udm:
         container_name: "oai-udm"
-        image: oaisoftwarealliance/oai-udm:develop
+        image: oaisoftwarealliance/oai-udm:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -52,7 +52,7 @@ services:
                 ipv4_address: 192.168.70.137
     oai-ausf:
         container_name: "oai-ausf"
-        image: oaisoftwarealliance/oai-ausf:develop
+        image: oaisoftwarealliance/oai-ausf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -67,7 +67,7 @@ services:
                 ipv4_address: 192.168.70.138
     oai-nrf:
         container_name: "oai-nrf"
-        image: oaisoftwarealliance/oai-nrf:develop
+        image: oaisoftwarealliance/oai-nrf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -80,7 +80,7 @@ services:
                 ipv4_address: 192.168.70.130
     oai-amf:
         container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:develop
+        image: oaisoftwarealliance/oai-amf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -96,7 +96,7 @@ services:
                 ipv4_address: 192.168.70.132
     oai-smf:
         container_name: "oai-smf"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -112,7 +112,7 @@ services:
                 ipv4_address: 192.168.70.133
     oai-upf:
         container_name: "oai-upf"
-        image: oaisoftwarealliance/oai-upf:develop
+        image: oaisoftwarealliance/oai-upf:v2.1.0
         expose:
             - 2152/udp
             - 8805/udp
diff --git a/docker-compose/docker-compose-basic-nrf.yaml b/docker-compose/docker-compose-basic-nrf.yaml
index 8d177b086465bf050e983a60fcd79ecc603b1e1e..519fe59342fdc2e96d4430170910be2b01ff9e8e 100644
--- a/docker-compose/docker-compose-basic-nrf.yaml
+++ b/docker-compose/docker-compose-basic-nrf.yaml
@@ -23,7 +23,7 @@ services:
 #                ipv4_address: 192.168.70.131
     oai-udr:
         container_name: "oai-udr"
-        image: oaisoftwarealliance/oai-udr:develop
+        image: oaisoftwarealliance/oai-udr:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -40,7 +40,7 @@ services:
 #                ipv4_address: 192.168.70.136
     oai-udm:
         container_name: "oai-udm"
-        image: oaisoftwarealliance/oai-udm:develop
+        image: oaisoftwarealliance/oai-udm:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -56,7 +56,7 @@ services:
 #                ipv4_address: 192.168.70.137
     oai-ausf:
         container_name: "oai-ausf"
-        image: oaisoftwarealliance/oai-ausf:develop
+        image: oaisoftwarealliance/oai-ausf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -72,7 +72,7 @@ services:
 #                ipv4_address: 192.168.70.138
     oai-nrf:
         container_name: "oai-nrf"
-        image: oaisoftwarealliance/oai-nrf:develop
+        image: oaisoftwarealliance/oai-nrf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -86,7 +86,7 @@ services:
 #                ipv4_address: 192.168.70.130
     oai-amf:
         container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:develop
+        image: oaisoftwarealliance/oai-amf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -103,7 +103,7 @@ services:
 #                ipv4_address: 192.168.70.132
     oai-smf:
         container_name: "oai-smf"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -120,7 +120,7 @@ services:
 #                ipv4_address: 192.168.70.133
     oai-upf:
         container_name: "oai-upf"
-        image: oaisoftwarealliance/oai-upf:develop
+        image: oaisoftwarealliance/oai-upf:v2.1.0
         expose:
             - 2152/udp
             - 8805/udp
diff --git a/docker-compose/docker-compose-basic-vpp-nrf.yaml b/docker-compose/docker-compose-basic-vpp-nrf.yaml
index cf19707ce29e0f1e0090520273ba55c7d3fc3d9c..5468c8ba9c2ec87d7126f03448852f36fc54d536 100644
--- a/docker-compose/docker-compose-basic-vpp-nrf.yaml
+++ b/docker-compose/docker-compose-basic-vpp-nrf.yaml
@@ -22,7 +22,7 @@ services:
                 ipv4_address: 192.168.70.131
     oai-udr:
         container_name: "oai-udr"
-        image: oaisoftwarealliance/oai-udr:develop
+        image: oaisoftwarealliance/oai-udr:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -38,7 +38,7 @@ services:
                 ipv4_address: 192.168.70.136
     oai-udm:
         container_name: "oai-udm"
-        image: oaisoftwarealliance/oai-udm:develop
+        image: oaisoftwarealliance/oai-udm:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -53,7 +53,7 @@ services:
                 ipv4_address: 192.168.70.137
     oai-ausf:
         container_name: "oai-ausf"
-        image: oaisoftwarealliance/oai-ausf:develop
+        image: oaisoftwarealliance/oai-ausf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -68,7 +68,7 @@ services:
                 ipv4_address: 192.168.70.138
     oai-nrf:
         container_name: "oai-nrf"
-        image: oaisoftwarealliance/oai-nrf:develop
+        image: oaisoftwarealliance/oai-nrf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -81,7 +81,7 @@ services:
                 ipv4_address: 192.168.70.130
     oai-amf:
         container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:develop
+        image: oaisoftwarealliance/oai-amf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -97,7 +97,7 @@ services:
                 ipv4_address: 192.168.70.132
     oai-smf:
         container_name: "oai-smf"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -116,7 +116,7 @@ services:
     vpp-upf:
         privileged: true
         container_name: "vpp-upf"
-        image: oaisoftwarealliance/oai-upf-vpp:develop
+        image: oaisoftwarealliance/oai-upf-vpp:v2.1.0
         environment:
             - IF_1_IP=192.168.70.201
             - IF_1_TYPE=N4
diff --git a/docker-compose/docker-compose-basic-vpp-pcf-redirection.yaml b/docker-compose/docker-compose-basic-vpp-pcf-redirection.yaml
index 4d43f42cb1c8ddb513b33817ced88480168e952c..75aa2ac700058aa8782d0a4da1c7cfcfefa266eb 100644
--- a/docker-compose/docker-compose-basic-vpp-pcf-redirection.yaml
+++ b/docker-compose/docker-compose-basic-vpp-pcf-redirection.yaml
@@ -22,7 +22,7 @@ services:
                 ipv4_address: 192.168.70.131
     oai-udr:
         container_name: "oai-udr"
-        image: oaisoftwarealliance/oai-udr:develop
+        image: oaisoftwarealliance/oai-udr:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -38,7 +38,7 @@ services:
                 ipv4_address: 192.168.70.136
     oai-udm:
         container_name: "oai-udm"
-        image: oaisoftwarealliance/oai-udm:develop
+        image: oaisoftwarealliance/oai-udm:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -53,7 +53,7 @@ services:
                 ipv4_address: 192.168.70.137
     oai-ausf:
         container_name: "oai-ausf"
-        image: oaisoftwarealliance/oai-ausf:develop
+        image: oaisoftwarealliance/oai-ausf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -68,7 +68,7 @@ services:
                 ipv4_address: 192.168.70.138
     oai-nrf:
         container_name: "oai-nrf"
-        image: oaisoftwarealliance/oai-nrf:develop
+        image: oaisoftwarealliance/oai-nrf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -81,7 +81,7 @@ services:
                 ipv4_address: 192.168.70.130
     oai-amf:
         container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:develop
+        image: oaisoftwarealliance/oai-amf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -100,7 +100,7 @@ services:
                 ipv4_address: 192.168.70.132
     oai-smf:
         container_name: "oai-smf"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -118,7 +118,7 @@ services:
                 ipv4_address: 192.168.70.133
     oai-pcf:
         container_name: "oai-pcf"
-        image: oaisoftwarealliance/oai-pcf:develop
+        image: oaisoftwarealliance/oai-pcf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -135,7 +135,7 @@ services:
     vpp-upf:
         privileged: true
         container_name: "vpp-upf"
-        image: oaisoftwarealliance/oai-upf-vpp:develop
+        image: oaisoftwarealliance/oai-upf-vpp:v2.1.0
         environment:
             - IF_1_IP=192.168.70.201
             - IF_1_TYPE=N4
diff --git a/docker-compose/docker-compose-basic-vpp-pcf-steering.yaml b/docker-compose/docker-compose-basic-vpp-pcf-steering.yaml
index 52b80a312e30af66b19d80c70d069b48078b5b44..8ba0608dd6e6d0686e5409b7ae81c8b1cd9ed1c5 100644
--- a/docker-compose/docker-compose-basic-vpp-pcf-steering.yaml
+++ b/docker-compose/docker-compose-basic-vpp-pcf-steering.yaml
@@ -22,7 +22,7 @@ services:
                 ipv4_address: 192.168.70.131
     oai-udr:
         container_name: "oai-udr"
-        image: oaisoftwarealliance/oai-udr:develop
+        image: oaisoftwarealliance/oai-udr:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -38,7 +38,7 @@ services:
                 ipv4_address: 192.168.70.136
     oai-udm:
         container_name: "oai-udm"
-        image: oaisoftwarealliance/oai-udm:develop
+        image: oaisoftwarealliance/oai-udm:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -53,7 +53,7 @@ services:
                 ipv4_address: 192.168.70.137
     oai-ausf:
         container_name: "oai-ausf"
-        image: oaisoftwarealliance/oai-ausf:develop
+        image: oaisoftwarealliance/oai-ausf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -68,7 +68,7 @@ services:
                 ipv4_address: 192.168.70.138
     oai-nrf:
         container_name: "oai-nrf"
-        image: oaisoftwarealliance/oai-nrf:develop
+        image: oaisoftwarealliance/oai-nrf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -81,7 +81,7 @@ services:
                 ipv4_address: 192.168.70.130
     oai-amf:
         container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:develop
+        image: oaisoftwarealliance/oai-amf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -100,7 +100,7 @@ services:
                 ipv4_address: 192.168.70.132
     oai-smf:
         container_name: "oai-smf"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -118,7 +118,7 @@ services:
                 ipv4_address: 192.168.70.133
     oai-pcf:
         container_name: "oai-pcf"
-        image: oaisoftwarealliance/oai-pcf:develop
+        image: oaisoftwarealliance/oai-pcf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -135,7 +135,7 @@ services:
     vpp-upf:
         privileged: true
         container_name: "vpp-upf"
-        image: oaisoftwarealliance/oai-upf-vpp:develop
+        image: oaisoftwarealliance/oai-upf-vpp:v2.1.0
         environment:
             - IF_1_IP=192.168.70.201
             - IF_1_TYPE=N4
diff --git a/docker-compose/docker-compose-basic-vpp-pcf-ulcl.yaml b/docker-compose/docker-compose-basic-vpp-pcf-ulcl.yaml
index 272a342497f5cfd928ee88044853bc9496105dd3..c85103c4bc6df8b8c954f5aae8a78c27839a7703 100644
--- a/docker-compose/docker-compose-basic-vpp-pcf-ulcl.yaml
+++ b/docker-compose/docker-compose-basic-vpp-pcf-ulcl.yaml
@@ -22,7 +22,7 @@ services:
                 ipv4_address: 192.168.70.131
     oai-udr:
         container_name: "oai-udr"
-        image: oaisoftwarealliance/oai-udr:develop
+        image: oaisoftwarealliance/oai-udr:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -38,7 +38,7 @@ services:
                 ipv4_address: 192.168.70.136
     oai-udm:
         container_name: "oai-udm"
-        image: oaisoftwarealliance/oai-udm:develop
+        image: oaisoftwarealliance/oai-udm:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -53,7 +53,7 @@ services:
                 ipv4_address: 192.168.70.137
     oai-ausf:
         container_name: "oai-ausf"
-        image: oaisoftwarealliance/oai-ausf:develop
+        image: oaisoftwarealliance/oai-ausf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -68,7 +68,7 @@ services:
                 ipv4_address: 192.168.70.138
     oai-nrf:
         container_name: "oai-nrf"
-        image: oaisoftwarealliance/oai-nrf:develop
+        image: oaisoftwarealliance/oai-nrf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -81,7 +81,7 @@ services:
                 ipv4_address: 192.168.70.130
     oai-amf:
         container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:develop
+        image: oaisoftwarealliance/oai-amf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -98,7 +98,7 @@ services:
                 ipv4_address: 192.168.70.132
     oai-smf:
         container_name: "oai-smf"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -118,7 +118,7 @@ services:
                 ipv4_address: 192.168.70.133
     oai-pcf:
         container_name: "oai-pcf"
-        image: oaisoftwarealliance/oai-pcf:develop
+        image: oaisoftwarealliance/oai-pcf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -134,7 +134,7 @@ services:
                 ipv4_address: 192.168.70.139
     vpp-upf-ulcl:
         container_name: "vpp-upf-ulcl"
-        image: oaisoftwarealliance/oai-upf-vpp:develop
+        image: oaisoftwarealliance/oai-upf-vpp:v2.1.0
         privileged: true
         environment:
             - IF_1_IP=192.168.70.201
@@ -184,7 +184,7 @@ services:
             public_net_core21:
                 ipv4_address: 192.168.74.151
     vpp-upf-aupf1:
-        image: oaisoftwarealliance/oai-upf-vpp:develop
+        image: oaisoftwarealliance/oai-upf-vpp:v2.1.0
         privileged: true
         container_name: "vpp-upf-aupf1"
         environment:
@@ -230,7 +230,7 @@ services:
             public_net_core12:
                 ipv4_address: 192.168.75.152
     vpp-upf-aupf2:
-        image: oaisoftwarealliance/oai-upf-vpp:develop
+        image: oaisoftwarealliance/oai-upf-vpp:v2.1.0
         privileged: true
         container_name: "vpp-upf-aupf2"
         environment:
diff --git a/docker-compose/docker-compose-mini-nonrf.yaml b/docker-compose/docker-compose-mini-nonrf.yaml
index 237f5aeeb87191875de3b3e3db22cedd0cacfdb3..ae88ce616c6a12266986679e84ed697582f50f1a 100644
--- a/docker-compose/docker-compose-mini-nonrf.yaml
+++ b/docker-compose/docker-compose-mini-nonrf.yaml
@@ -22,7 +22,7 @@ services:
                 ipv4_address: 192.168.70.131
     oai-amf:
         container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:develop
+        image: oaisoftwarealliance/oai-amf:v2.1.0
         volumes:
             - ./conf/mini_nonrf_config.yaml:/openair-amf/etc/config.yaml
         environment:
@@ -34,7 +34,7 @@ services:
                 ipv4_address: 192.168.70.132
     oai-smf:
         container_name: "oai-smf"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         volumes:
             - ./conf/mini_nonrf_config.yaml:/openair-smf/etc/config.yaml
         environment:
@@ -49,7 +49,7 @@ services:
             - "oai-upf:192.168.70.134"
     oai-upf:
         container_name: "oai-upf"
-        image: oaisoftwarealliance/oai-upf:develop
+        image: oaisoftwarealliance/oai-upf:v2.1.0
         volumes:
             - ./conf/mini_nonrf_config.yaml:/openair-upf/etc/config.yaml
         environment:
diff --git a/docker-compose/docker-compose-no-privilege.yaml b/docker-compose/docker-compose-no-privilege.yaml
index f2916309582875402e2ee0f65d29e46c0a0d04ce..ff36db01eebcaedad7bedd59e6466e9c2768c478 100644
--- a/docker-compose/docker-compose-no-privilege.yaml
+++ b/docker-compose/docker-compose-no-privilege.yaml
@@ -23,7 +23,7 @@ services:
                 ipv4_address: 192.168.70.131
     oai-amf:
         container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:develop
+        image: oaisoftwarealliance/oai-amf:v2.1.0
         volumes:
             - ./conf/mini_nonrf_config.yaml:/openair-amf/etc/config.yaml
         environment:
@@ -35,7 +35,7 @@ services:
                 ipv4_address: 192.168.70.132
     oai-smf:
         container_name: "oai-smf"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         volumes:
             - ./conf/mini_nonrf_config.yaml:/openair-smf/etc/config.yaml
         environment:
@@ -50,7 +50,7 @@ services:
             - "oai-upf:192.168.70.134"
     oai-upf:
         container_name: "oai-upf"
-        image: oaisoftwarealliance/oai-upf:develop
+        image: oaisoftwarealliance/oai-upf:v2.1.0
         volumes:
             - ./conf/mini_nonrf_config.yaml:/openair-upf/etc/config.yaml
         environment:
diff --git a/docker-compose/docker-compose-slicing-basic-nrf.yaml b/docker-compose/docker-compose-slicing-basic-nrf.yaml
index df03006dbab33d12722ed9cc36ff6fcaeb2e6577..eae849dfa36e1b0415a48998743ceb4cdb91369d 100644
--- a/docker-compose/docker-compose-slicing-basic-nrf.yaml
+++ b/docker-compose/docker-compose-slicing-basic-nrf.yaml
@@ -22,7 +22,7 @@ services:
                 ipv4_address: 192.168.70.131
     oai-nssf:
         container_name: "oai-nssf"
-        image: oaisoftwarealliance/oai-nssf:develop
+        image: oaisoftwarealliance/oai-nssf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -40,7 +40,7 @@ services:
                 ipv4_address: 192.168.70.132
     oai_udr:
         container_name: "oai-udr"
-        image: oaisoftwarealliance/oai-udr:develop
+        image: oaisoftwarealliance/oai-udr:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -53,7 +53,7 @@ services:
                 ipv4_address: 192.168.70.133
     oai_udm:
         container_name: "oai-udm"
-        image: oaisoftwarealliance/oai-udm:develop
+        image: oaisoftwarealliance/oai-udm:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -66,7 +66,7 @@ services:
                 ipv4_address: 192.168.70.134
     oai_ausf:
         container_name: "oai-ausf"
-        image: oaisoftwarealliance/oai-ausf:develop
+        image: oaisoftwarealliance/oai-ausf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -79,7 +79,7 @@ services:
                 ipv4_address: 192.168.70.135
     oai_nrf_slice12:
         container_name: "oai-nrf-slice12"
-        image: oaisoftwarealliance/oai-nrf:develop
+        image: oaisoftwarealliance/oai-nrf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -90,7 +90,7 @@ services:
                 ipv4_address: 192.168.70.136
     oai_nrf_slice3:
         container_name: "oai-nrf-slice3"
-        image: oaisoftwarealliance/oai-nrf:develop
+        image: oaisoftwarealliance/oai-nrf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -101,7 +101,7 @@ services:
                 ipv4_address: 192.168.70.137
     oai_amf:
         container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:develop
+        image: oaisoftwarealliance/oai-amf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -117,7 +117,7 @@ services:
                 ipv4_address: 192.168.70.138
     oai_smf_slice1:
         container_name: "oai-smf-slice1"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -132,7 +132,7 @@ services:
                 ipv4_address: 192.168.70.139
     oai_smf_slice2:
         container_name: "oai-smf-slice2"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -147,7 +147,7 @@ services:
                 ipv4_address: 192.168.70.140
     oai_smf_slice3:
         container_name: "oai-smf-slice3"
-        image: oaisoftwarealliance/oai-smf:develop
+        image: oaisoftwarealliance/oai-smf:v2.1.0
         expose:
             - 80/tcp
             - 8080/tcp
@@ -164,7 +164,7 @@ services:
                 ipv4_address: 192.168.70.141
     oai_upf_slice1:
         container_name: "oai-upf-slice1"
-        image: oaisoftwarealliance/oai-upf:develop
+        image: oaisoftwarealliance/oai-upf:v2.1.0
         expose:
             - 2152/udp
             - 8805/udp
@@ -187,7 +187,7 @@ services:
                 ipv4_address: 192.168.70.142
     oai_upf_slice2:
         container_name: "oai-upf-slice2"
-        image: oaisoftwarealliance/oai-upf:develop
+        image: oaisoftwarealliance/oai-upf:v2.1.0
         expose:
             - 2152/udp
             - 8805/udp
@@ -210,7 +210,7 @@ services:
                 ipv4_address: 192.168.70.143
     vpp_upf_slice3:
         container_name: "vpp-upf-slice3"
-        image: oaisoftwarealliance/oai-upf-vpp:develop
+        image: oaisoftwarealliance/oai-upf-vpp:v2.1.0
         privileged: true
         environment:
             - IF_1_IP=192.168.70.201
diff --git a/docs/BUILD_IMAGES.md b/docs/BUILD_IMAGES.md
index a04ac10cc242572408a326a8bbb79a4edbeee56c..66d30188b27ed129e97d446f2c065880d5ecbd78 100644
--- a/docs/BUILD_IMAGES.md
+++ b/docs/BUILD_IMAGES.md
@@ -47,31 +47,31 @@ We recommend to synchronize with the master branches on all git sub-modules.
 
 We also recommend that you synchronize this "tutorial" repository with a provided tag. By doing so, the `docker-compose` files will be aligned with feature sets of each cNF.
 
-**At the time of writing (2023/12/19), the release tag was `v2.0.1`.**
+**At the time of writing (2024/08/30), the release tag was `v2.1.0`.**
 
 
-| CNF Name    | Branch Name | Tag      | Ubuntu 22.04 | RHEL8 (UBI8)    |
+| CNF Name    | Branch Name | Tag      | Ubuntu 22.04 | RHEL9 (UBI9)    |
 | ----------- | ----------- | -------- | ------------ | ----------------|
-| FED REPO    | N/A         | `v2.0.1` |              |                 |
-| AMF         | `master`    | `v2.0.1` | X            | X               |
-| SMF         | `master`    | `v2.0.1` | X            | X               |
-| NRF         | `master`    | `v2.0.1` | X            | X               |
-| UPF         | `master`    | `v2.0.1` | X            | X               |
-| UDR         | `master`    | `v2.0.1` | X            | X               |
-| UDM         | `master`    | `v2.0.1` | X            | X               |
-| AUSF        | `master`    | `v2.0.1` | X            | X               |
-| UPF-VPP     | `master`    | `v2.0.1` | X            | X               |
-| NSSF        | `master`    | `v2.0.1` | X            | X               |
-| NEF         | `master`    | `v2.0.1` | X            | X               |
-| PCF         | `master`    | `v2.0.1` | X            | X               |
+| FED REPO    | N/A         | `v2.1.0` |              |                 |
+| AMF         | `master`    | `v2.1.0` | X            | X               |
+| SMF         | `master`    | `v2.1.0` | X            | X               |
+| NRF         | `master`    | `v2.1.0` | X            | X               |
+| UPF         | `master`    | `v2.1.0` | X            | X               |
+| UDR         | `master`    | `v2.1.0` | X            | X               |
+| UDM         | `master`    | `v2.1.0` | X            | X               |
+| AUSF        | `master`    | `v2.1.0` | X            | X               |
+| UPF-VPP     | `master`    | `v2.1.0` | X            | X               |
+| NSSF        | `master`    | `v2.1.0` | X            | X               |
+| PCF         | `master`    | `v2.1.0` | X            | X               |
+| LMF         | `master`    | `v2.1.0` | X            | X               |
 
 
 ```bash
-# Clone directly on the v2.0.1 release tag
-$ git clone --branch v2.0.1 https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git
+# Clone directly on the v2.1.0 release tag
+$ git clone --branch v2.1.0 https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git
 $ cd oai-cn5g-fed
-# If you forgot to clone directly to the v2.0.1 release tag
-$ git checkout -f v2.0.1
+# If you forgot to clone directly to the v2.1.0 release tag
+$ git checkout -f v2.1.0
 
 # Synchronize all git submodules
 $ ./scripts/syncComponents.sh
@@ -87,6 +87,7 @@ OAI-UPF-VPP component branch : master
 OAI-NSSF    component branch : master
 OAI-NEF     component branch : master
 OAI-PCF     component branch : master
+OAI-LMF     component branch : master
 ---------------------------------------------------------
 git submodule deinit --all --force
 git submodule init
@@ -121,7 +122,7 @@ $ ./scripts/syncComponents.sh --nrf-branch develop --amf-branch develop \
                               --ausf-branch develop --udm-branch develop \
                               --udr-branch develop --upf-vpp-branch develop \
                               --nssf-branch develop --nef-branch develop \
-                              --pcf-branch develop
+                              --pcf-branch develop --lmf-branch develop
 ---------------------------------------------------------
 OAI-NRF     component branch : develop
 OAI-AMF     component branch : develop
@@ -134,6 +135,7 @@ OAI-UPF-VPP component branch : develop
 OAI-NSSF    component branch : develop
 OAI-NEF     component branch : develop
 OAI-PCF     component branch : develop
+OAI-LMF     component branch : develop
 ---------------------------------------------------------
 git submodule deinit --all --force
 git submodule init
diff --git a/docs/RETRIEVE_OFFICIAL_IMAGES.md b/docs/RETRIEVE_OFFICIAL_IMAGES.md
index feec3aefdcf2058cc2163d0ef9cda0c7a9705eb1..f16a3477034368c13b57503e9d764e6b7d195907 100644
--- a/docs/RETRIEVE_OFFICIAL_IMAGES.md
+++ b/docs/RETRIEVE_OFFICIAL_IMAGES.md
@@ -44,17 +44,17 @@ Now pull images according to your requirement,
 
 ```bash
 #!/bin/bash
-docker pull oaisoftwarealliance/oai-amf:v2.0.1
-docker pull oaisoftwarealliance/oai-nrf:v2.0.1
-docker pull oaisoftwarealliance/oai-upf:v2.0.1
-docker pull oaisoftwarealliance/oai-smf:v2.0.1
-docker pull oaisoftwarealliance/oai-udr:v2.0.1
-docker pull oaisoftwarealliance/oai-udm:v2.0.1
-docker pull oaisoftwarealliance/oai-ausf:v2.0.1
-docker pull oaisoftwarealliance/oai-upf-vpp:v2.0.1
-docker pull oaisoftwarealliance/oai-nssf:v2.0.1
-docker pull oaisoftwarealliance/oai-pcf:v2.0.1
-docker pull oaisoftwarealliance/oai-nef:v2.0.1
+docker pull oaisoftwarealliance/oai-amf:v2.1.0
+docker pull oaisoftwarealliance/oai-nrf:v2.1.0
+docker pull oaisoftwarealliance/oai-upf:v2.1.0
+docker pull oaisoftwarealliance/oai-smf:v2.1.0
+docker pull oaisoftwarealliance/oai-udr:v2.1.0
+docker pull oaisoftwarealliance/oai-udm:v2.1.0
+docker pull oaisoftwarealliance/oai-ausf:v2.1.0
+docker pull oaisoftwarealliance/oai-upf-vpp:v2.1.0
+docker pull oaisoftwarealliance/oai-nssf:v2.1.0
+docker pull oaisoftwarealliance/oai-pcf:v2.1.0
+docker pull oaisoftwarealliance/oai-lmf:v2.1.0
 # Utility image to generate traffic
 docker pull oaisoftwarealliance/trf-gen-cn5g:latest
 ```
@@ -73,29 +73,29 @@ We will push new versions when new features are validated.
 
 This repository only has tutorials and Continuous Integration scripts.
 
-**At the time of writing (2023/12), the release tag is `v2.0.1`.**
+**At the time of writing (2024/08), the release tag is `v2.1.0`.**
 
-| CNF Name    | Branch Name | Tag      | Ubuntu 22.04 | RHEL8 (UBI8)    |
+| CNF Name    | Branch Name | Tag      | Ubuntu 22.04 | RHEL9 (UBI9)    |
 | ----------- | ----------- | -------- | ------------ | ----------------|
-| FED REPO    | N/A         | `v2.0.1` |              |                 |
-| AMF         | `master`    | `v2.0.1` | X            | X               |
-| SMF         | `master`    | `v2.0.1` | X            | X               |
-| NRF         | `master`    | `v2.0.1` | X            | X               |
-| UPF         | `master`    | `v2.0.1` | X            | X               |
-| UDR         | `master`    | `v2.0.1` | X            | X               |
-| UDM         | `master`    | `v2.0.1` | X            | X               |
-| AUSF        | `master`    | `v2.0.1` | X            | X               |
-| UPF-VPP     | `master`    | `v2.0.1` | X            | X               |
-| NSSF        | `master`    | `v2.0.1` | X            | X               |
-| NEF         | `master`    | `v2.0.1` | X            | X               |
-| PCF         | `master`    | `v2.0.1` | X            | X               |
+| FED REPO    | N/A         | `v2.1.0` |              |                 |
+| AMF         | `master`    | `v2.1.0` | X            | X               |
+| SMF         | `master`    | `v2.1.0` | X            | X               |
+| NRF         | `master`    | `v2.1.0` | X            | X               |
+| UPF         | `master`    | `v2.1.0` | X            | X               |
+| UDR         | `master`    | `v2.1.0` | X            | X               |
+| UDM         | `master`    | `v2.1.0` | X            | X               |
+| AUSF        | `master`    | `v2.1.0` | X            | X               |
+| UPF-VPP     | `master`    | `v2.1.0` | X            | X               |
+| NSSF        | `master`    | `v2.1.0` | X            | X               |
+| LMF         | `master`    | `v2.1.0` | X            | X               |
+| PCF         | `master`    | `v2.1.0` | X            | X               |
 
 ```bash
 # Clone directly on the latest release tag
-$ git clone --branch v2.0.1 https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git
+$ git clone --branch v2.1.0 https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git
 $ cd oai-cn5g-fed
 # If you forgot to clone directly to the latest release tag
-$ git checkout -f v2.0.1
+$ git checkout -f v2.1.0
 
 # Synchronize all git submodules
 $ ./scripts/syncComponents.sh
@@ -111,6 +111,7 @@ OAI-UPF-VPP component branch : master
 OAI-NSSF    component branch : master
 OAI-NEF     component branch : master
 OAI-PCF     component branch : master
+OAI-LMF     component branch : master
 ---------------------------------------------------------
 git submodule deinit --all --force
 git submodule init
@@ -134,6 +135,7 @@ docker pull oaisoftwarealliance/oai-upf-vpp:develop
 docker pull oaisoftwarealliance/oai-nssf:develop
 docker pull oaisoftwarealliance/oai-pcf:develop
 docker pull oaisoftwarealliance/oai-nef:develop
+docker pull oaisoftwarealliance/oai-lmf:develop
 # Utility image to generate traffic
 docker pull oaisoftwarealliance/trf-gen-cn5g:latest
 ```
diff --git a/scripts/syncComponents.sh b/scripts/syncComponents.sh
index a4b58586ddd7c7fd22bf6205aae1440206346ffa..e3543ec2893d2631c900334fae28870fb1071c1c 100755
--- a/scripts/syncComponents.sh
+++ b/scripts/syncComponents.sh
@@ -69,6 +69,9 @@ function usage {
     echo "    --pcf-branch ####"
     echo "    Specify the source branch for the OAI-PCF component"
     echo ""
+    echo "    --lmf-branch ####"
+    echo "    Specify the source branch for the OAI-LMF component"
+    echo ""
     echo "    --verbose"
     echo "    Will show all operations results"
     echo ""
@@ -77,9 +80,9 @@ function usage {
     echo ""
 }
 
-BRANCH_NAMES=("master" "master" "master" "master" "master" "master" "master" "master" "master" "master" "master")
-#BRANCH_NAMES=("develop" "develop" "develop" "develop" "develop" "develop" "develop" "develop" "develop" "develop" "develop")
-COMPONENT_PATHS=("oai-nrf" "oai-amf" "oai-smf" "oai-upf" "oai-ausf" "oai-udm" "oai-udr" "oai-upf-vpp" "oai-nssf" "oai-nef" "oai-pcf")
+BRANCH_NAMES=("master" "master" "master" "master" "master" "master" "master" "master" "master" "master" "master" "master")
+#BRANCH_NAMES=("develop" "develop" "develop" "develop" "develop" "develop" "develop" "develop" "develop" "develop" "develop" "master")
+COMPONENT_PATHS=("oai-nrf" "oai-amf" "oai-smf" "oai-upf" "oai-ausf" "oai-udm" "oai-udr" "oai-upf-vpp" "oai-nssf" "oai-nef" "oai-pcf" "oai-lmf")
 
 NRF_IDX=0
 AMF_IDX=1
@@ -92,8 +95,9 @@ UPF_VPP_IDX=7
 NSSF_IDX=8
 NEF_IDX=9
 PCF_IDX=10
+LMF_IDX=11
 
-doDefault=0
+doDefault=1
 verbose=0
 
 while [[ $# -gt 0 ]]
@@ -172,6 +176,12 @@ case $key in
     shift
     shift
     ;;
+    --lmf-branch)
+    BRANCH_NAMES[LMF_IDX]="$2"
+    doDefault=0
+    shift
+    shift
+    ;;
     --verbose)
     verbose=1
     shift
@@ -198,6 +208,7 @@ echo "OAI-UPF-VPP component branch : ${BRANCH_NAMES[UPF_VPP_IDX]}"
 echo "OAI-NSSF    component branch : ${BRANCH_NAMES[NSSF_IDX]}"
 echo "OAI-NEF     component branch : ${BRANCH_NAMES[NEF_IDX]}"
 echo "OAI-PCF     component branch : ${BRANCH_NAMES[PCF_IDX]}"
+echo "OAI-LMF     component branch : ${BRANCH_NAMES[LMF_IDX]}"
 echo "---------------------------------------------------------"
 
 # First do a clean-up