diff --git a/.gitlab/ci/.containerlab-ci.yml b/.gitlab/ci/.containerlab-ci.yml
index 0c2c18c7bee3cc486eabf75020c92293876ebe70..7123202ce1f3e02e744ef925e4c141d256ae4843 100644
--- a/.gitlab/ci/.containerlab-ci.yml
+++ b/.gitlab/ci/.containerlab-ci.yml
@@ -42,7 +42,7 @@ variables:
 containerlab:template:integration:
   extends: .containerlab_template
   variables:
-    CLAB_TEMPLATE: "${CI_PROJECT_DIR}/test/containerlab/int01.clab.tmpl.yml"
+    CLAB_TEMPLATE: "${CI_PROJECT_DIR}/test/containerlab/complex-1.0.clab.tmpl.yml"
 
 
 containerlab:deploy:integration:
@@ -54,7 +54,12 @@ containerlab:deploy:integration:
       echo -e "\
       GOSDN_HTTP_PORT=$(docker_host_port 8080 clab-${CLAB_NAME}-gosdn)\n\
       GOSDN_GRPC_PORT=$(docker_host_port 55055 clab-${CLAB_NAME}-gosdn)\n\
-      CEOS1_PORT=$(docker_host_port 6030 clab-${CLAB_NAME}-ceos1)" \
+      CEOS1_1_PORT=$(docker_host_port 6030 clab-${CLAB_NAME}-ceos1-1)\n\
+      CEOS1_2_PORT=$(docker_host_port 6030 clab-${CLAB_NAME}-ceos1-2)\n\
+      CEOS2_1_1_PORT=$(docker_host_port 6030 clab-${CLAB_NAME}-ceos2-1-1)\n\
+      CEOS2_1_2_PORT=$(docker_host_port 6030 clab-${CLAB_NAME}-ceos2-1-2)\n\
+      CEOS2_2_1_PORT=$(docker_host_port 6030 clab-${CLAB_NAME}-ceos2-2-1)\n\
+      CEOS2_2_2_PORT=$(docker_host_port 6030 clab-${CLAB_NAME}-ceos2-2-2)" \
       > ${CI_PROJECT_DIR}/build.env
     - cat ${CI_PROJECT_DIR}/build.env
   artifacts:
diff --git a/.gitlab/ci/.integration-test.yml b/.gitlab/ci/.integration-test.yml
index 49ce918e3f88db7fff8fccbdd156c9f8f828d817..64873357b3e3df9a954120b76bcf63d1620c59b9 100644
--- a/.gitlab/ci/.integration-test.yml
+++ b/.gitlab/ci/.integration-test.yml
@@ -6,7 +6,7 @@
   variables:
     GOSDN_LOG: "nolog"
     GOSDN_TEST_API_ENDPOINT: "141.100.70.178:${GOSDN_GRPC_PORT}"
-    GOSDN_TEST_ENDPOINT: "141.100.70.178:${CEOS1_PORT}"
+    GOSDN_TEST_ENDPOINT: "141.100.70.178:${CEOS1_1_PORT}"
     GOSDN_TEST_USER: "admin"
     GOSDN_TEST_PASSWORD: "admin"
 
diff --git a/test/containerlab/complex-1.0.clab.tmpl.yml b/test/containerlab/complex-1.0.clab.tmpl.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cdec98b888e1aff0bd56b69cd863f10aa928ef21
--- /dev/null
+++ b/test/containerlab/complex-1.0.clab.tmpl.yml
@@ -0,0 +1,79 @@
+# topology documentation: http://containerlab.srlinux.dev/lab-examples/srl-ceos/
+name: @@CLAB_NAME@@
+
+mgmt:
+  network: @@CLAB_NAME@@
+  ipv4_subnet: @@CLAB_MGMT_SUBNET@@
+
+topology:
+  nodes:
+    gosdn:
+      kind: linux
+      image: @@GOSDN_CONTAINER_IMAGE@@
+      ports:
+        - 0:8080
+        - 0:55055
+    ceos1-1:
+      kind: ceos
+      image: @@CEOS_CONTAINER_IMAGE@@
+      ports:
+        - 0:6030
+    ceos1-2:
+      kind: ceos
+      image: @@CEOS_CONTAINER_IMAGE@@
+      ports:
+        - 0:6030
+    ceos2-1-1:
+      kind: ceos
+      image: @@CEOS_CONTAINER_IMAGE@@
+      ports:
+        - 0:6030
+    ceos2-1-2:
+      kind: ceos
+      image: @@CEOS_CONTAINER_IMAGE@@
+      ports:
+        - 0:6030
+    ceos2-2-1:
+      kind: ceos
+      image: @@CEOS_CONTAINER_IMAGE@@
+      ports:
+        - 0:6030
+    ceos2-2-2:
+      kind: ceos
+      image: @@CEOS_CONTAINER_IMAGE@@
+      ports:
+        - 0:6030
+    server3-1-1:
+      kind: linux
+      image: alpine:latest
+    server3-1-2:
+      kind: linux
+      image: alpine:latest
+    server3-1-3:
+      kind: linux
+      image: alpine:latest
+    server3-2-1:
+      kind: linux
+      image: alpine:latest
+    server3-2-2:
+      kind: linux
+      image: alpine:latest
+
+
+  links:
+    - endpoints: ["ceos1-1:eth1", "ceos2-1-1:eth1"]
+    - endpoints: ["ceos1-1:eth2", "ceos2-1-2:eth1"]
+    - endpoints: ["ceos1-1:eth3", "ceos2-2-1:eth1"]
+    - endpoints: ["ceos1-1:eth4", "ceos2-2-2:eth1"]
+    - endpoints: ["ceos1-2:eth1", "ceos2-1-1:eth2"]
+    - endpoints: ["ceos1-2:eth2", "ceos2-1-2:eth2"]
+    - endpoints: ["ceos1-2:eth3", "ceos2-2-1:eth2"]
+    - endpoints: ["ceos1-2:eth4", "ceos2-2-2:eth2"]
+    - endpoints: ["ceos2-1-1:eth3", "server3-1-1:eth1"]
+    - endpoints: ["ceos2-1-1:eth4", "server3-1-2:eth1"]
+    - endpoints: ["ceos2-1-2:eth3", "server3-1-2:eth2"]
+    - endpoints: ["ceos2-1-2:eth4", "server3-1-3:eth1"]
+    - endpoints: ["ceos2-2-1:eth3", "server3-2-1:eth1"]
+    - endpoints: ["ceos2-2-1:eth4", "server3-2-2:eth1"]
+    - endpoints: ["ceos2-2-2:eth3d", "server3-2-1:eth2"]
+    - endpoints: ["ceos2-2-2:eth4", "server3-2-2:eth2"]
diff --git a/test/containerlab/complex-1.0.png b/test/containerlab/complex-1.0.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e68e19f8fee69e1e78d632339971f4c3f853e7a
Binary files /dev/null and b/test/containerlab/complex-1.0.png differ