diff --git a/src/plugins_types.h b/src/plugins_types.h
index 611892a..366a001 100644
--- a/src/plugins_types.h
+++ b/src/plugins_types.h
@@ -993,6 +993,12 @@
         const struct lyd_value *val2);
 
 /**
+ * @brief Implementation of ::lyplg_type_sort_clb for the built-in signed integer types.
+ */
+LIBYANG_API_DECL int lyplg_type_sort_int(const struct ly_ctx *ctx, const struct lyd_value *val1,
+        const struct lyd_value *val2);
+
+/**
  * @brief Implementation of ::lyplg_type_print_clb for the built-in signed integer types.
  */
 LIBYANG_API_DECL const void *lyplg_type_print_int(const struct ly_ctx *ctx, const struct lyd_value *value,
@@ -1012,6 +1018,12 @@
         const struct lyd_value *val2);
 
 /**
+ * @brief Implementation of ::lyplg_type_sort_clb for the built-in unsigned integer types.
+ */
+LIBYANG_API_DECL int lyplg_type_sort_uint(const struct ly_ctx *ctx, const struct lyd_value *val1,
+        const struct lyd_value *val2);
+
+/**
  * @brief Implementation of ::lyplg_type_print_clb for the built-in unsigned integer types.
  */
 LIBYANG_API_DECL const void *lyplg_type_print_uint(const struct ly_ctx *ctx, const struct lyd_value *value,
diff --git a/src/plugins_types/integer.c b/src/plugins_types/integer.c
index 68178d1..73c4533 100644
--- a/src/plugins_types/integer.c
+++ b/src/plugins_types/integer.c
@@ -206,6 +206,52 @@
     return LY_SUCCESS;
 }
 
+LIBYANG_API_DEF int
+lyplg_type_sort_int(const struct ly_ctx *UNUSED(ctx), const struct lyd_value *val1, const struct lyd_value *val2)
+{
+    switch (val1->realtype->basetype) {
+    case LY_TYPE_INT8:
+        if (val1->int8 < val2->int8) {
+            return -1;
+        } else if (val1->int8 > val2->int8) {
+            return 1;
+        } else {
+            return 0;
+        }
+        break;
+    case LY_TYPE_INT16:
+        if (val1->int16 < val2->int16) {
+            return -1;
+        } else if (val1->int16 > val2->int16) {
+            return 1;
+        } else {
+            return 0;
+        }
+        break;
+    case LY_TYPE_INT32:
+        if (val1->int32 < val2->int32) {
+            return -1;
+        } else if (val1->int32 > val2->int32) {
+            return 1;
+        } else {
+            return 0;
+        }
+        break;
+    case LY_TYPE_INT64:
+        if (val1->int64 < val2->int64) {
+            return -1;
+        } else if (val1->int64 > val2->int64) {
+            return 1;
+        } else {
+            return 0;
+        }
+        break;
+    default:
+        break;
+    }
+    return 0;
+}
+
 LIBYANG_API_DEF const void *
 lyplg_type_print_int(const struct ly_ctx *UNUSED(ctx), const struct lyd_value *value, LY_VALUE_FORMAT format,
         void *UNUSED(prefix_data), ly_bool *dynamic, size_t *value_len)
@@ -400,6 +446,52 @@
     return LY_SUCCESS;
 }
 
+LIBYANG_API_DEF int
+lyplg_type_sort_uint(const struct ly_ctx *UNUSED(ctx), const struct lyd_value *val1, const struct lyd_value *val2)
+{
+    switch (val1->realtype->basetype) {
+    case LY_TYPE_UINT8:
+        if (val1->uint8 < val2->uint8) {
+            return -1;
+        } else if (val1->uint8 > val2->uint8) {
+            return 1;
+        } else {
+            return 0;
+        }
+        break;
+    case LY_TYPE_UINT16:
+        if (val1->uint16 < val2->uint16) {
+            return -1;
+        } else if (val1->uint16 > val2->uint16) {
+            return 1;
+        } else {
+            return 0;
+        }
+        break;
+    case LY_TYPE_UINT32:
+        if (val1->uint32 < val2->uint32) {
+            return -1;
+        } else if (val1->uint32 > val2->uint32) {
+            return 1;
+        } else {
+            return 0;
+        }
+        break;
+    case LY_TYPE_UINT64:
+        if (val1->uint64 < val2->uint64) {
+            return -1;
+        } else if (val1->uint64 > val2->uint64) {
+            return 1;
+        } else {
+            return 0;
+        }
+        break;
+    default:
+        break;
+    }
+    return 0;
+}
+
 LIBYANG_API_DEF const void *
 lyplg_type_print_uint(const struct ly_ctx *UNUSED(ctx), const struct lyd_value *value, LY_VALUE_FORMAT format,
         void *UNUSED(prefix_data), ly_bool *dynamic, size_t *value_len)
@@ -473,7 +565,7 @@
         .plugin.store = lyplg_type_store_uint,
         .plugin.validate = NULL,
         .plugin.compare = lyplg_type_compare_uint,
-        .plugin.sort = NULL,
+        .plugin.sort = lyplg_type_sort_uint,
         .plugin.print = lyplg_type_print_uint,
         .plugin.duplicate = lyplg_type_dup_simple,
         .plugin.free = lyplg_type_free_simple,
@@ -487,7 +579,7 @@
         .plugin.store = lyplg_type_store_uint,
         .plugin.validate = NULL,
         .plugin.compare = lyplg_type_compare_uint,
-        .plugin.sort = NULL,
+        .plugin.sort = lyplg_type_sort_uint,
         .plugin.print = lyplg_type_print_uint,
         .plugin.duplicate = lyplg_type_dup_simple,
         .plugin.free = lyplg_type_free_simple,
@@ -501,7 +593,7 @@
         .plugin.store = lyplg_type_store_uint,
         .plugin.validate = NULL,
         .plugin.compare = lyplg_type_compare_uint,
-        .plugin.sort = NULL,
+        .plugin.sort = lyplg_type_sort_uint,
         .plugin.print = lyplg_type_print_uint,
         .plugin.duplicate = lyplg_type_dup_simple,
         .plugin.free = lyplg_type_free_simple,
@@ -515,7 +607,7 @@
         .plugin.store = lyplg_type_store_uint,
         .plugin.validate = NULL,
         .plugin.compare = lyplg_type_compare_uint,
-        .plugin.sort = NULL,
+        .plugin.sort = lyplg_type_sort_uint,
         .plugin.print = lyplg_type_print_uint,
         .plugin.duplicate = lyplg_type_dup_simple,
         .plugin.free = lyplg_type_free_simple,
@@ -529,7 +621,7 @@
         .plugin.store = lyplg_type_store_int,
         .plugin.validate = NULL,
         .plugin.compare = lyplg_type_compare_int,
-        .plugin.sort = NULL,
+        .plugin.sort = lyplg_type_sort_int,
         .plugin.print = lyplg_type_print_int,
         .plugin.duplicate = lyplg_type_dup_simple,
         .plugin.free = lyplg_type_free_simple,
@@ -543,7 +635,7 @@
         .plugin.store = lyplg_type_store_int,
         .plugin.validate = NULL,
         .plugin.compare = lyplg_type_compare_int,
-        .plugin.sort = NULL,
+        .plugin.sort = lyplg_type_sort_int,
         .plugin.print = lyplg_type_print_int,
         .plugin.duplicate = lyplg_type_dup_simple,
         .plugin.free = lyplg_type_free_simple,
@@ -557,7 +649,7 @@
         .plugin.store = lyplg_type_store_int,
         .plugin.validate = NULL,
         .plugin.compare = lyplg_type_compare_int,
-        .plugin.sort = NULL,
+        .plugin.sort = lyplg_type_sort_int,
         .plugin.print = lyplg_type_print_int,
         .plugin.duplicate = lyplg_type_dup_simple,
         .plugin.free = lyplg_type_free_simple,
@@ -571,7 +663,7 @@
         .plugin.store = lyplg_type_store_int,
         .plugin.validate = NULL,
         .plugin.compare = lyplg_type_compare_int,
-        .plugin.sort = NULL,
+        .plugin.sort = lyplg_type_sort_int,
         .plugin.print = lyplg_type_print_int,
         .plugin.duplicate = lyplg_type_dup_simple,
         .plugin.free = lyplg_type_free_simple,
