diff options
Diffstat (limited to 'ctrl/libhicnctrl/examples')
-rw-r--r-- | ctrl/libhicnctrl/examples/create_face.c | 191 | ||||
-rw-r--r-- | ctrl/libhicnctrl/examples/update_priority.c | 61 |
2 files changed, 124 insertions, 128 deletions
diff --git a/ctrl/libhicnctrl/examples/create_face.c b/ctrl/libhicnctrl/examples/create_face.c index 5f92f5906..ebd451de1 100644 --- a/ctrl/libhicnctrl/examples/create_face.c +++ b/ctrl/libhicnctrl/examples/create_face.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Cisco and/or its affiliates. + * Copyright (c) 2021 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: @@ -22,125 +22,122 @@ */ #include <stdlib.h> -#include <sys/types.h> // getifaddrs -#include <ifaddrs.h> // getifaddrs +#include <sys/types.h> // getifaddrs +#include <ifaddrs.h> // getifaddrs #include <stdio.h> -#include <string.h> /* for strncpy */ -#include <sys/socket.h> // socket -#include <sys/ioctl.h> // ioctl +#include <sys/socket.h> // socket +#include <sys/ioctl.h> // ioctl #include <unistd.h> #include <hicn/ctrl.h> #include <hicn/util/log.h> -int get_local_info(char * if_name, ip_address_t * local_ip) { - struct ifaddrs *addrs; - struct ifreq ifr = { - .ifr_addr.sa_family = AF_INET, - }; - int ret = -1; - - int fd = socket(AF_INET, SOCK_DGRAM, 0); - - getifaddrs(&addrs); - - for (struct ifaddrs * tmp = addrs; tmp; tmp = tmp->ifa_next) { - if (!tmp->ifa_addr || tmp->ifa_addr->sa_family != AF_PACKET) - continue; - if (strcmp(tmp->ifa_name, "lo") == 0) - continue; - snprintf(if_name, IFNAMSIZ, "%s", tmp->ifa_name); - - snprintf(ifr.ifr_name, IFNAMSIZ, "%s", tmp->ifa_name); - if (ioctl(fd, SIOCGIFADDR, &ifr) == -1) { - //perror("ioctl"); - continue; - } - - *local_ip = IP_ADDRESS_EMPTY; - local_ip->v4.as_inaddr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; - if (ip_address_empty(local_ip)) - continue; - - ret = 0; - break; - } - - freeifaddrs(addrs); - close(fd); - return ret; -} +int get_local_info(char *if_name, ip_address_t *local_ip) { + struct ifaddrs *addrs; + struct ifreq ifr = { + .ifr_addr.sa_family = AF_INET, + }; + int ret = -1; -int main() { - char remote_ip_str[INET_ADDRSTRLEN] = "1.1.1.1"; + int fd = socket(AF_INET, SOCK_DGRAM, 0); - ip_address_t local_ip; - ip_address_t remote_ip; - char if_name[IFNAMSIZ]; + getifaddrs(&addrs); - /* Retrieving local info */ + for (struct ifaddrs *tmp = addrs; tmp; tmp = tmp->ifa_next) { + if (!tmp->ifa_addr || tmp->ifa_addr->sa_family != AF_PACKET) continue; + if (strcmp(tmp->ifa_name, "lo") == 0) continue; + snprintf(if_name, IFNAMSIZ, "%s", tmp->ifa_name); - if (get_local_info(if_name, &local_ip) < 0) { - DEBUG("Error getting local information"); - goto ERR_INIT; + snprintf(ifr.ifr_name, IFNAMSIZ, "%s", tmp->ifa_name); + if (ioctl(fd, SIOCGIFADDR, &ifr) == -1) { + // perror("ioctl"); + continue; } - char local_ip_str[MAXSZ_IP_ADDRESS]; - ip_address_snprintf(local_ip_str, MAXSZ_IP_ADDRESS, &local_ip, AF_INET); - DEBUG("Local information :"); - DEBUG(" - Interface name : %s", if_name); - DEBUG(" - IP address : %s", local_ip_str); + *local_ip = IP_ADDRESS_EMPTY; + local_ip->v4.as_inaddr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; + if (ip_address_empty(local_ip)) continue; - if (ip_address_pton (remote_ip_str, &remote_ip) < 0){ - DEBUG("Error parsing remote IP address"); - goto ERR_INIT; - } + ret = 0; + break; + } + + freeifaddrs(addrs); + close(fd); + return ret; +} - /* Filling face information */ - hc_face_t face = { - .face = { - .type = FACE_TYPE_UDP, - .family = AF_INET, - .local_addr = local_ip, - .remote_addr = remote_ip, - .local_port = 6000, - .remote_port = 6000, - .admin_state = FACE_STATE_UNDEFINED, - .state = FACE_STATE_UNDEFINED, +int main() { + char remote_ip_str[INET_ADDRSTRLEN] = "1.1.1.1"; + + ip_address_t local_ip; + ip_address_t remote_ip; + char if_name[IFNAMSIZ]; + + /* Retrieving local info */ + + if (get_local_info(if_name, &local_ip) < 0) { + DEBUG("Error getting local information"); + goto ERR_INIT; + } + + char local_ip_str[MAXSZ_IP_ADDRESS]; + ip_address_snprintf(local_ip_str, MAXSZ_IP_ADDRESS, &local_ip, AF_INET); + DEBUG("Local information :"); + DEBUG(" - Interface name : %s", if_name); + DEBUG(" - IP address : %s", local_ip_str); + + if (ip_address_pton(remote_ip_str, &remote_ip) < 0) { + DEBUG("Error parsing remote IP address"); + goto ERR_INIT; + } + + /* Filling face information */ + hc_face_t face = { + .face = + { + .type = FACE_TYPE_UDP, + .family = AF_INET, + .local_addr = local_ip, + .remote_addr = remote_ip, + .local_port = 6000, + .remote_port = 6000, + .admin_state = FACE_STATE_UNDEFINED, + .state = FACE_STATE_UNDEFINED, #ifdef WITH_POLICY - .priority = 0, - .tags = POLICY_TAGS_EMPTY, + .priority = 0, + .tags = POLICY_TAGS_EMPTY, #endif /* WITH_POLICY */ - }, - }; - if (netdevice_set_name(&face.face.netdevice, if_name) < 0) { - DEBUG("Error setting face netdevice name"); - goto ERR_INIT; - } + }, + }; + if (netdevice_set_name(&face.face.netdevice, if_name) < 0) { + DEBUG("Error setting face netdevice name"); + goto ERR_INIT; + } - /* Connecting to socket and creating face */ + /* Connecting to socket and creating face */ - hc_sock_t * socket = hc_sock_create(); - if (!socket){ - DEBUG("Error creating libhicnctrl socket"); - goto ERR_SOCK; - } + hc_sock_t *socket = hc_sock_create(); + if (!socket) { + DEBUG("Error creating libhicnctrl socket"); + goto ERR_SOCK; + } - if (hc_sock_connect(socket) < 0){ - DEBUG("Error connecting to forwarder"); - goto ERR; - } + if (hc_sock_connect(socket) < 0) { + DEBUG("Error connecting to forwarder"); + goto ERR; + } - if (hc_face_create(socket, &face) < 0){ - DEBUG("Error creating face"); - goto ERR; - } + if (hc_face_create(socket, &face) < 0) { + DEBUG("Error creating face"); + goto ERR; + } - DEBUG("Face created successfully"); + DEBUG("Face created successfully"); ERR: - hc_sock_free(socket); + hc_sock_free(socket); ERR_SOCK: ERR_INIT: - return 0; + return 0; } diff --git a/ctrl/libhicnctrl/examples/update_priority.c b/ctrl/libhicnctrl/examples/update_priority.c index d350f71c9..bbe174c2f 100644 --- a/ctrl/libhicnctrl/examples/update_priority.c +++ b/ctrl/libhicnctrl/examples/update_priority.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Cisco and/or its affiliates. + * Copyright (c) 2021 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: @@ -24,37 +24,36 @@ #include <hicn/ctrl.h> #include <hicn/util/log.h> -int main(int argc, char **argv) -{ - if (argc != 3) { - fprintf(stderr, "Usage: %s FACE_ID PRIORITY\n", argv[0]); - exit(EXIT_FAILURE); - } - unsigned face_id = atoi(argv[1]); - unsigned priority = atoi(argv[2]); - char face_id_s[SYMBOLIC_NAME_LEN]; - - hc_sock_t * socket = hc_sock_create(); - if (!socket){ - DEBUG("Error creating libhicnctrl socket"); - goto ERR_SOCK; - } - - if (hc_sock_connect(socket) < 0){ - DEBUG("Error connecting to forwarder"); - goto ERR; - } - - snprintf(face_id_s, SYMBOLIC_NAME_LEN, "%d", face_id); - if (hc_face_set_priority(socket, face_id_s, priority) < 0) { - DEBUG("Error setting face priority"); - goto ERR; - } - - DEBUG("Face priority updated successfully"); +int main(int argc, char **argv) { + if (argc != 3) { + fprintf(stderr, "Usage: %s FACE_ID PRIORITY\n", argv[0]); + exit(EXIT_FAILURE); + } + unsigned face_id = atoi(argv[1]); + unsigned priority = atoi(argv[2]); + char face_id_s[SYMBOLIC_NAME_LEN]; + + hc_sock_t *socket = hc_sock_create(); + if (!socket) { + DEBUG("Error creating libhicnctrl socket"); + goto ERR_SOCK; + } + + if (hc_sock_connect(socket) < 0) { + DEBUG("Error connecting to forwarder"); + goto ERR; + } + + snprintf(face_id_s, SYMBOLIC_NAME_LEN, "%d", face_id); + if (hc_face_set_priority(socket, face_id_s, priority) < 0) { + DEBUG("Error setting face priority"); + goto ERR; + } + + DEBUG("Face priority updated successfully"); ERR: - hc_sock_free(socket); + hc_sock_free(socket); ERR_SOCK: - return 0; + return 0; } |