diff --git a/bbf_plugin/atm.c b/bbf_plugin/atm.c
index 26ba4fa4565d7621ee5ce5dfef33a41875b46266..56d4bf4344e5b0c4ec261ab9d9f3a85a5a1016f4 100644
--- a/bbf_plugin/atm.c
+++ b/bbf_plugin/atm.c
@@ -351,6 +351,12 @@ static int set_atm_alias(char *refparam, struct dmctx *ctx, void *data, char *in
 	return bbf_set_alias(ctx, ((struct dm_data *)data)->config_section, "atmlinkalias", instance, value);
 }
 
+static int get_atm_LinkNumberOfEntries(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
+{
+	int cnt = get_number_of_entries(ctx, data, instance, browseAtmLinkInst);
+	dmasprintf(value, "%d", cnt);
+	return 0;
+}
 /**********************************************************************************************************************************
 *                                            OBJ & LEAF DEFINITION
 ***********************************************************************************************************************************/
@@ -363,6 +369,7 @@ DMLEAF tATMLinkParams[] = {
 {"Status", &DMREAD, DMT_STRING, get_atm_status, NULL, BBFDM_BOTH},
 {"LowerLayers", &DMWRITE, DMT_STRING, get_atm_lower_layer, set_atm_lower_layer, BBFDM_BOTH, DM_FLAG_REFERENCE},
 {"LinkType", &DMWRITE, DMT_STRING, get_atm_link_type, set_atm_link_type, BBFDM_BOTH},
+{"LinkNumberOfEntries", &DMREAD, DMT_UNINT, get_atm_LinkNumberOfEntries, NULL, BBFDM_BOTH},
 {"DestinationAddress", &DMWRITE, DMT_STRING, get_atm_destination_address, set_atm_destination_address, BBFDM_BOTH},
 {"Encapsulation", &DMWRITE, DMT_STRING, get_atm_encapsulation, set_atm_encapsulation, BBFDM_BOTH},
 {0}
diff --git a/bbf_plugin/ptm.c b/bbf_plugin/ptm.c
index 3e995351e02777e2ba7adad670328ca1852a7653..f71c768762afafed869f28cb5012850f1a2bfa4e 100644
--- a/bbf_plugin/ptm.c
+++ b/bbf_plugin/ptm.c
@@ -241,6 +241,12 @@ static int get_ptm_stats_pack_sent(char *refparam, struct dmctx *ctx, void *data
 	return ubus_ptm_stats(value, "tx_packets", data);
 }
 
+static int get_ptm_LinkNumberOfEntries(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
+{
+	int cnt = get_number_of_entries(ctx, data, instance, browsePtmLinkInst);
+	dmasprintf(value, "%d", cnt);
+	return 0;
+}
 /**********************************************************************************************************************************
 *                                            OBJ & LEAF DEFINITION
 ***********************************************************************************************************************************/
@@ -262,6 +268,7 @@ DMLEAF tPTMLinkParams[] = {
 {"Alias", &DMWRITE, DMT_STRING, get_ptm_alias, set_ptm_alias, BBFDM_BOTH, DM_FLAG_UNIQUE},
 {"Name", &DMREAD, DMT_STRING, get_ptm_link_name, NULL, BBFDM_BOTH, DM_FLAG_UNIQUE|DM_FLAG_LINKER},
 {"LowerLayers", &DMWRITE, DMT_STRING, get_ptm_lower_layer, set_ptm_lower_layer, BBFDM_BOTH, DM_FLAG_REFERENCE},
+{"LinkNumberOfEntries", &DMREAD, DMT_UNINT, get_ptm_LinkNumberOfEntries, NULL, BBFDM_BOTH},
 {0}
 };
 
diff --git a/gitlab-ci/install-dependencies.sh b/gitlab-ci/install-dependencies.sh
index c2504d80f2421349510e909d3aa657f8e332273c..faaf0ebab2b740a1fe87e383d4369a35f605b235 100755
--- a/gitlab-ci/install-dependencies.sh
+++ b/gitlab-ci/install-dependencies.sh
@@ -21,3 +21,12 @@ make PLATFORM=TEST
 cp -a common.h xdsl.h xtm.h /usr/include
 cp -a libdsl*.so* /usr/lib
 sudo ldconfig
+
+# json-editor
+cd /opt/dev
+git clone https://dev.iopsys.eu/iopsys/json-editor.git
+cd json-editor
+git checkout 44b32937a062ec4ffc9f7355841dc94ab6efa50f
+cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE:String="Release" .
+make
+make install