diff --git a/rmnetctl/cli/rmnetcli.c b/rmnetctl/cli/rmnetcli.c
index e47d556..f59c77b 100644
--- a/rmnetctl/cli/rmnetcli.c
+++ b/rmnetctl/cli/rmnetcli.c
@@ -374,15 +374,16 @@
 			_RMNETCLI_CHECKNULL(argv[1]);
 			uint32_t flags = 0;
 			uint16_t mux_id = 0;
-			uint16_t agg_count = 0;
+			uint8_t agg_count = 0;
 			uint16_t agg_size = 0;
 			uint32_t agg_time = 0;
+			uint8_t features = 0;
 
 			return_code = rtrmnet_ctl_getvnd(handle, argv[1],
 							 &error_number,
 							 &mux_id, &flags,
 							 &agg_count, &agg_size,
-							 &agg_time);
+							 &agg_time, &features);
 			if (return_code == RMNETCTL_API_SUCCESS) {
 				printf("Configuration for device %s:\n", argv[1]);
 				printf("\tMux id: %d\n", mux_id);
@@ -391,6 +392,7 @@
 				printf("\t\tPacket limit: %d\n", agg_count);
 				printf("\t\tByte limit: %d\n", agg_size);
 				printf("\t\tTime limit (ns): %d\n", agg_time);
+				printf("\t\tFeatures : 0x%02x\n", features);
 			}
 		} else if (!strcmp(*argv, "dellink")) {
 			_RMNETCLI_CHECKNULL(argv[1]);
diff --git a/rmnetctl/inc/librmnetctl.h b/rmnetctl/inc/librmnetctl.h
index 94fc51b..b621528 100644
--- a/rmnetctl/inc/librmnetctl.h
+++ b/rmnetctl/inc/librmnetctl.h
@@ -604,6 +604,8 @@
  * for uplink aggregation
  * @param agg_time Where to store the value of the node's maximum time limit
  * for uplink aggregation
+ * @param agg_time Where to store the value of the node's features
+ * for uplink aggregation
  * @return RMNETCTL_SUCCESS if successful
  * @return RMNETCTL_LIB_ERR if there was a library error. Check error_code
  * @return RMNETCTL_KERNEL_ERR if there was an error in the kernel.
@@ -612,8 +614,9 @@
  */
 int rtrmnet_ctl_getvnd(rmnetctl_hndl_t *hndl, char *vndname,
 		       uint16_t *error_code, uint16_t *mux_id,
-		       uint32_t *flagconfig, uint16_t *agg_count,
-		       uint16_t *agg_size, uint32_t *agg_time);
+		       uint32_t *flagconfig, uint8_t *agg_count,
+		       uint16_t *agg_size, uint32_t *agg_time,
+		       uint8_t *features);
 
 /* @brief Public API to bridge a vnd and device
  * @details Message type is RTM_NEWLINK
@@ -652,6 +655,7 @@
 					  uint8_t packet_count,
 					  uint16_t byte_count,
 					  uint32_t time_limit,
+					  uint8_t features,
 					  uint16_t *error_code);
 
 int rtrmnet_activate_flow(rmnetctl_hndl_t *hndl,
diff --git a/rmnetctl/src/librmnetctl.c b/rmnetctl/src/librmnetctl.c
index 3c717b7..691d51f 100644
--- a/rmnetctl/src/librmnetctl.c
+++ b/rmnetctl/src/librmnetctl.c
@@ -98,7 +98,8 @@
 
 struct rmnetctl_uplink_params {
 	uint16_t byte_count;
-	uint16_t packet_count;
+	uint8_t packet_count;
+	uint8_t features;
 	uint32_t time_limit;
 };
 
@@ -1512,8 +1513,9 @@
 
 int rtrmnet_ctl_getvnd(rmnetctl_hndl_t *hndl, char *vndname,
 		       uint16_t *error_code, uint16_t *mux_id,
-		       uint32_t *flagconfig, uint16_t *agg_count,
-		       uint16_t *agg_size, uint32_t *agg_time)
+		       uint32_t *flagconfig, uint8_t *agg_count,
+		       uint16_t *agg_size, uint32_t *agg_time,
+		       uint8_t *features)
 {
 	struct nlmsg req;
 	struct nlmsghdr *resp;
@@ -1602,10 +1604,16 @@
 
 		ul_agg = (struct rmnetctl_uplink_params *)
 			 RTA_DATA(tb[RMNETCTL_IFLA_UPLINK_PARAMS]);
-		if (agg_count)
-			*agg_count = ul_agg->packet_count;
+
 		if (agg_size)
 			*agg_size = ul_agg->byte_count;
+
+		if (agg_count)
+			*agg_count = ul_agg->packet_count;
+
+		if (features)
+			*features = ul_agg->features;
+
 		if (agg_time)
 			*agg_time = ul_agg->time_limit;
 	}
@@ -1668,6 +1676,7 @@
 					  uint8_t packet_count,
 					  uint16_t byte_count,
 					  uint32_t time_limit,
+					  uint8_t features,
 					  uint16_t *error_code)
 {
 	struct nlmsg req;
@@ -1732,6 +1741,7 @@
 
 	uplink_params.byte_count = byte_count;
 	uplink_params.packet_count = packet_count;
+	uplink_params.features = features;
 	uplink_params.time_limit = time_limit;
 	rc = rta_put(&req, &reqsize, RMNETCTL_IFLA_UPLINK_PARAMS,
 		     sizeof(uplink_params), &uplink_params);
