From 45bc09ae553e7ac5bf6cd7ab2e77e7f6d0877596 Mon Sep 17 00:00:00 2001 From: Jordan Augé Date: Tue, 12 Nov 2019 00:15:11 +0100 Subject: [HICN-395] Static face/route maintainance though face manager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I8f2287a262412bacc50f3c89756ec9fd6ce30d33 Signed-off-by: Jordan Augé --- ctrl/libhicnctrl/src/api.c | 17 +++++++++-------- ctrl/libhicnctrl/src/cli.c | 2 +- ctrl/libhicnctrl/src/face.c | 1 + ctrl/libhicnctrl/src/route.c | 10 ++++++++++ 4 files changed, 21 insertions(+), 9 deletions(-) (limited to 'ctrl/libhicnctrl/src') diff --git a/ctrl/libhicnctrl/src/api.c b/ctrl/libhicnctrl/src/api.c index 6c9b54a92..74a8821e2 100644 --- a/ctrl/libhicnctrl/src/api.c +++ b/ctrl/libhicnctrl/src/api.c @@ -715,7 +715,6 @@ hc_sock_process(hc_sock_t * s, hc_data_t ** data) available -= num_chunks * s->cur_request->data->in_element_size; s->roff += num_chunks * s->cur_request->data->in_element_size; if (s->remaining == 0) { - printf("done, sock map remove\n"); if (hc_sock_map_remove(s->map, s->cur_request->seq, NULL) < 0) { ERROR("[hc_sock_process] Error removing request from map"); return -1; @@ -856,7 +855,6 @@ hc_execute_command(hc_sock_t * s, hc_msg_t * msg, size_t msg_len, ERROR("[hc_execute_command] Could not get next sequence number"); goto ERR_SEQ; } - printf("Sending message with seq %d\n", seq); /* Create state used to process the request */ hc_sock_request_t * request = NULL; @@ -867,7 +865,6 @@ hc_execute_command(hc_sock_t * s, hc_msg_t * msg, size_t msg_len, } /* Add state to map */ - printf("sock map add\n"); if (hc_sock_map_add(s->map, seq, request) < 0) { ERROR("[hc_execute_command] Error adding request state to map"); goto ERR_MAP; @@ -1815,9 +1812,9 @@ hc_route_list(hc_sock_t * s, hc_data_t ** pdata) } int -hc_route_list_async(hc_sock_t * s, hc_data_t ** pdata) +hc_route_list_async(hc_sock_t * s) { - return _hc_route_list(s, pdata, true); + return _hc_route_list(s, NULL, true); } /* ROUTE PARSE */ @@ -1978,6 +1975,8 @@ hc_face_to_connection(const hc_face_t * face, hc_connection_t * connection, bool } else { memset(connection->name, 0, SYMBOLIC_NAME_LEN); } + snprintf(connection->interface_name, INTERFACE_LEN, "%s", + f->netdevice.name); break; default: return -1; @@ -2366,7 +2365,7 @@ hc_connection_parse_to_face(void * in, hc_face_t * face) int -hc_face_list_async(hc_sock_t * s) //, hc_data_t ** pdata) +hc_face_list_async(hc_sock_t * s) { struct { header_control_message hdr; @@ -2451,9 +2450,10 @@ hc_face_snprintf(char * s, size_t size, hc_face_t * face) if (rc < 0) return rc; - return snprintf(s, size, "[#%d %s] %s %s %s %s/%s (%s)", + return snprintf(s, size, "[#%d %s] %s %s %s %s %s/%s (%s)", face->id, face->name, + face->face.netdevice.index != NETDEVICE_UNDEFINED_INDEX ? face->face.netdevice.name : "*", face_type_str[face->face.type], local, remote, @@ -2461,9 +2461,10 @@ hc_face_snprintf(char * s, size_t size, hc_face_t * face) face_state_str[face->face.admin_state], tags); #else - return snprintf(s, size, "[#%d %s] %s %s %s %s/%s", + return snprintf(s, size, "[#%d %s] %s %s %s %s %s/%s", face->id, face->name, + face->face.netdevice.index != NETDEVICE_UNDEFINED_INDEX ? face->face.netdevice.name : "*", face_type_str[face->face.type], local, remote, diff --git a/ctrl/libhicnctrl/src/cli.c b/ctrl/libhicnctrl/src/cli.c index a171f7045..879454c3a 100644 --- a/ctrl/libhicnctrl/src/cli.c +++ b/ctrl/libhicnctrl/src/cli.c @@ -379,7 +379,7 @@ parse_options(int argc, char *argv[], hc_command_t * command) case OBJECT_FACE: switch(command->action) { case ACTION_CREATE: - if ((argc - optind != 6) && (argc - optind != 7)) { + if ((argc - optind != 5) && (argc - optind != 6)) { usage_face_create(argv[0], true, false); goto ERR_PARAM; } diff --git a/ctrl/libhicnctrl/src/face.c b/ctrl/libhicnctrl/src/face.c index 41ff58f81..0e25890da 100644 --- a/ctrl/libhicnctrl/src/face.c +++ b/ctrl/libhicnctrl/src/face.c @@ -129,6 +129,7 @@ netdevice_get_name(const netdevice_t * netdevice, const char ** name) int netdevice_set_name(netdevice_t * netdevice, const char * name) { + memset(netdevice->name, 0, sizeof(netdevice->name)); int rc = snprintf(netdevice->name, IFNAMSIZ, "%s", name); if (rc < 0) return -1; diff --git a/ctrl/libhicnctrl/src/route.c b/ctrl/libhicnctrl/src/route.c index 61434871b..703b4763f 100644 --- a/ctrl/libhicnctrl/src/route.c +++ b/ctrl/libhicnctrl/src/route.c @@ -43,6 +43,16 @@ hicn_route_create(ip_prefix_t * prefix, face_id_t face_id, route_cost_t cost) return route; } +hicn_route_t * +hicn_route_dup(const hicn_route_t * route) +{ + hicn_route_t * new_route = malloc(sizeof(hicn_route_t)); + if (!route) + return NULL; + memcpy(new_route, route, sizeof(hicn_route_t)); + return new_route; +} + void hicn_route_free(hicn_route_t * route) { free(route); -- cgit 1.2.3-korg