diff --git a/installers/charm/osm-lcm/lib/charms/osm_libs/v0/utils.py b/installers/charm/osm-lcm/lib/charms/osm_libs/v0/utils.py
index df3da94..d739ba6 100644
--- a/installers/charm/osm-lcm/lib/charms/osm_libs/v0/utils.py
+++ b/installers/charm/osm-lcm/lib/charms/osm_libs/v0/utils.py
@@ -137,7 +137,7 @@
 
 # Increment this PATCH version before using `charmcraft publish-lib` or reset
 # to 0 if you are raising the major API version
-LIBPATCH = 3
+LIBPATCH = 5
 
 logger = logging.getLogger(__name__)
 
@@ -250,7 +250,7 @@
         if submodules:
             for submodule in submodules.keys():
                 self.sub_module_dict[submodule] = SubModule(
-                    sub_module_path=self.mount_path + "/" + submodule,
+                    sub_module_path=self.mount_path + "/" + submodule + "/" + submodules[submodule].split("/")[-1],
                     container_path=submodules[submodule],
                 )
         else:
diff --git a/installers/charm/osm-mon/lib/charms/osm_libs/v0/utils.py b/installers/charm/osm-mon/lib/charms/osm_libs/v0/utils.py
index df3da94..d739ba6 100644
--- a/installers/charm/osm-mon/lib/charms/osm_libs/v0/utils.py
+++ b/installers/charm/osm-mon/lib/charms/osm_libs/v0/utils.py
@@ -137,7 +137,7 @@
 
 # Increment this PATCH version before using `charmcraft publish-lib` or reset
 # to 0 if you are raising the major API version
-LIBPATCH = 3
+LIBPATCH = 5
 
 logger = logging.getLogger(__name__)
 
@@ -250,7 +250,7 @@
         if submodules:
             for submodule in submodules.keys():
                 self.sub_module_dict[submodule] = SubModule(
-                    sub_module_path=self.mount_path + "/" + submodule,
+                    sub_module_path=self.mount_path + "/" + submodule + "/" + submodules[submodule].split("/")[-1],
                     container_path=submodules[submodule],
                 )
         else:
diff --git a/installers/charm/osm-nbi/lib/charms/osm_libs/v0/utils.py b/installers/charm/osm-nbi/lib/charms/osm_libs/v0/utils.py
index df3da94..d739ba6 100644
--- a/installers/charm/osm-nbi/lib/charms/osm_libs/v0/utils.py
+++ b/installers/charm/osm-nbi/lib/charms/osm_libs/v0/utils.py
@@ -137,7 +137,7 @@
 
 # Increment this PATCH version before using `charmcraft publish-lib` or reset
 # to 0 if you are raising the major API version
-LIBPATCH = 3
+LIBPATCH = 5
 
 logger = logging.getLogger(__name__)
 
@@ -250,7 +250,7 @@
         if submodules:
             for submodule in submodules.keys():
                 self.sub_module_dict[submodule] = SubModule(
-                    sub_module_path=self.mount_path + "/" + submodule,
+                    sub_module_path=self.mount_path + "/" + submodule + "/" + submodules[submodule].split("/")[-1],
                     container_path=submodules[submodule],
                 )
         else:
diff --git a/installers/charm/osm-ng-ui/lib/charms/osm_libs/v0/utils.py b/installers/charm/osm-ng-ui/lib/charms/osm_libs/v0/utils.py
index df3da94..d739ba6 100644
--- a/installers/charm/osm-ng-ui/lib/charms/osm_libs/v0/utils.py
+++ b/installers/charm/osm-ng-ui/lib/charms/osm_libs/v0/utils.py
@@ -137,7 +137,7 @@
 
 # Increment this PATCH version before using `charmcraft publish-lib` or reset
 # to 0 if you are raising the major API version
-LIBPATCH = 3
+LIBPATCH = 5
 
 logger = logging.getLogger(__name__)
 
@@ -250,7 +250,7 @@
         if submodules:
             for submodule in submodules.keys():
                 self.sub_module_dict[submodule] = SubModule(
-                    sub_module_path=self.mount_path + "/" + submodule,
+                    sub_module_path=self.mount_path + "/" + submodule + "/" + submodules[submodule].split("/")[-1],
                     container_path=submodules[submodule],
                 )
         else:
diff --git a/installers/charm/osm-pol/lib/charms/osm_libs/v0/utils.py b/installers/charm/osm-pol/lib/charms/osm_libs/v0/utils.py
index df3da94..d739ba6 100644
--- a/installers/charm/osm-pol/lib/charms/osm_libs/v0/utils.py
+++ b/installers/charm/osm-pol/lib/charms/osm_libs/v0/utils.py
@@ -137,7 +137,7 @@
 
 # Increment this PATCH version before using `charmcraft publish-lib` or reset
 # to 0 if you are raising the major API version
-LIBPATCH = 3
+LIBPATCH = 5
 
 logger = logging.getLogger(__name__)
 
@@ -250,7 +250,7 @@
         if submodules:
             for submodule in submodules.keys():
                 self.sub_module_dict[submodule] = SubModule(
-                    sub_module_path=self.mount_path + "/" + submodule,
+                    sub_module_path=self.mount_path + "/" + submodule + "/" + submodules[submodule].split("/")[-1],
                     container_path=submodules[submodule],
                 )
         else:
diff --git a/installers/charm/osm-ro/lib/charms/osm_libs/v0/utils.py b/installers/charm/osm-ro/lib/charms/osm_libs/v0/utils.py
index df3da94..d739ba6 100644
--- a/installers/charm/osm-ro/lib/charms/osm_libs/v0/utils.py
+++ b/installers/charm/osm-ro/lib/charms/osm_libs/v0/utils.py
@@ -137,7 +137,7 @@
 
 # Increment this PATCH version before using `charmcraft publish-lib` or reset
 # to 0 if you are raising the major API version
-LIBPATCH = 3
+LIBPATCH = 5
 
 logger = logging.getLogger(__name__)
 
@@ -250,7 +250,7 @@
         if submodules:
             for submodule in submodules.keys():
                 self.sub_module_dict[submodule] = SubModule(
-                    sub_module_path=self.mount_path + "/" + submodule,
+                    sub_module_path=self.mount_path + "/" + submodule + "/" + submodules[submodule].split("/")[-1],
                     container_path=submodules[submodule],
                 )
         else:
diff --git a/installers/charm/osm-ro/src/charm.py b/installers/charm/osm-ro/src/charm.py
index 0c5ab9a..e112d4c 100755
--- a/installers/charm/osm-ro/src/charm.py
+++ b/installers/charm/osm-ro/src/charm.py
@@ -59,6 +59,7 @@
     "RO-SDN-ietfl2vpn": "/usr/lib/python3/dist-packages/osm_rosdn_ietfl2vpn",
     "RO-SDN-juniper_contrail": "/usr/lib/python3/dist-packages/osm_rosdn_juniper_contrail",
     "RO-SDN-odl_openflow": "/usr/lib/python3/dist-packages/osm_rosdn_odlof",
+    "RO-SDN-onos_openflow": "/usr/lib/python3/dist-packages/osm_rosdn_onosof",
     "RO-SDN-onos_vpls": "/usr/lib/python3/dist-packages/osm_rosdn_onos_vpls",
     "RO-VIM-aws": "/usr/lib/python3/dist-packages/osm_rovim_aws",
     "RO-VIM-azure": "/usr/lib/python3/dist-packages/osm_rovim_azure",
