aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/cli/hicnc.c
diff options
context:
space:
mode:
authorLuca Muscariello <lumuscar@cisco.com>2022-06-09 21:34:09 +0200
committerLuca Muscariello <muscariello@ieee.org>2022-06-30 10:47:50 +0200
commit6b94663b2455e212009a544ae23bb6a8c55407f8 (patch)
tree0af780ce5eeb1009fd24b8af8af08e8368eda3bd /hicn-light/src/hicn/cli/hicnc.c
parenta1ac96f497719b897793ac14b287cb8d840651c1 (diff)
refactor(lib, hicn-light, vpp, hiperf): HICN-723
- move infra data structure into the shared lib - new packet cache using double hashing and lookup on prefix suffix - testing updates - authenticated requests using interest manifests Co-authored-by: Mauro Sardara <msardara@cisco.com> Co-authored-by: Jordan Augé <jordan.auge+fdio@cisco.com> Co-authored-by: Michele Papalini <micpapal@cisco.com> Co-authored-by: Olivier Roques <oroques+fdio@cisco.com> Co-authored-by: Enrico Loparco <eloparco@cisco.com> Change-Id: Iaddebfe6aa5279ea8553433b0f519578f6b9ccd9 Signed-off-by: Luca Muscariello <muscariello@ieee.org>
Diffstat (limited to 'hicn-light/src/hicn/cli/hicnc.c')
-rw-r--r--hicn-light/src/hicn/cli/hicnc.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/hicn-light/src/hicn/cli/hicnc.c b/hicn-light/src/hicn/cli/hicnc.c
index d14093b6b..3074016c5 100644
--- a/hicn-light/src/hicn/cli/hicnc.c
+++ b/hicn-light/src/hicn/cli/hicnc.c
@@ -25,6 +25,7 @@
#include "../config/parse.h"
#include <hicn/util/log.h>
#include <hicn/util/sstrncpy.h>
+#include <hicn/ctrl/hicn-light-ng.h>
#define PORT 9695
@@ -359,6 +360,70 @@ int main(int argc, char *const *argv) {
rc = hc_subscription_delete(s, &command.object.subscription);
break;
+ case OBJECT_STATS:
+ switch (command.action) {
+ case ACTION_GET:
+ rc = hc_stats_get(s, &data);
+ if (rc < 0) break;
+
+ hc_stats_snprintf(buf, MAX_LEN, (hicn_light_stats_t *)data->buffer);
+ INFO("\n%s", buf);
+ break;
+
+ case ACTION_LIST:
+ rc = hc_stats_list(s, &data);
+ if (rc < 0) break;
+
+ cmd_stats_list_item_t *conn_stats =
+ (cmd_stats_list_item_t *)data->buffer;
+ cmd_stats_list_item_t *end =
+ (cmd_stats_list_item_t *)(data->buffer +
+ data->size * data->out_element_size);
+ while (conn_stats < end) {
+ INFO("Connection #%d:", conn_stats->id);
+ INFO("\tinterests received: %d pkts (%d bytes)",
+ conn_stats->stats.interests.rx_pkts,
+ conn_stats->stats.interests.rx_bytes);
+ INFO("\tinterests transmitted: %d pkts (%d bytes)",
+ conn_stats->stats.interests.tx_pkts,
+ conn_stats->stats.interests.tx_bytes);
+ INFO("\tdata received: %d pkts (%d bytes)",
+ conn_stats->stats.data.rx_pkts,
+ conn_stats->stats.data.rx_bytes);
+ INFO("\tdata transmitted: %d pkts (%d bytes)",
+ conn_stats->stats.data.tx_pkts,
+ conn_stats->stats.data.tx_bytes);
+
+ conn_stats++;
+ }
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+#ifdef TEST_FACE_CREATION
+ case OBJECT_FACE:
+ switch (command.action) {
+ case ACTION_CREATE: {
+ hc_face_t face = {0};
+ face.face.type = FACE_TYPE_UDP;
+ face.face.family = AF_INET;
+ face.face.local_addr = IPV4_LOOPBACK;
+ face.face.remote_addr = IPV4_LOOPBACK;
+ face.face.local_port = 9696;
+ face.face.remote_port = 9696;
+
+ rc = hc_face_create(s, &face);
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+#endif
+
default:
break;
}