diff options
42 files changed, 492 insertions, 499 deletions
diff --git a/doc/man/ouroboros.8 b/doc/man/ouroboros.8 index 0334786a..a661da92 100644 --- a/doc/man/ouroboros.8 +++ b/doc/man/ouroboros.8 @@ -2,7 +2,7 @@  .\" Dimitri Staessens <dimitri.staessens@ugent.be>  .\" Sander Vrijders <sander.vrijders@ugent.be> -.TH OUROBOROS 8 2017-12-02 Ouroboros "Ouroboros User Manual" +.TH OUROBOROS 8 2018-02-13 Ouroboros "Ouroboros User Manual"  .SH NAME @@ -193,7 +193,7 @@ default: 4 bytes.  .br  default: 2 bytes.  .PP -[ttl] specifies the presence of a time-to-live field. +[ttl] specifies the maximum value for the time-to-live field.  .PP  [addr_auth \fIpolicy\fR] specifies the address authority policy.  .br diff --git a/include/ouroboros/cacep.h b/include/ouroboros/cacep.h index 974c5b7f..b9fd0efb 100644 --- a/include/ouroboros/cacep.h +++ b/include/ouroboros/cacep.h @@ -32,13 +32,13 @@  #define CACEP_BUF_STRLEN 64  struct conn_info { -        char                       ae_name[CACEP_BUF_STRLEN + 1]; +        char                       comp_name[CACEP_BUF_STRLEN + 1];          char                       protocol[CACEP_BUF_STRLEN + 1];          uint32_t                   pref_version;          enum proto_concrete_syntax pref_syntax;          struct proto_field         fixed_conc_syntax[PROTO_MAX_FIELDS];          size_t                     num_fields; -        uint64_t                   addr; /* AE-I name */ +        uint64_t                   addr;  };  __BEGIN_DECLS diff --git a/include/ouroboros/ipcp.h b/include/ouroboros/ipcp.h index d3a9bdd8..e39137db 100644 --- a/include/ouroboros/ipcp.h +++ b/include/ouroboros/ipcp.h @@ -64,21 +64,21 @@ enum pol_dir_hash {  };  /* Info reported back to the IRMd about the layer on enrollment */ -struct dif_info { -        char dif_name[LAYER_NAME_SIZE]; +struct layer_info { +        char layer_name[LAYER_NAME_SIZE];          int  dir_hash_algo;  };  /* Structure to configure the first IPCP */  struct ipcp_config { -        struct dif_info    dif_info; +        struct layer_info  layer_info;          enum ipcp_type     type;          /* Normal */          uint8_t            addr_size; -        uint8_t            fd_size; -        bool               has_ttl; +        uint8_t            eid_size; +        uint8_t            max_ttl;          enum pol_addr_auth addr_auth_type;          enum pol_routing   routing_type; diff --git a/include/ouroboros/irm.h b/include/ouroboros/irm.h index cac981a2..ed0b2f71 100644 --- a/include/ouroboros/irm.h +++ b/include/ouroboros/irm.h @@ -29,8 +29,8 @@  #include <sys/types.h>  /* Normal IPCP components. */ -#define DT_AE   "Data Transfer" -#define MGMT_AE "Management" +#define DT_COMP   "Data Transfer" +#define MGMT_COMP "Management"  /* Name binding options. */  #define BIND_AUTO   0x01 @@ -47,7 +47,7 @@ ssize_t irm_list_ipcps(const char * name,                         pid_t **     pids);  int     irm_enroll_ipcp(pid_t        pid, -                        const char * dif_name); +                        const char * layer_name);  int     irm_bootstrap_ipcp(pid_t                      pid,                             const struct ipcp_config * conf); @@ -76,11 +76,11 @@ int     irm_unbind_process(pid_t        pid,                             const char * name);  int     irm_reg(const char *  name, -                char **       difs, +                char **       layers,                  size_t        len);  int     irm_unreg(const char * name, -                  char **      difs, +                  char **      layers,                    size_t       len);  __END_DECLS diff --git a/include/ouroboros/sockets.h b/include/ouroboros/sockets.h index 6bede740..da3e36d0 100644 --- a/include/ouroboros/sockets.h +++ b/include/ouroboros/sockets.h @@ -27,7 +27,7 @@  #include "ipcp_config.pb-c.h"  typedef IpcpConfigMsg ipcp_config_msg_t; -typedef DifInfoMsg dif_info_msg_t; +typedef LayerInfoMsg layer_info_msg_t;  #include "irmd_messages.pb-c.h"  typedef IrmMsg irm_msg_t; diff --git a/src/ipcpd/ipcp.c b/src/ipcpd/ipcp.c index 6a1cde40..4900ec03 100644 --- a/src/ipcpd/ipcp.c +++ b/src/ipcpd/ipcp.c @@ -174,16 +174,16 @@ static void * mainloop(void * o)          int                 sfd;          buffer_t            buffer;          struct ipcp_config  conf; -        struct dif_info     info; +        struct layer_info   info;          ipcp_config_msg_t * conf_msg;          ipcp_msg_t *        msg;          (void) o;          while (true) { -                ipcp_msg_t          ret_msg  = IPCP_MSG__INIT; -                dif_info_msg_t      dif_info = DIF_INFO_MSG__INIT; -                int                 fd       = -1; +                ipcp_msg_t          ret_msg    = IPCP_MSG__INIT; +                layer_info_msg_t    layer_info = LAYER_INFO_MSG__INIT; +                int                 fd         = -1;                  struct cmd *        cmd;                  ret_msg.code = IPCP_MSG_CODE__IPCP_REPLY; @@ -234,12 +234,12 @@ static void * mainloop(void * o)                          conf_msg = msg->conf;                          conf.type = conf_msg->ipcp_type; -                        strcpy(conf.dif_info.dif_name, -                               conf_msg->dif_info->dif_name); +                        strcpy(conf.layer_info.layer_name, +                               conf_msg->layer_info->layer_name);                          if (conf_msg->ipcp_type == IPCP_NORMAL) {                                  conf.addr_size      = conf_msg->addr_size; -                                conf.fd_size        = conf_msg->fd_size; -                                conf.has_ttl        = conf_msg->has_ttl; +                                conf.eid_size       = conf_msg->eid_size; +                                conf.max_ttl        = conf_msg->max_ttl;                                  conf.addr_auth_type = conf_msg->addr_auth_type;                                  conf.routing_type   = conf_msg->routing_type;                                  conf.pff_type       = conf_msg->pff_type; @@ -252,43 +252,44 @@ static void * mainloop(void * o)                                  conf.ip_addr  = conf_msg->ip_addr;                                  conf.dns_addr = conf_msg->dns_addr; -                                conf.dif_info.dir_hash_algo = HASH_MD5; -                                dif_info.dir_hash_algo      = HASH_MD5; +                                conf.layer_info.dir_hash_algo = HASH_MD5; +                                layer_info.dir_hash_algo      = HASH_MD5;                          }                          /* Only udp needs a fixed hash algorithm */                          if (conf_msg->ipcp_type != IPCP_UDP) { -                                switch(conf_msg->dif_info->dir_hash_algo) { +                                switch(conf_msg->layer_info->dir_hash_algo) {                                  case DIR_HASH_SHA3_224: -                                        conf.dif_info.dir_hash_algo = +                                        conf.layer_info.dir_hash_algo =                                                  HASH_SHA3_224;                                          break;                                  case DIR_HASH_SHA3_256: -                                        conf.dif_info.dir_hash_algo = +                                        conf.layer_info.dir_hash_algo =                                                  HASH_SHA3_256;                                          break;                                  case DIR_HASH_SHA3_384: -                                        conf.dif_info.dir_hash_algo = +                                        conf.layer_info.dir_hash_algo =                                                  HASH_SHA3_384;                                          break;                                  case DIR_HASH_SHA3_512: -                                        conf.dif_info.dir_hash_algo = +                                        conf.layer_info.dir_hash_algo =                                                  HASH_SHA3_512;                                          break;                                  default:                                          assert(false);                                  } -                                dif_info.dir_hash_algo = -                                        conf.dif_info.dir_hash_algo; +                                layer_info.dir_hash_algo = +                                        conf.layer_info.dir_hash_algo;                          } -                        ipcpi.dir_hash_algo = conf.dif_info.dir_hash_algo; +                        ipcpi.dir_hash_algo = conf.layer_info.dir_hash_algo;                          ret_msg.result = ipcpi.ops->ipcp_bootstrap(&conf);                          if (ret_msg.result == 0) { -                                ret_msg.dif_info       = &dif_info; -                                dif_info.dif_name      = conf.dif_info.dif_name; +                                ret_msg.layer_info = &layer_info; +                                layer_info.layer_name = +                                        conf.layer_info.layer_name;                          }                          break;                  case IPCP_MSG_CODE__IPCP_ENROLL: @@ -309,9 +310,9 @@ static void * mainloop(void * o)                          ret_msg.result = ipcpi.ops->ipcp_enroll(msg->dst_name,                                                                  &info);                          if (ret_msg.result == 0) { -                                ret_msg.dif_info       = &dif_info; -                                dif_info.dir_hash_algo = info.dir_hash_algo; -                                dif_info.dif_name      = info.dif_name; +                                ret_msg.layer_info       = &layer_info; +                                layer_info.dir_hash_algo = info.dir_hash_algo; +                                layer_info.layer_name    = info.layer_name;                          }                          break;                  case IPCP_MSG_CODE__IPCP_CONNECT: diff --git a/src/ipcpd/ipcp.h b/src/ipcpd/ipcp.h index d53a9d7c..c81ea1aa 100644 --- a/src/ipcpd/ipcp.h +++ b/src/ipcpd/ipcp.h @@ -44,8 +44,8 @@ enum ipcp_state {  struct ipcp_ops {          int   (* ipcp_bootstrap)(const struct ipcp_config * conf); -        int   (* ipcp_enroll)(const char *      dst, -                              struct dif_info * info); +        int   (* ipcp_enroll)(const char *        dst, +                              struct layer_info * info);          int   (* ipcp_connect)(const char * dst,                                 const char * component); @@ -77,7 +77,7 @@ struct ipcp {          char *             name;          enum ipcp_type     type; -        char *             dif_name; +        char *             layer_name;          uint64_t           dt_addr; diff --git a/src/ipcpd/normal/ae.h b/src/ipcpd/normal/comp.h index 527748d1..bdfba353 100644 --- a/src/ipcpd/normal/ae.h +++ b/src/ipcpd/normal/comp.h @@ -1,7 +1,7 @@  /*   * Ouroboros - Copyright (C) 2016 - 2018   * - * Application Entities for the normal IPC process + * Components for the normal IPC process   *   *    Dimitri Staessens <dimitri.staessens@ugent.be>   *    Sander Vrijders   <sander.vrijders@ugent.be> @@ -20,8 +20,8 @@   * Foundation, Inc., http://www.fsf.org/about/contact/.   */ -#ifndef OUROBOROS_IPCPD_NORMAL_AE_H -#define OUROBOROS_IPCPD_NORMAL_AE_H +#ifndef OUROBOROS_IPCPD_NORMAL_COMP_H +#define OUROBOROS_IPCPD_NORMAL_COMP_H  #include <ouroboros/cacep.h> @@ -29,11 +29,11 @@  #define DST_MAX_STRLEN 64 -enum ae_id { -        AEID_DT = 0, -        AEID_ENROLL, -        AEID_MGMT, -        AEID_MAX +enum comp_id { +        COMPID_DT = 0, +        COMPID_ENROLL, +        COMPID_MGMT, +        COMPID_MAX  };  struct conn { @@ -45,4 +45,4 @@ struct conn {          } flow_info;  }; -#endif /* OUROBOROS_IPCPD_NORMAL_AE_H */ +#endif /* OUROBOROS_IPCPD_NORMAL_COMP_H */ diff --git a/src/ipcpd/normal/connmgr.c b/src/ipcpd/normal/connmgr.c index 7a6f252e..843eb280 100644 --- a/src/ipcpd/normal/connmgr.c +++ b/src/ipcpd/normal/connmgr.c @@ -1,7 +1,7 @@  /*   * Ouroboros - Copyright (C) 2016 - 2018   * - * Handles AE connections + * Handles connections between components   *   *    Dimitri Staessens <dimitri.staessens@ugent.be>   *    Sander Vrijders   <sander.vrijders@ugent.be> @@ -31,7 +31,7 @@  #include <ouroboros/logs.h>  #include <ouroboros/notifier.h> -#include "ae.h" +#include "comp.h"  #include "connmgr.h"  #include "enroll.h"  #include "ipcp.h" @@ -52,7 +52,7 @@ struct conn_el {          struct conn      conn;  }; -struct ae { +struct comp {          struct nbs *     nbs;          struct conn_info info; @@ -64,7 +64,7 @@ struct ae {  };  struct { -        struct ae          aes[AEID_MAX]; +        struct comp        comps[COMPID_MAX];          enum connmgr_state state;          pthread_t          acceptor; @@ -72,19 +72,19 @@ struct {  static int get_id_by_name(const char * name)  { -        enum ae_id i; +        enum comp_id i; -        for (i = 0; i < AEID_MAX; ++i) -                if (strcmp(name, connmgr.aes[i].info.ae_name) == 0) +        for (i = 0; i < COMPID_MAX; ++i) +                if (strcmp(name, connmgr.comps[i].info.comp_name) == 0)                          return i;          return -1;  } -static int add_ae_conn(enum ae_id         id, -                       int                fd, -                       qosspec_t          qs, -                       struct conn_info * rcv_info) +static int add_comp_conn(enum comp_id       id, +                         int                fd, +                         qosspec_t          qs, +                         struct conn_info * rcv_info)  {          struct conn_el * el; @@ -98,12 +98,12 @@ static int add_ae_conn(enum ae_id         id,          el->conn.flow_info.fd = fd;          el->conn.flow_info.qs = qs; -        pthread_mutex_lock(&connmgr.aes[id].lock); +        pthread_mutex_lock(&connmgr.comps[id].lock); -        list_add(&el->next, &connmgr.aes[id].pending); -        pthread_cond_signal(&connmgr.aes[id].cond); +        list_add(&el->next, &connmgr.comps[id].pending); +        pthread_cond_signal(&connmgr.comps[id].cond); -        pthread_mutex_unlock(&connmgr.aes[id].lock); +        pthread_mutex_unlock(&connmgr.comps[id].lock);          return 0;  } @@ -135,24 +135,24 @@ static void * flow_acceptor(void * o)                          continue;                  } -                id = get_id_by_name(rcv_info.ae_name); +                id = get_id_by_name(rcv_info.comp_name);                  if (id < 0) { -                        log_dbg("Connection request for unknown AE %s.", -                                rcv_info.ae_name); +                        log_dbg("Connection request for unknown component %s.", +                                rcv_info.comp_name);                          cacep_snd(fd, &fail_info);                          flow_dealloc(fd);                          continue;                  } -                assert(id < AEID_MAX); +                assert(id < COMPID_MAX); -                if (cacep_snd(fd, &connmgr.aes[id].info)) { +                if (cacep_snd(fd, &connmgr.comps[id].info)) {                          log_dbg("Failed to respond to request.");                          flow_dealloc(fd);                          continue;                  } -                if (add_ae_conn(id, fd, qs, &rcv_info)) { +                if (add_comp_conn(id, fd, qs, &rcv_info)) {                          log_dbg("Failed to add new connection.");                          flow_dealloc(fd);                          continue; @@ -176,8 +176,8 @@ void connmgr_fini(void)          if (connmgr.state == CONNMGR_RUNNING)                  pthread_join(connmgr.acceptor, NULL); -        for (i = 0; i < AEID_MAX; ++i) -                connmgr_ae_fini(i); +        for (i = 0; i < COMPID_MAX; ++i) +                connmgr_comp_fini(i);  }  int connmgr_start(void) @@ -196,64 +196,64 @@ void connmgr_stop(void)                  pthread_cancel(connmgr.acceptor);  } -int connmgr_ae_init(enum ae_id               id, -                    const struct conn_info * info) +int connmgr_comp_init(enum comp_id             id, +                      const struct conn_info * info)  { -        struct ae * ae; +        struct comp * comp; -        assert(id >= 0 && id < AEID_MAX); +        assert(id >= 0 && id < COMPID_MAX); -        ae = connmgr.aes + id; +        comp = connmgr.comps + id; -        if (pthread_mutex_init(&ae->lock, NULL)) +        if (pthread_mutex_init(&comp->lock, NULL))                  return -1; -        if (pthread_cond_init(&ae->cond, NULL)) { -                pthread_mutex_destroy(&ae->lock); +        if (pthread_cond_init(&comp->cond, NULL)) { +                pthread_mutex_destroy(&comp->lock);                  return -1;          } -        list_head_init(&ae->conns); -        list_head_init(&ae->pending); +        list_head_init(&comp->conns); +        list_head_init(&comp->pending); -        memcpy(&connmgr.aes[id].info, info, sizeof(connmgr.aes[id].info)); +        memcpy(&connmgr.comps[id].info, info, sizeof(connmgr.comps[id].info));          return 0;  } -void connmgr_ae_fini(enum ae_id id) +void connmgr_comp_fini(enum comp_id id)  {          struct list_head * p;          struct list_head * h; -        struct ae *        ae; +        struct comp *      comp; -        assert(id >= 0 && id < AEID_MAX); +        assert(id >= 0 && id < COMPID_MAX); -        if (strlen(connmgr.aes[id].info.ae_name) == 0) +        if (strlen(connmgr.comps[id].info.comp_name) == 0)                  return; -        ae = connmgr.aes + id; +        comp = connmgr.comps + id; -        pthread_mutex_lock(&ae->lock); +        pthread_mutex_lock(&comp->lock); -        list_for_each_safe(p, h, &ae->conns) { +        list_for_each_safe(p, h, &comp->conns) {                  struct conn_el * e = list_entry(p, struct conn_el, next);                  list_del(&e->next);                  free(e);          } -        list_for_each_safe(p, h, &ae->pending) { +        list_for_each_safe(p, h, &comp->pending) {                  struct conn_el * e = list_entry(p, struct conn_el, next);                  list_del(&e->next);                  free(e);          } -        pthread_mutex_unlock(&ae->lock); +        pthread_mutex_unlock(&comp->lock); -        pthread_cond_destroy(&ae->cond); -        pthread_mutex_destroy(&ae->lock); +        pthread_cond_destroy(&comp->cond); +        pthread_mutex_destroy(&comp->lock); -        memset(&connmgr.aes[id].info, 0, sizeof(connmgr.aes[id].info)); +        memset(&connmgr.comps[id].info, 0, sizeof(connmgr.comps[id].info));  }  int connmgr_ipcp_connect(const char * dst, @@ -292,11 +292,11 @@ int connmgr_ipcp_connect(const char * dst,                  strcpy(ce->conn.flow_info.dst, dst);          } -        pthread_mutex_lock(&connmgr.aes[id].lock); +        pthread_mutex_lock(&connmgr.comps[id].lock); -        list_add(&ce->next, &connmgr.aes[id].conns); +        list_add(&ce->next, &connmgr.comps[id].conns); -        pthread_mutex_unlock(&connmgr.aes[id].lock); +        pthread_mutex_unlock(&connmgr.comps[id].lock);          return 0;  } @@ -315,13 +315,13 @@ int connmgr_ipcp_disconnect(const char * dst,          if (id < 0)                  return -1; -        pthread_mutex_lock(&connmgr.aes[id].lock); +        pthread_mutex_lock(&connmgr.comps[id].lock); -        list_for_each_safe(p,h, &connmgr.aes[id].conns) { +        list_for_each_safe(p,h, &connmgr.comps[id].conns) {                  struct conn_el * el = list_entry(p, struct conn_el, next);                  if (strcmp(el->conn.flow_info.dst, dst) == 0) {                          int ret; -                        pthread_mutex_unlock(&connmgr.aes[id].lock); +                        pthread_mutex_unlock(&connmgr.comps[id].lock);                          list_del(&el->next);                          ret = connmgr_dealloc(id, &el->conn);                          free(el); @@ -329,17 +329,17 @@ int connmgr_ipcp_disconnect(const char * dst,                  }          } -        pthread_mutex_unlock(&connmgr.aes[id].lock); +        pthread_mutex_unlock(&connmgr.comps[id].lock);          return 0;  } -int connmgr_alloc(enum ae_id    id, +int connmgr_alloc(enum comp_id  id,                    const char *  dst,                    qosspec_t *   qs,                    struct conn * conn)  { -        assert(id >= 0 && id < AEID_MAX); +        assert(id >= 0 && id < COMPID_MAX);          assert(dst);          conn->flow_info.fd = flow_alloc(dst, qs, NULL); @@ -354,9 +354,9 @@ int connmgr_alloc(enum ae_id    id,                  memset(&conn->flow_info.qs, 0, sizeof(conn->flow_info.qs));          log_dbg("Sending cacep info for protocol %s to fd %d.", -                connmgr.aes[id].info.protocol, conn->flow_info.fd); +                connmgr.comps[id].info.protocol, conn->flow_info.fd); -        if (cacep_snd(conn->flow_info.fd, &connmgr.aes[id].info)) { +        if (cacep_snd(conn->flow_info.fd, &connmgr.comps[id].info)) {                  log_dbg("Failed to create application connection.");                  flow_dealloc(conn->flow_info.fd);                  return -1; @@ -368,31 +368,31 @@ int connmgr_alloc(enum ae_id    id,                  return -1;          } -        if (strcmp(connmgr.aes[id].info.protocol, conn->conn_info.protocol)) { +        if (strcmp(connmgr.comps[id].info.protocol, conn->conn_info.protocol)) {                  log_dbg("Unknown protocol (requested %s, got %s).", -                        connmgr.aes[id].info.protocol, +                        connmgr.comps[id].info.protocol,                          conn->conn_info.protocol);                  flow_dealloc(conn->flow_info.fd);                  return -1;          } -        if (connmgr.aes[id].info.pref_version != conn->conn_info.pref_version) { +        if (connmgr.comps[id].info.pref_version != conn->conn_info.pref_version) {                  log_dbg("Unknown protocol version.");                  flow_dealloc(conn->flow_info.fd);                  return -1;          } -        if (connmgr.aes[id].info.pref_syntax != conn->conn_info.pref_syntax) { +        if (connmgr.comps[id].info.pref_syntax != conn->conn_info.pref_syntax) {                  log_dbg("Unknown protocol syntax.");                  flow_dealloc(conn->flow_info.fd);                  return -1;          }          switch (id) { -        case AEID_DT: +        case COMPID_DT:                  notifier_event(NOTIFY_DT_CONN_ADD, conn);                  break; -        case AEID_MGMT: +        case COMPID_MGMT:                  notifier_event(NOTIFY_MGMT_CONN_ADD, conn);                  break;          default: @@ -402,14 +402,14 @@ int connmgr_alloc(enum ae_id    id,          return 0;  } -int connmgr_dealloc(enum ae_id    id, +int connmgr_dealloc(enum comp_id  id,                      struct conn * conn)  {          switch (id) { -        case AEID_DT: +        case COMPID_DT:                  notifier_event(NOTIFY_DT_CONN_DEL, conn);                  break; -        case AEID_MGMT: +        case COMPID_MGMT:                  notifier_event(NOTIFY_MGMT_CONN_DEL, conn);                  break;          default: @@ -420,30 +420,30 @@ int connmgr_dealloc(enum ae_id    id,  } -int connmgr_wait(enum ae_id    id, +int connmgr_wait(enum comp_id  id,                   struct conn * conn)  {          struct conn_el * el; -        struct ae *      ae; +        struct comp *    comp; -        assert(id >= 0 && id < AEID_MAX); +        assert(id >= 0 && id < COMPID_MAX);          assert(conn); -        ae = connmgr.aes + id; +        comp = connmgr.comps + id; -        pthread_mutex_lock(&ae->lock); +        pthread_mutex_lock(&comp->lock);          pthread_cleanup_push((void(*)(void *))pthread_mutex_unlock, -                             (void *) &ae->lock); +                             (void *) &comp->lock); -        while (list_is_empty(&ae->pending)) -                pthread_cond_wait(&ae->cond, &ae->lock); +        while (list_is_empty(&comp->pending)) +                pthread_cond_wait(&comp->cond, &comp->lock);          pthread_cleanup_pop(false); -        el = list_first_entry((&ae->pending), struct conn_el, next); +        el = list_first_entry((&comp->pending), struct conn_el, next);          if (el == NULL) { -                pthread_mutex_unlock(&ae->lock); +                pthread_mutex_unlock(&comp->lock);                  return -1;          } @@ -452,7 +452,7 @@ int connmgr_wait(enum ae_id    id,          list_del(&el->next);          free(el); -        pthread_mutex_unlock(&ae->lock); +        pthread_mutex_unlock(&comp->lock);          return 0;  } diff --git a/src/ipcpd/normal/connmgr.h b/src/ipcpd/normal/connmgr.h index 0efeae89..cf627d60 100644 --- a/src/ipcpd/normal/connmgr.h +++ b/src/ipcpd/normal/connmgr.h @@ -26,7 +26,7 @@  #include <ouroboros/cacep.h>  #include <ouroboros/qos.h> -#include "ae.h" +#include "comp.h"  #define NOTIFY_DT_CONN_ADD    0x00D0  #define NOTIFY_DT_CONN_DEL    0x00D1 @@ -45,10 +45,10 @@ int         connmgr_start(void);  void        connmgr_stop(void); -int         connmgr_ae_init(enum ae_id               id, -                            const struct conn_info * info); +int         connmgr_comp_init(enum comp_id             id, +                              const struct conn_info * info); -void        connmgr_ae_fini(enum ae_id id); +void        connmgr_comp_fini(enum comp_id id);  int         connmgr_ipcp_connect(const char * dst,                                   const char * component); @@ -56,15 +56,15 @@ int         connmgr_ipcp_connect(const char * dst,  int         connmgr_ipcp_disconnect(const char * dst,                                      const char * component); -int         connmgr_alloc(enum ae_id    id, +int         connmgr_alloc(enum comp_id  id,                            const char *  dst,                            qosspec_t *   qs,                            struct conn * conn); -int         connmgr_dealloc(enum ae_id    id, +int         connmgr_dealloc(enum comp_id  id,                              struct conn * conn); -int         connmgr_wait(enum ae_id    id, +int         connmgr_wait(enum comp_id  id,                           struct conn * conn);  #endif /* OUROBOROS_IPCPD_NORMAL_CONNMGR_H */ diff --git a/src/ipcpd/normal/dht.c b/src/ipcpd/normal/dht.c index d2ea9985..ebed4068 100644 --- a/src/ipcpd/normal/dht.c +++ b/src/ipcpd/normal/dht.c @@ -2767,7 +2767,7 @@ struct dht * dht_create(uint64_t addr)          if (tpm_start(dht->tpm))                  goto fail_tpm_start; -        dht->fd   = dt_reg_ae(dht, &dht_post_sdu); +        dht->fd   = dt_reg_comp(dht, &dht_post_sdu);          notifier_reg(handle_event, dht);  #else          (void) handle_event; diff --git a/src/ipcpd/normal/dir.c b/src/ipcpd/normal/dir.c index 1d0a5270..2428e1b6 100644 --- a/src/ipcpd/normal/dir.c +++ b/src/ipcpd/normal/dir.c @@ -1,7 +1,7 @@  /*   * Ouroboros - Copyright (C) 2016 - 2018   * - * DIF directory + * Directory   *   *    Dimitri Staessens <dimitri.staessens@ugent.be>   *    Sander Vrijders   <sander.vrijders@ugent.be> diff --git a/src/ipcpd/normal/dir.h b/src/ipcpd/normal/dir.h index 916088e8..365341ad 100644 --- a/src/ipcpd/normal/dir.h +++ b/src/ipcpd/normal/dir.h @@ -1,7 +1,7 @@  /*   * Ouroboros - Copyright (C) 2016 - 2018   * - * DIF directory + * Directory   *   *    Dimitri Staessens <dimitri.staessens@ugent.be>   *    Sander Vrijders   <sander.vrijders@ugent.be> diff --git a/src/ipcpd/normal/dt.c b/src/ipcpd/normal/dt.c index 1bc9031e..0df68dd4 100644 --- a/src/ipcpd/normal/dt.c +++ b/src/ipcpd/normal/dt.c @@ -1,7 +1,7 @@  /*   * Ouroboros - Copyright (C) 2016 - 2018   * - * Data Transfer AE + * Data Transfer Component   *   *    Dimitri Staessens <dimitri.staessens@ugent.be>   *    Sander Vrijders   <sander.vrijders@ugent.be> @@ -24,7 +24,7 @@  #include "config.h" -#define OUROBOROS_PREFIX "dt-ae" +#define OUROBOROS_PREFIX "dt"  #include <ouroboros/bitmap.h>  #include <ouroboros/errno.h> @@ -39,7 +39,7 @@  #include "pff.h"  #include "routing.h"  #include "sdu_sched.h" -#include "ae.h" +#include "comp.h"  #include "fa.h"  #include <stdlib.h> @@ -49,9 +49,9 @@  #include <inttypes.h>  #include <assert.h> -struct ae_info { -        void   (* post_sdu)(void * ae, struct shm_du_buff * sdb); -        void * ae; +struct comp_info { +        void   (* post_sdu)(void * comp, struct shm_du_buff * sdb); +        void * comp;  };  struct { @@ -61,7 +61,7 @@ struct {          struct routing_i * routing[QOS_CUBE_MAX];          struct bmp *       res_fds; -        struct ae_info     aes[PROG_RES_FDS]; +        struct comp_info   comps[PROG_RES_FDS];          pthread_rwlock_t   lock;          pthread_t          listener; @@ -127,19 +127,20 @@ static void sdu_handler(int                  fd,          } else {                  dt_pci_shrink(sdb); -                if (dt_pci.fd > PROG_RES_FDS) { -                        if (ipcp_flow_write(dt_pci.fd, sdb)) +                if (dt_pci.eid > PROG_RES_FDS) { +                        if (ipcp_flow_write(dt_pci.eid, sdb))                                  ipcp_sdb_release(sdb);                          return;                  } -                if (dt.aes[dt_pci.fd].post_sdu == NULL) { -                        log_err("No registered AE on fd %d.", dt_pci.fd); +                if (dt.comps[dt_pci.eid].post_sdu == NULL) { +                        log_err("No registered component on eid %d.", +                                dt_pci.eid);                          ipcp_sdb_release(sdb);                          return;                  } -                dt.aes[dt_pci.fd].post_sdu(dt.aes[dt_pci.fd].ae, sdb); +                dt.comps[dt_pci.eid].post_sdu(dt.comps[dt_pci.eid].comp, sdb);          }  } @@ -150,7 +151,7 @@ static void * dt_conn_handle(void * o)          (void) o;          while (true) { -                if (connmgr_wait(AEID_DT, &conn)) { +                if (connmgr_wait(COMPID_DT, &conn)) {                          log_err("Failed to get next DT connection.");                          continue;                  } @@ -166,8 +167,8 @@ static void * dt_conn_handle(void * o)  int dt_init(enum pol_routing pr,              enum pol_pff     pp,              uint8_t          addr_size, -            uint8_t          fd_size, -            bool             has_ttl) +            uint8_t          eid_size, +            uint8_t          max_ttl)  {          int              i;          int              j; @@ -175,13 +176,13 @@ int dt_init(enum pol_routing pr,          memset(&info, 0, sizeof(info)); -        strcpy(info.ae_name, DT_AE); +        strcpy(info.comp_name, DT_COMP);          strcpy(info.protocol, DT_PROTO);          info.pref_version = 1;          info.pref_syntax  = PROTO_FIXED;          info.addr         = ipcpi.dt_addr; -        if (dt_pci_init(addr_size, fd_size, has_ttl)) { +        if (dt_pci_init(addr_size, eid_size, max_ttl)) {                  log_err("Failed to init shm dt_pci.");                  goto fail_pci_init;          } @@ -191,9 +192,9 @@ int dt_init(enum pol_routing pr,                  goto fail_notifier_reg;          } -        if (connmgr_ae_init(AEID_DT, &info)) { +        if (connmgr_comp_init(COMPID_DT, &info)) {                  log_err("Failed to register with connmgr."); -                goto fail_connmgr_ae_init; +                goto fail_connmgr_comp_init;          }          if (routing_init(pr)) { @@ -242,8 +243,8 @@ int dt_init(enum pol_routing pr,   fail_pff:          routing_fini();   fail_routing: -        connmgr_ae_fini(AEID_DT); - fail_connmgr_ae_init: +        connmgr_comp_fini(COMPID_DT); + fail_connmgr_comp_init:          notifier_unreg(&handle_event);   fail_notifier_reg:          dt_pci_fini(); @@ -267,7 +268,7 @@ void dt_fini(void)          routing_fini(); -        connmgr_ae_fini(AEID_DT); +        connmgr_comp_fini(COMPID_DT);          notifier_unreg(&handle_event); @@ -298,8 +299,8 @@ void dt_stop(void)          sdu_sched_destroy(dt.sdu_sched);  } -int dt_reg_ae(void * ae, -              void (* func)(void * func, struct shm_du_buff *)) +int dt_reg_comp(void * comp, +                void (* func)(void * func, struct shm_du_buff *))  {          int res_fd; @@ -314,11 +315,11 @@ int dt_reg_ae(void * ae,                  return -EBADF;          } -        assert(dt.aes[res_fd].post_sdu == NULL); -        assert(dt.aes[res_fd].ae == NULL); +        assert(dt.comps[res_fd].post_sdu == NULL); +        assert(dt.comps[res_fd].comp == NULL); -        dt.aes[res_fd].post_sdu = func; -        dt.aes[res_fd].ae = ae; +        dt.comps[res_fd].post_sdu = func; +        dt.comps[res_fd].comp     = comp;          pthread_rwlock_unlock(&dt.lock); @@ -345,7 +346,7 @@ int dt_write_sdu(uint64_t             dst_addr,          dt_pci.dst_addr = dst_addr;          dt_pci.qc       = qc; -        dt_pci.fd       = np1_fd; +        dt_pci.eid      = np1_fd;          if (dt_pci_ser(sdb, &dt_pci)) {                  log_err("Failed to serialize PDU."); diff --git a/src/ipcpd/normal/dt.h b/src/ipcpd/normal/dt.h index 9e8c0780..f3bfdc56 100644 --- a/src/ipcpd/normal/dt.h +++ b/src/ipcpd/normal/dt.h @@ -1,7 +1,7 @@  /*   * Ouroboros - Copyright (C) 2016 - 2018   * - * Data Transfer AE + * Data Transfer component   *   *    Dimitri Staessens <dimitri.staessens@ugent.be>   *    Sander Vrijders   <sander.vrijders@ugent.be> @@ -28,15 +28,15 @@  #include "dt_pci.h" -#define DT_AE        "Data Transfer" +#define DT_COMP      "Data Transfer"  #define DT_PROTO     "dtp"  #define INVALID_ADDR 0  int  dt_init(enum pol_routing pr,               enum pol_pff     pp,               uint8_t          addr_size, -             uint8_t          fd_size, -             bool             has_ttl +             uint8_t          eid_size, +             uint8_t          max_ttl  );  void dt_fini(void); @@ -45,8 +45,8 @@ int  dt_start(void);  void dt_stop(void); -int  dt_reg_ae(void * ae, -               void (* func)(void * ae, struct shm_du_buff * sdb)); +int  dt_reg_comp(void * comp, +                 void (* func)(void * comp, struct shm_du_buff * sdb));  int  dt_write_sdu(uint64_t             dst_addr,                    qoscube_t            qc, diff --git a/src/ipcpd/normal/dt_pci.c b/src/ipcpd/normal/dt_pci.c index 77fa048e..76304668 100644 --- a/src/ipcpd/normal/dt_pci.c +++ b/src/ipcpd/normal/dt_pci.c @@ -1,7 +1,7 @@  /*   * Ouroboros - Copyright (C) 2016 - 2018   * - * Protocol Control Information of Data Transfer AE + * Protocol Control Information of Data Transfer Component   *   *    Dimitri Staessens <dimitri.staessens@ugent.be>   *    Sander Vrijders   <sander.vrijders@ugent.be> @@ -28,36 +28,32 @@  #include <string.h>  #include <assert.h> -#define DEFAULT_TTL   60 -  struct {          uint8_t         addr_size; -        uint8_t         fd_size; -        bool            has_ttl; +        uint8_t         eid_size;          size_t          head_size; -        /* offsets */ +        /* Offsets */          size_t          qc_o;          size_t          ttl_o; -        size_t          fd_o; +        size_t          eid_o; + +        /* Initial TTL value */ +        uint8_t         max_ttl;  } dt_pci_info;  int dt_pci_init(uint8_t addr_size, -                uint8_t fd_size, -                bool    has_ttl) +                uint8_t eid_size, +                uint8_t max_ttl)  {          dt_pci_info.addr_size = addr_size; -        dt_pci_info.fd_size   = fd_size; -        dt_pci_info.has_ttl   = has_ttl; - -        dt_pci_info.qc_o = dt_pci_info.addr_size; -        dt_pci_info.ttl_o = dt_pci_info.qc_o + QOS_LEN; -        if (dt_pci_info.has_ttl) -                dt_pci_info.fd_o = dt_pci_info.ttl_o + TTL_LEN; -        else -                dt_pci_info.fd_o = dt_pci_info.ttl_o; +        dt_pci_info.eid_size  = eid_size; +        dt_pci_info.max_ttl   = max_ttl; -        dt_pci_info.head_size = dt_pci_info.fd_o + dt_pci_info.fd_size; +        dt_pci_info.qc_o      = dt_pci_info.addr_size; +        dt_pci_info.ttl_o     = dt_pci_info.qc_o + QOS_LEN; +        dt_pci_info.eid_o     = dt_pci_info.ttl_o + TTL_LEN; +        dt_pci_info.head_size = dt_pci_info.eid_o + dt_pci_info.eid_size;          return 0;  } @@ -70,7 +66,7 @@ int dt_pci_ser(struct shm_du_buff * sdb,                 struct dt_pci *      dt_pci)  {          uint8_t * head; -        uint8_t ttl = DEFAULT_TTL; +        uint8_t   ttl = dt_pci_info.max_ttl;          assert(sdb);          assert(dt_pci); @@ -79,12 +75,11 @@ int dt_pci_ser(struct shm_du_buff * sdb,          if (head == NULL)                  return -EPERM; -        /* FIXME: Add check and operations for Big Endian machines */ +        /* FIXME: Add check and operations for Big Endian machines. */          memcpy(head, &dt_pci->dst_addr, dt_pci_info.addr_size);          memcpy(head + dt_pci_info.qc_o, &dt_pci->qc, QOS_LEN); -        if (dt_pci_info.has_ttl) -                memcpy(head + dt_pci_info.ttl_o, &ttl, TTL_LEN); -        memcpy(head + dt_pci_info.fd_o, &dt_pci->fd, dt_pci_info.fd_size); +        memcpy(head + dt_pci_info.ttl_o, &ttl, TTL_LEN); +        memcpy(head + dt_pci_info.eid_o, &dt_pci->eid, dt_pci_info.eid_size);          return 0;  } @@ -99,18 +94,14 @@ void dt_pci_des(struct shm_du_buff * sdb,          head = shm_du_buff_head(sdb); -        /* FIXME: Add check and operations for Big Endian machines */ +        /* Decrease TTL */ +        --*(head + dt_pci_info.ttl_o); + +        /* FIXME: Add check and operations for Big Endian machines. */          memcpy(&dt_pci->dst_addr, head, dt_pci_info.addr_size);          memcpy(&dt_pci->qc, head + dt_pci_info.qc_o, QOS_LEN); - -        if (dt_pci_info.has_ttl) { -                --*(head + dt_pci_info.ttl_o); /* decrease TTL */ -                memcpy(&dt_pci->ttl, head + dt_pci_info.ttl_o, TTL_LEN); -        } else { -                dt_pci->ttl = 1; -        } - -        memcpy(&dt_pci->fd, head + dt_pci_info.fd_o, dt_pci_info.fd_size); +        memcpy(&dt_pci->ttl, head + dt_pci_info.ttl_o, TTL_LEN); +        memcpy(&dt_pci->eid, head + dt_pci_info.eid_o, dt_pci_info.eid_size);  }  void dt_pci_shrink(struct shm_du_buff * sdb) diff --git a/src/ipcpd/normal/dt_pci.h b/src/ipcpd/normal/dt_pci.h index 34df9281..8022f84a 100644 --- a/src/ipcpd/normal/dt_pci.h +++ b/src/ipcpd/normal/dt_pci.h @@ -1,7 +1,7 @@  /*   * Ouroboros - Copyright (C) 2016 - 2018   * - * Protocol Control Information of Data Transfer AE + * Protocol Control Information of Data Transfer Component   *   *    Dimitri Staessens <dimitri.staessens@ugent.be>   *    Sander Vrijders   <sander.vrijders@ugent.be> @@ -32,29 +32,27 @@  /* Abstract syntax */  enum dtp_fields { -        DTP_DST = 0,   /* DST ADDRESS */ -        DTP_QOS,       /* QOS ID      */ -        DTP_DFD,       /* DEST FD     */ -        DTP_TTL,       /* TTL FIELD   */ -        DTP_NUM_FIELDS /* number of fields */ +        DTP_DST = 0,   /* DST ADDRESS      */ +        DTP_QOS,       /* QOS ID           */ +        DTP_DEID,      /* DST Endpoint ID  */ +        DTP_TTL,       /* TTL FIELD        */ +        DTP_NUM_FIELDS /* Number of fields */  }; -/* Default field lengths */ +/* Fixed field lengths */  #define TTL_LEN 1  #define QOS_LEN 1 -#define DFD_LEN 1 -#define DST_LEN 2  struct dt_pci {          uint64_t  dst_addr;          qoscube_t qc;          uint8_t   ttl; -        uint32_t  fd; +        uint32_t  eid;  };  int   dt_pci_init(uint8_t addr_size, -                  uint8_t fd_size, -                  bool    has_ttl); +                  uint8_t eid_size, +                  uint8_t max_ttl);  void  dt_pci_fini(void); diff --git a/src/ipcpd/normal/enroll.c b/src/ipcpd/normal/enroll.c index e8a75241..eaa87a42 100644 --- a/src/ipcpd/normal/enroll.c +++ b/src/ipcpd/normal/enroll.c @@ -44,7 +44,7 @@  #include "enroll.pb-c.h"  typedef EnrollMsg enroll_msg_t; -#define ENROLL_AE               "Enrollment" +#define ENROLL_COMP             "Enrollment"  #define ENROLL_PROTO            "OEP" /* Ouroboros enrollment protocol */  #define ENROLL_WARN_TIME_OFFSET 20  #define ENROLL_BUF_LEN          1024 @@ -124,16 +124,17 @@ static int send_rcv_enroll_msg(int fd)          if (labs(ts_diff_ms(&t0, &rtt)) - delta_t > ENROLL_WARN_TIME_OFFSET)                  log_warn("Clock offset above threshold."); -        strcpy(enroll.conf.dif_info.dif_name, reply->conf->dif_info->dif_name); +        strcpy(enroll.conf.layer_info.layer_name, +               reply->conf->layer_info->layer_name);          enroll.conf.type           = reply->conf->ipcp_type;          enroll.conf.addr_size      = reply->conf->addr_size; -        enroll.conf.fd_size        = reply->conf->fd_size; -        enroll.conf.has_ttl        = reply->conf->has_ttl; +        enroll.conf.eid_size       = reply->conf->eid_size; +        enroll.conf.max_ttl        = reply->conf->max_ttl;          enroll.conf.addr_auth_type = reply->conf->addr_auth_type;          enroll.conf.routing_type   = reply->conf->routing_type;          enroll.conf.pff_type       = reply->conf->pff_type; -        enroll.conf.dif_info.dir_hash_algo -                = reply->conf->dif_info->dir_hash_algo; +        enroll.conf.layer_info.dir_hash_algo +                = reply->conf->layer_info->dir_hash_algo;          enroll_msg__free_unpacked(reply, NULL); @@ -142,9 +143,9 @@ static int send_rcv_enroll_msg(int fd)  static ssize_t enroll_pack(uint8_t ** buf)  { -        enroll_msg_t      msg      = ENROLL_MSG__INIT; -        ipcp_config_msg_t config   = IPCP_CONFIG_MSG__INIT; -        dif_info_msg_t    dif_info = DIF_INFO_MSG__INIT; +        enroll_msg_t      msg        = ENROLL_MSG__INIT; +        ipcp_config_msg_t config     = IPCP_CONFIG_MSG__INIT; +        layer_info_msg_t  layer_info = LAYER_INFO_MSG__INIT;          struct timespec   now;          ssize_t           len; @@ -160,20 +161,20 @@ static ssize_t enroll_pack(uint8_t ** buf)          config.ipcp_type          = enroll.conf.type;          config.has_addr_size      = true;          config.addr_size          = enroll.conf.addr_size; -        config.has_fd_size        = true; -        config.fd_size            = enroll.conf.fd_size; -        config.has_has_ttl        = true; -        config.has_ttl            = enroll.conf.has_ttl; +        config.has_eid_size       = true; +        config.eid_size           = enroll.conf.eid_size; +        config.has_max_ttl        = true; +        config.max_ttl            = enroll.conf.max_ttl;          config.has_addr_auth_type = true;          config.addr_auth_type     = enroll.conf.addr_auth_type;          config.has_routing_type   = true;          config.routing_type       = enroll.conf.routing_type;          config.has_pff_type       = true;          config.pff_type           = enroll.conf.pff_type; -        config.dif_info           = &dif_info; +        config.layer_info         = &layer_info; -        dif_info.dif_name      = (char *) enroll.conf.dif_info.dif_name; -        dif_info.dir_hash_algo = enroll.conf.dif_info.dir_hash_algo; +        layer_info.layer_name     = (char *) enroll.conf.layer_info.layer_name; +        layer_info.dir_hash_algo  = enroll.conf.layer_info.dir_hash_algo;          len = enroll_msg__get_packed_size(&msg); @@ -197,7 +198,7 @@ static void * enroll_handle(void * o)          (void) o;          while (true) { -                if (connmgr_wait(AEID_ENROLL, &conn)) { +                if (connmgr_wait(COMPID_ENROLL, &conn)) {                          log_err("Failed to get next connection.");                          continue;                  } @@ -205,20 +206,20 @@ static void * enroll_handle(void * o)                  len = flow_read(conn.flow_info.fd, buf, ENROLL_BUF_LEN);                  if (len < 0) {                          log_err("Failed to read from flow."); -                        connmgr_dealloc(AEID_ENROLL, &conn); +                        connmgr_dealloc(COMPID_ENROLL, &conn);                          continue;                  }                  msg = enroll_msg__unpack(NULL, len, buf);                  if (msg == NULL) {                          log_err("Failed to unpack message."); -                        connmgr_dealloc(AEID_ENROLL, &conn); +                        connmgr_dealloc(COMPID_ENROLL, &conn);                          continue;                  }                  if (msg->code != ENROLL_CODE__ENROLL_REQ) {                          log_err("Wrong message type."); -                        connmgr_dealloc(AEID_ENROLL, &conn); +                        connmgr_dealloc(COMPID_ENROLL, &conn);                          enroll_msg__free_unpacked(msg, NULL);                          continue;                  } @@ -230,7 +231,7 @@ static void * enroll_handle(void * o)                  len = enroll_pack(&reply);                  if (reply == NULL) {                          log_err("Failed to pack enrollment message."); -                        connmgr_dealloc(AEID_ENROLL, &conn); +                        connmgr_dealloc(COMPID_ENROLL, &conn);                          continue;                  } @@ -238,7 +239,7 @@ static void * enroll_handle(void * o)                  if (flow_write(conn.flow_info.fd, reply, len)) {                          log_err("Failed respond to enrollment request."); -                        connmgr_dealloc(AEID_ENROLL, &conn); +                        connmgr_dealloc(COMPID_ENROLL, &conn);                          free(reply);                          continue;                  } @@ -248,21 +249,21 @@ static void * enroll_handle(void * o)                  len = flow_read(conn.flow_info.fd, buf, ENROLL_BUF_LEN);                  if (len < 0) {                          log_err("Failed to read from flow."); -                        connmgr_dealloc(AEID_ENROLL, &conn); +                        connmgr_dealloc(COMPID_ENROLL, &conn);                          continue;                  }                  msg = enroll_msg__unpack(NULL, len, buf);                  if (msg == NULL) {                          log_err("Failed to unpack message."); -                        connmgr_dealloc(AEID_ENROLL, &conn); +                        connmgr_dealloc(COMPID_ENROLL, &conn);                          continue;                  }                  if (msg->code != ENROLL_CODE__ENROLL_DONE || !msg->has_result) {                          log_err("Wrong message type.");                          enroll_msg__free_unpacked(msg, NULL); -                        connmgr_dealloc(AEID_ENROLL, &conn); +                        connmgr_dealloc(COMPID_ENROLL, &conn);                          continue;                  } @@ -273,7 +274,7 @@ static void * enroll_handle(void * o)                  enroll_msg__free_unpacked(msg, NULL); -                connmgr_dealloc(AEID_ENROLL, &conn); +                connmgr_dealloc(COMPID_ENROLL, &conn);          }          return 0; @@ -336,13 +337,13 @@ int enroll_init(void)          memset(&info, 0, sizeof(info)); -        strcpy(info.ae_name, ENROLL_AE); +        strcpy(info.comp_name, ENROLL_COMP);          strcpy(info.protocol, ENROLL_PROTO);          info.pref_version = 1;          info.pref_syntax  = PROTO_GPB;          info.addr         = 0; -        if (connmgr_ae_init(AEID_ENROLL, &info)) { +        if (connmgr_comp_init(COMPID_ENROLL, &info)) {                  log_err("Failed to register with connmgr.");                  return -1;          } @@ -357,7 +358,7 @@ void enroll_fini(void)          if (enroll.state == ENROLL_RUNNING)                  pthread_join(enroll.listener, NULL); -        connmgr_ae_fini(AEID_ENROLL); +        connmgr_comp_fini(COMPID_ENROLL);  }  int enroll_start(void) diff --git a/src/ipcpd/normal/enroll.h b/src/ipcpd/normal/enroll.h index d5bfa71f..615b7025 100644 --- a/src/ipcpd/normal/enroll.h +++ b/src/ipcpd/normal/enroll.h @@ -25,7 +25,7 @@  #include <ouroboros/ipcp.h> -#include "ae.h" +#include "comp.h"  int                  enroll_init(void); diff --git a/src/ipcpd/normal/fa.c b/src/ipcpd/normal/fa.c index 2b3f5c2a..e7e5a786 100644 --- a/src/ipcpd/normal/fa.c +++ b/src/ipcpd/normal/fa.c @@ -88,7 +88,7 @@ static void destroy_conn(int fd)          fa.r_addr[fd] = INVALID_ADDR;  } -static void fa_post_sdu(void *               ae, +static void fa_post_sdu(void *               comp,                          struct shm_du_buff * sdb)  {          struct timespec ts  = {0, TIMEOUT * 1000}; @@ -97,9 +97,9 @@ static void fa_post_sdu(void *               ae,          uint8_t *       buf;          struct fa_msg * msg; -        (void) ae; +        (void) comp; -        assert(ae == &fa); +        assert(comp == &fa);          assert(sdb);          buf = malloc(sizeof(*msg) + ipcp_dir_hash_len()); @@ -195,7 +195,7 @@ int fa_init(void)          if (pthread_rwlock_init(&fa.flows_lock, NULL))                  return -1; -        fa.fd = dt_reg_ae(&fa, &fa_post_sdu); +        fa.fd = dt_reg_comp(&fa, &fa_post_sdu);          return 0;  } diff --git a/src/ipcpd/normal/main.c b/src/ipcpd/normal/main.c index 47192aa2..ba3fe33f 100644 --- a/src/ipcpd/normal/main.c +++ b/src/ipcpd/normal/main.c @@ -53,13 +53,13 @@  static int initialize_components(const struct ipcp_config * conf)  { -        ipcpi.dif_name = strdup(conf->dif_info.dif_name); -        if (ipcpi.dif_name == NULL) { +        ipcpi.layer_name = strdup(conf->layer_info.layer_name); +        if (ipcpi.layer_name == NULL) {                  log_err("Failed to set layer name."); -                goto fail_dif_name; +                goto fail_layer_name;          } -        ipcpi.dir_hash_algo = conf->dif_info.dir_hash_algo; +        ipcpi.dir_hash_algo = conf->layer_info.dir_hash_algo;          assert(ipcp_dir_hash_len() != 0); @@ -80,8 +80,8 @@ static int initialize_components(const struct ipcp_config * conf)          if (dt_init(conf->routing_type,                      conf->pff_type,                      conf->addr_size, -                    conf->fd_size, -                    conf->has_ttl)) { +                    conf->eid_size, +                    conf->max_ttl)) {                  log_err("Failed to initialize data transfer component.");                  goto fail_dt;          } @@ -107,8 +107,8 @@ static int initialize_components(const struct ipcp_config * conf)   fail_dt:          addr_auth_fini();   fail_addr_auth: -        free(ipcpi.dif_name); - fail_dif_name: +        free(ipcpi.layer_name); + fail_layer_name:          return -1;  } @@ -122,7 +122,7 @@ static void finalize_components(void)          addr_auth_fini(); -        free(ipcpi.dif_name); +        free(ipcpi.layer_name);  }  static int start_components(void) @@ -182,12 +182,12 @@ static int bootstrap_components(void)          return 0;  } -static int normal_ipcp_enroll(const char *      dst, -                              struct dif_info * info) +static int normal_ipcp_enroll(const char *        dst, +                              struct layer_info * info)  {          struct conn conn; -        if (connmgr_alloc(AEID_ENROLL, dst, NULL, &conn)) { +        if (connmgr_alloc(COMPID_ENROLL, dst, NULL, &conn)) {                  log_err("Failed to get connection.");                  goto fail_er_flow;          } @@ -216,13 +216,13 @@ static int normal_ipcp_enroll(const char *      dst,          if (enroll_done(&conn, 0))                  log_warn("Failed to confirm enrollment with peer."); -        if (connmgr_dealloc(AEID_ENROLL, &conn)) +        if (connmgr_dealloc(COMPID_ENROLL, &conn))                  log_warn("Failed to deallocate enrollment flow.");          log_info("Enrolled with %s.", dst);          info->dir_hash_algo = ipcpi.dir_hash_algo; -        strcpy(info->dif_name, ipcpi.dif_name); +        strcpy(info->layer_name, ipcpi.layer_name);          return 0; @@ -231,7 +231,7 @@ static int normal_ipcp_enroll(const char *      dst,   fail_dt_start:          finalize_components();   fail_enroll_boot: -        connmgr_dealloc(AEID_ENROLL, &conn); +        connmgr_dealloc(COMPID_ENROLL, &conn);   fail_er_flow:          return -1;  } @@ -263,7 +263,7 @@ static int normal_ipcp_bootstrap(const struct ipcp_config * conf)                  goto fail_bootstrap;          } -        log_dbg("Bootstrapped in layer %s.", conf->dif_info.dif_name); +        log_dbg("Bootstrapped in layer %s.", conf->layer_info.layer_name);          return 0; diff --git a/src/ipcpd/normal/pol/link_state.c b/src/ipcpd/normal/pol/link_state.c index a8a69259..520e2952 100644 --- a/src/ipcpd/normal/pol/link_state.c +++ b/src/ipcpd/normal/pol/link_state.c @@ -36,7 +36,7 @@  #include <ouroboros/rib.h>  #include <ouroboros/utils.h> -#include "ae.h" +#include "comp.h"  #include "connmgr.h"  #include "graph.h"  #include "ipcp.h" @@ -543,7 +543,7 @@ static void * ls_conn_handle(void * o)          (void) o;          while (true) { -                if (connmgr_wait(AEID_MGMT, &conn)) { +                if (connmgr_wait(COMPID_MGMT, &conn)) {                          log_err("Failed to get next MGMT connection.");                          continue;                  } @@ -751,7 +751,7 @@ int link_state_init(enum pol_routing pr)          memset(&info, 0, sizeof(info)); -        strcpy(info.ae_name, LS_AE); +        strcpy(info.comp_name, LS_COMP);          strcpy(info.protocol, LS_PROTO);          info.pref_version = 1;          info.pref_syntax  = PROTO_GPB; @@ -781,8 +781,8 @@ int link_state_init(enum pol_routing pr)          if (pthread_mutex_init(&ls.routing_i_lock, NULL))                  goto fail_routing_i_lock_init; -        if (connmgr_ae_init(AEID_MGMT, &info)) -                goto fail_connmgr_ae_init; +        if (connmgr_comp_init(COMPID_MGMT, &info)) +                goto fail_connmgr_comp_init;          ls.mgmt_set = fset_create();          if (ls.mgmt_set == NULL) @@ -817,8 +817,8 @@ int link_state_init(enum pol_routing pr)   fail_pthread_create_lsupdate:          fset_destroy(ls.mgmt_set);   fail_fset_create: -        connmgr_ae_fini(AEID_MGMT); - fail_connmgr_ae_init: +        connmgr_comp_fini(COMPID_MGMT); + fail_connmgr_comp_init:          pthread_mutex_destroy(&ls.routing_i_lock);   fail_routing_i_lock_init:          pthread_rwlock_destroy(&ls.db_lock); @@ -848,7 +848,7 @@ void link_state_fini(void)          fset_destroy(ls.mgmt_set); -        connmgr_ae_fini(AEID_MGMT); +        connmgr_comp_fini(COMPID_MGMT);          graph_destroy(ls.graph); diff --git a/src/ipcpd/normal/pol/link_state.h b/src/ipcpd/normal/pol/link_state.h index 70bebd26..b24716c2 100644 --- a/src/ipcpd/normal/pol/link_state.h +++ b/src/ipcpd/normal/pol/link_state.h @@ -23,7 +23,7 @@  #ifndef OUROBOROS_IPCPD_NORMAL_POL_LINK_STATE_H  #define OUROBOROS_IPCPD_NORMAL_POL_LINK_STATE_H -#define LS_AE    "Management" +#define LS_COMP  "Management"  #define LS_PROTO "LSP"  #include "pol-routing-ops.h" diff --git a/src/ipcpd/normal/tests/dht_test.c b/src/ipcpd/normal/tests/dht_test.c index 81a6eb62..cd0a4445 100644 --- a/src/ipcpd/normal/tests/dht_test.c +++ b/src/ipcpd/normal/tests/dht_test.c @@ -1,7 +1,7 @@  /*   * Ouroboros - Copyright (C) 2016 - 2018   * - * Unit tests of the DHT AE + * Unit tests of the DHT   *   *    Dimitri Staessens <dimitri.staessens@ugent.be>   *    Sander Vrijders   <sander.vrijders@ugent.be> diff --git a/src/irmd/ipcp.c b/src/irmd/ipcp.c index 1b28c325..87cbaca5 100644 --- a/src/irmd/ipcp.c +++ b/src/irmd/ipcp.c @@ -205,7 +205,7 @@ int ipcp_destroy(pid_t pid)  int ipcp_bootstrap(pid_t               pid,                     ipcp_config_msg_t * conf, -                   struct dif_info   * info) +                   struct layer_info * info)  {          ipcp_msg_t   msg      = IPCP_MSG__INIT;          ipcp_msg_t * recv_msg = NULL; @@ -232,13 +232,13 @@ int ipcp_bootstrap(pid_t               pid,                  return ret;          } -        if (recv_msg->dif_info == NULL) { +        if (recv_msg->layer_info == NULL) {                  ipcp_msg__free_unpacked(recv_msg, NULL);                  return -EIPCP;          } -        info->dir_hash_algo = recv_msg->dif_info->dir_hash_algo; -        strcpy(info->dif_name, recv_msg->dif_info->dif_name); +        info->dir_hash_algo = recv_msg->layer_info->dir_hash_algo; +        strcpy(info->layer_name, recv_msg->layer_info->layer_name);          ret = recv_msg->result;          ipcp_msg__free_unpacked(recv_msg, NULL); @@ -246,9 +246,9 @@ int ipcp_bootstrap(pid_t               pid,          return ret;  } -int ipcp_enroll(pid_t             pid, -                const char *      dst, -                struct dif_info * info) +int ipcp_enroll(pid_t               pid, +                const char *        dst, +                struct layer_info * info)  {          ipcp_msg_t   msg      = IPCP_MSG__INIT;          ipcp_msg_t * recv_msg = NULL; @@ -275,13 +275,13 @@ int ipcp_enroll(pid_t             pid,                  return ret;          } -        if (recv_msg->dif_info == NULL) { +        if (recv_msg->layer_info == NULL) {                  ipcp_msg__free_unpacked(recv_msg, NULL);                  return -EIPCP;          } -        info->dir_hash_algo = recv_msg->dif_info->dir_hash_algo; -        strcpy(info->dif_name, recv_msg->dif_info->dif_name); +        info->dir_hash_algo = recv_msg->layer_info->dir_hash_algo; +        strcpy(info->layer_name, recv_msg->layer_info->layer_name);          ipcp_msg__free_unpacked(recv_msg, NULL); diff --git a/src/irmd/ipcp.h b/src/irmd/ipcp.h index 5a1c2fe4..8ff062b2 100644 --- a/src/irmd/ipcp.h +++ b/src/irmd/ipcp.h @@ -34,13 +34,13 @@ pid_t ipcp_create(const char *   name,  int   ipcp_destroy(pid_t pid); -int   ipcp_enroll(pid_t             pid, -                  const char *      dst, -                  struct dif_info * info); +int   ipcp_enroll(pid_t               pid, +                  const char *        dst, +                  struct layer_info * info);  int   ipcp_bootstrap(pid_t               pid,                       ipcp_config_msg_t * conf, -                     struct dif_info *   info); +                     struct layer_info * info);  int   ipcp_connect(pid_t        pid,                     const char * dst, diff --git a/src/irmd/main.c b/src/irmd/main.c index e9446ade..658811e2 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -82,7 +82,7 @@ struct ipcp_entry {          pid_t            pid;          enum ipcp_type   type;          enum hash_algo   dir_hash_algo; -        char *           dif_name; +        char *           layer_name;          enum init_state  init_state;          pthread_cond_t   init_cond; @@ -202,8 +202,8 @@ static struct ipcp_entry * ipcp_entry_create(void)          if (e == NULL)                  return NULL; -        e->name = NULL; -        e->dif_name = NULL; +        e->name       = NULL; +        e->layer_name = NULL;          list_head_init(&e->next); @@ -224,8 +224,8 @@ static void ipcp_entry_destroy(struct ipcp_entry * e)          if (e->name != NULL)                  free(e->name); -        if (e->dif_name != NULL) -                free(e->dif_name); +        if (e->layer_name != NULL) +                free(e->layer_name);          free(e);  } @@ -268,7 +268,7 @@ static struct ipcp_entry * get_ipcp_by_dst_name(const char * name,          list_for_each_safe(p, h, &irmd.ipcps) {                  struct ipcp_entry * e = list_entry(p, struct ipcp_entry, next); -                if (e->dif_name == NULL || e->pid == src) +                if (e->layer_name == NULL || e->pid == src)                          continue;                  hash = malloc(IPCP_HASH_LEN(e)); @@ -361,7 +361,7 @@ static pid_t create_ipcp(char *         name,          pthread_mutex_init(&tmp->init_lock, NULL);          tmp->pid           = ppid->pid; -        tmp->dif_name      = NULL; +        tmp->layer_name    = NULL;          tmp->type          = ipcp_type;          tmp->init_state    = IPCP_BOOT;          tmp->dir_hash_algo = -1; @@ -477,7 +477,7 @@ static int bootstrap_ipcp(pid_t               pid,                            ipcp_config_msg_t * conf)  {          struct ipcp_entry * entry = NULL; -        struct dif_info     info; +        struct layer_info   info;          pthread_rwlock_wrlock(&irmd.reg_lock); @@ -500,8 +500,8 @@ static int bootstrap_ipcp(pid_t               pid,                  return -1;          } -        entry->dif_name = strdup(info.dif_name); -        if (entry->dif_name == NULL) { +        entry->layer_name = strdup(info.layer_name); +        if (entry->layer_name == NULL) {                  pthread_rwlock_unlock(&irmd.reg_lock);                  log_warn("Failed to set name of layer.");                  return -ENOMEM; @@ -512,7 +512,7 @@ static int bootstrap_ipcp(pid_t               pid,          pthread_rwlock_unlock(&irmd.reg_lock);          log_info("Bootstrapped IPCP %d in layer %s.", -                 pid, conf->dif_info->dif_name); +                 pid, conf->layer_info->layer_name);          return 0;  } @@ -521,7 +521,7 @@ static int enroll_ipcp(pid_t  pid,                         char * dst_name)  {          struct ipcp_entry * entry = NULL; -        struct dif_info     info; +        struct layer_info   info;          pthread_rwlock_wrlock(&irmd.reg_lock); @@ -532,7 +532,7 @@ static int enroll_ipcp(pid_t  pid,                  return -1;          } -        if (entry->dif_name != NULL) { +        if (entry->layer_name != NULL) {                  pthread_rwlock_unlock(&irmd.reg_lock);                  log_err("IPCP in wrong state");                  return -1; @@ -554,10 +554,10 @@ static int enroll_ipcp(pid_t  pid,                  return -1;          } -        entry->dif_name = strdup(info.dif_name); -        if (entry->dif_name == NULL) { +        entry->layer_name = strdup(info.layer_name); +        if (entry->layer_name == NULL) {                  pthread_rwlock_unlock(&irmd.reg_lock); -                log_err("Failed to strdup dif_name."); +                log_err("Failed to strdup layer_name.");                  return -ENOMEM;          } @@ -566,7 +566,7 @@ static int enroll_ipcp(pid_t  pid,          pthread_rwlock_unlock(&irmd.reg_lock);          log_info("Enrolled IPCP %d in layer %s.", -                 pid, info.dif_name); +                 pid, info.layer_name);          return 0;  } @@ -873,7 +873,7 @@ static ssize_t list_ipcps(char *   name,  }  static int name_reg(const char *  name, -                    char **       difs, +                    char **       layers,                      size_t        len)  {          size_t i; @@ -882,8 +882,8 @@ static int name_reg(const char *  name,          assert(name);          assert(len); -        assert(difs); -        assert(difs[0]); +        assert(layers); +        assert(layers[0]);          pthread_rwlock_wrlock(&irmd.reg_lock); @@ -929,7 +929,7 @@ static int name_reg(const char *  name,          list_for_each(p, &irmd.ipcps) {                  struct ipcp_entry * e = list_entry(p, struct ipcp_entry, next); -                if (e->dif_name == NULL) +                if (e->layer_name == NULL)                          continue;                  for (i = 0; i < len; ++i) { @@ -937,7 +937,7 @@ static int name_reg(const char *  name,                          pid_t     pid;                          size_t    len; -                        if (wildcard_match(difs[i], e->dif_name)) +                        if (wildcard_match(layers[i], e->layer_name))                                  continue;                          hash = malloc(IPCP_HASH_LEN(e)); @@ -962,15 +962,15 @@ static int name_reg(const char *  name,                          pthread_rwlock_wrlock(&irmd.reg_lock); -                        if (registry_add_name_to_dif(&irmd.registry, -                                                     name, -                                                     e->dif_name, -                                                     e->type) < 0) +                        if (registry_add_name_to_layer(&irmd.registry, +                                                       name, +                                                       e->layer_name, +                                                       e->type) < 0)                                  log_warn("Registered unbound name %s. "                                           "Registry may be corrupt.",                                           name);                          log_info("Registered %s in %s as " HASH_FMT ".", -                                 name, e->dif_name, HASH_VAL(hash)); +                                 name, e->layer_name, HASH_VAL(hash));                          ++ret;                          free(hash); @@ -983,7 +983,7 @@ static int name_reg(const char *  name,  }  static int name_unreg(const char *  name, -                      char **       difs, +                      char **       layers,                        size_t        len)  {          size_t i; @@ -992,8 +992,8 @@ static int name_unreg(const char *  name,          assert(name);          assert(len); -        assert(difs); -        assert(difs[0]); +        assert(layers); +        assert(layers[0]);          pthread_rwlock_wrlock(&irmd.reg_lock); @@ -1001,7 +1001,7 @@ static int name_unreg(const char *  name,                  struct ipcp_entry * e =                          list_entry(pos, struct ipcp_entry, next); -                if (e->dif_name == NULL) +                if (e->layer_name == NULL)                          continue;                  for (i = 0; i < len; ++i) { @@ -1009,7 +1009,7 @@ static int name_unreg(const char *  name,                          pid_t     pid;                          size_t    len; -                        if (wildcard_match(difs[i], e->dif_name)) +                        if (wildcard_match(layers[i], e->layer_name))                                  continue;                          hash = malloc(IPCP_HASH_LEN(e)); @@ -1033,11 +1033,11 @@ static int name_unreg(const char *  name,                          pthread_rwlock_wrlock(&irmd.reg_lock); -                        registry_del_name_from_dif(&irmd.registry, -                                                   name, -                                                   e->dif_name); +                        registry_del_name_from_layer(&irmd.registry, +                                                     name, +                                                     e->layer_name);                          log_info("Unregistered %s from %s.", -                                 name, e->dif_name); +                                 name, e->layer_name);                          ++ret;                          free(hash); @@ -1952,7 +1952,7 @@ static void * mainloop(void * o)                  case IRM_MSG_CODE__IRM_ENROLL_IPCP:                          ret_msg.has_result = true;                          ret_msg.result = enroll_ipcp(msg->pid, -                                                     msg->dif_name[0]); +                                                     msg->layer_name[0]);                          break;                  case IRM_MSG_CODE__IRM_CONNECT_IPCP:                          ret_msg.has_result = true; @@ -2001,14 +2001,14 @@ static void * mainloop(void * o)                  case IRM_MSG_CODE__IRM_REG:                          ret_msg.has_result = true;                          ret_msg.result = name_reg(msg->dst_name, -                                                  msg->dif_name, -                                                  msg->n_dif_name); +                                                  msg->layer_name, +                                                  msg->n_layer_name);                          break;                  case IRM_MSG_CODE__IRM_UNREG:                          ret_msg.has_result = true;                          ret_msg.result = name_unreg(msg->dst_name, -                                                    msg->dif_name, -                                                    msg->n_dif_name); +                                                    msg->layer_name, +                                                    msg->n_layer_name);                          break;                  case IRM_MSG_CODE__IRM_FLOW_ACCEPT:                          ret_msg.has_result = true; diff --git a/src/irmd/registry.c b/src/irmd/registry.c index 32975b03..ace9f225 100644 --- a/src/irmd/registry.c +++ b/src/irmd/registry.c @@ -42,9 +42,9 @@  #include <limits.h>  #include <assert.h> -struct reg_dif { +struct reg_layer {          struct list_head next; -        char *           dif_name; +        char *           layer_name;          enum ipcp_type   type;  }; @@ -69,7 +69,7 @@ static int reg_entry_init(struct reg_entry * e,                  return -1;          list_head_init(&e->next); -        list_head_init(&e->difs); +        list_head_init(&e->layers);          list_head_init(&e->reg_progs);          list_head_init(&e->reg_pids); @@ -121,10 +121,10 @@ static void cancel_reg_entry_destroy(void * o)                  free(a);          } -        list_for_each_safe(p, h, &e->difs) { -                struct reg_dif * d = list_entry(p, struct reg_dif, next); +        list_for_each_safe(p, h, &e->layers) { +                struct reg_layer * d = list_entry(p, struct reg_layer, next);                  list_del(&d->next); -                free(d->dif_name); +                free(d->layer_name);                  free(d);          } @@ -158,57 +158,57 @@ static void reg_entry_destroy(struct reg_entry * e)          pthread_cleanup_pop(true);  } -static bool reg_entry_is_local_in_dif(struct reg_entry * e, -                                      const char *       dif_name) +static bool reg_entry_is_local_in_layer(struct reg_entry * e, +                                        const char *       layer_name)  {          struct list_head * p = NULL; -        list_for_each(p, &e->difs) { -                struct reg_dif * d = list_entry(p, struct reg_dif, next); -                if (!strcmp(dif_name, d->dif_name)) +        list_for_each(p, &e->layers) { +                struct reg_layer * d = list_entry(p, struct reg_layer, next); +                if (!strcmp(layer_name, d->layer_name))                          return true;          }          return false;  } -static int reg_entry_add_local_in_dif(struct reg_entry * e, -                                      const char *       dif_name, -                                      enum ipcp_type     type) +static int reg_entry_add_local_in_layer(struct reg_entry * e, +                                        const char *       layer_name, +                                        enum ipcp_type     type)  { -        struct reg_dif * rdn; +        struct reg_layer * rdn;          /* already registered. Is ok */ -        if (reg_entry_is_local_in_dif(e, dif_name)) +        if (reg_entry_is_local_in_layer(e, layer_name))                  return 0;          rdn = malloc(sizeof(*rdn));          if (rdn == NULL)                  return -1; -        rdn->dif_name = strdup(dif_name); -        if (rdn->dif_name == NULL) { +        rdn->layer_name = strdup(layer_name); +        if (rdn->layer_name == NULL) {                  free(rdn);                  return -1;          }          rdn->type = type; -        list_add(&rdn->next, &e->difs); +        list_add(&rdn->next, &e->layers);          return 0;  } -static void reg_entry_del_local_from_dif(struct reg_entry * e, -                                         const char *       dif_name) +static void reg_entry_del_local_from_layer(struct reg_entry * e, +                                           const char *       layer_name)  {          struct list_head * p = NULL;          struct list_head * h = NULL; -        list_for_each_safe(p, h, &e->difs) { -                struct reg_dif * d = list_entry(p, struct reg_dif, next); -                if (!strcmp(dif_name, d->dif_name)) { +        list_for_each_safe(p, h, &e->layers) { +                struct reg_layer * d = list_entry(p, struct reg_layer, next); +                if (!strcmp(layer_name, d->layer_name)) {                          list_del(&d->next); -                        free(d->dif_name); +                        free(d->layer_name);                          free(d);                  }          } @@ -637,27 +637,27 @@ void registry_del_process(struct list_head * registry,          return;  } -int registry_add_name_to_dif(struct list_head * registry, -                             const char *       name, -                             const char *       dif_name, -                             enum ipcp_type     type) +int registry_add_name_to_layer(struct list_head * registry, +                               const char *       name, +                               const char *       layer_name, +                               enum ipcp_type     type)  {          struct reg_entry * re = registry_get_entry(registry, name);          if (re == NULL)                  return -1; -        return reg_entry_add_local_in_dif(re, dif_name, type); +        return reg_entry_add_local_in_layer(re, layer_name, type);  } -void registry_del_name_from_dif(struct list_head * registry, -                                const char *       name, -                                const char *       dif_name) +void registry_del_name_from_layer(struct list_head * registry, +                                  const char *       name, +                                  const char *       layer_name)  {          struct reg_entry * re = registry_get_entry(registry, name);          if (re == NULL)                  return; -        reg_entry_del_local_from_dif(re, dif_name); +        reg_entry_del_local_from_layer(re, layer_name);  }  void registry_destroy(struct list_head * registry) diff --git a/src/irmd/registry.h b/src/irmd/registry.h index e4e0f6c9..08fa9f28 100644 --- a/src/irmd/registry.h +++ b/src/irmd/registry.h @@ -56,7 +56,7 @@ struct reg_entry {          char *              name;          /* layers in which this name is registered */ -        struct list_head    difs; +        struct list_head    layers;          /* Programs that can be instantiated by the irmd */          struct list_head    reg_progs;          /* Processes that are listening for this name */ @@ -119,14 +119,14 @@ struct reg_entry *  registry_get_entry_by_hash(struct list_head * registry,                                                 const uint8_t *    hash,                                                 size_t             len); -int                 registry_add_name_to_dif(struct list_head * registry, -                                             const char *       name, -                                             const char *       dif_name, -                                             enum ipcp_type     type); - -void                registry_del_name_from_dif(struct list_head * registry, +int                 registry_add_name_to_layer(struct list_head * registry,                                                 const char *       name, -                                               const char *       dif_name); +                                               const char *       layer_name, +                                               enum ipcp_type     type); + +void                registry_del_name_from_layer(struct list_head * registry, +                                                 const char *       name, +                                                 const char *       layer_name);  void                registry_destroy(struct list_head * registry); diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 2ee285f8..8e09c427 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -6,7 +6,7 @@ include_directories(${CMAKE_BINARY_DIR}/include)  protobuf_generate_c(IRM_PROTO_SRCS IRM_PROTO_HDRS irmd_messages.proto)  protobuf_generate_c(IPCP_PROTO_SRCS IPCP_PROTO_HDRS ipcpd_messages.proto) -protobuf_generate_c(DIF_CONFIG_PROTO_SRCS DIF_CONFIG_PROTO_HDRS +protobuf_generate_c(LAYER_CONFIG_PROTO_SRCS LAYER_CONFIG_PROTO_HDRS    ipcp_config.proto)  protobuf_generate_c(CACEP_PROTO_SRCS CACEP_PROTO_HDRS cacep.proto) @@ -217,7 +217,7 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in"    "${CMAKE_CURRENT_BINARY_DIR}/config.h" @ONLY)  add_library(ouroboros-common SHARED ${SOURCE_FILES_COMMON} ${IRM_PROTO_SRCS} -  ${IPCP_PROTO_SRCS} ${DIF_CONFIG_PROTO_SRCS}) +  ${IPCP_PROTO_SRCS} ${LAYER_CONFIG_PROTO_SRCS})  add_library(ouroboros-dev SHARED ${SOURCE_FILES_DEV} ${CACEP_PROTO_SRCS}) diff --git a/src/lib/cacep.c b/src/lib/cacep.c index fb1d4845..6efb7295 100644 --- a/src/lib/cacep.c +++ b/src/lib/cacep.c @@ -49,7 +49,7 @@ static int read_msg(int                fd,          if (msg == NULL)                  return -1; -        strcpy(info->ae_name, msg->ae_name); +        strcpy(info->comp_name, msg->comp_name);          strcpy(info->protocol, msg->protocol);          info->pref_version = msg->pref_version; @@ -68,7 +68,7 @@ static int send_msg(int                      fd,          uint8_t *   data = NULL;          size_t      len  = 0; -        msg.ae_name      = (char *) info->ae_name; +        msg.comp_name    = (char *) info->comp_name;          msg.protocol     = (char *) info->protocol;          msg.address      = info->addr;          msg.pref_version = info->pref_version; diff --git a/src/lib/cacep.proto b/src/lib/cacep.proto index 945ccccb..16c7a38a 100644 --- a/src/lib/cacep.proto +++ b/src/lib/cacep.proto @@ -28,7 +28,7 @@ message fixed_conc_syntax_msg {  }  message cacep_msg { -        required string ae_name                    = 1; +        required string comp_name                  = 1;          required string protocol                   = 2;          required int32 pref_version                = 3;          repeated int32 supp_version                = 4; diff --git a/src/lib/ipcp_config.proto b/src/lib/ipcp_config.proto index 078c1491..92656f8d 100644 --- a/src/lib/ipcp_config.proto +++ b/src/lib/ipcp_config.proto @@ -1,7 +1,7 @@  /*   * Ouroboros - Copyright (C) 2016 - 2018   * - * DIF config message + * Layer configuration message   *   *    Dimitri Staessens <dimitri.staessens@ugent.be>   *    Sander Vrijders   <sander.vrijders@ugent.be> @@ -22,24 +22,24 @@  syntax = "proto2"; -message dif_info_msg { -        required string dif_name      =  1; +message layer_info_msg { +        required string layer_name    =  1;          required uint32 dir_hash_algo =  2;  }  message ipcp_config_msg { -        required dif_info_msg dif_info =  1; -        required int32 ipcp_type       =  2; +        required layer_info_msg layer_info =  1; +        required int32 ipcp_type           =  2;          // Config for normal IPCP -        optional uint32 addr_size      =  3; -        optional uint32 fd_size        =  4; -        optional bool has_ttl          =  5; -        optional uint32 addr_auth_type =  6; -        optional uint32 routing_type   =  7; -        optional uint32 pff_type       =  8; +        optional uint32 addr_size          =  3; +        optional uint32 eid_size           =  4; +        optional uint32 max_ttl            =  5; +        optional uint32 addr_auth_type     =  6; +        optional uint32 routing_type       =  7; +        optional uint32 pff_type           =  8;          // Config for UDP -        optional uint32 ip_addr        =  9; -        optional uint32 dns_addr       = 10; +        optional uint32 ip_addr            =  9; +        optional uint32 dns_addr           = 10;          // Config for the Ethernet LLC -        optional string if_name        = 11; +        optional string if_name            = 11;  } diff --git a/src/lib/ipcpd_messages.proto b/src/lib/ipcpd_messages.proto index af25189e..2d3bad7f 100644 --- a/src/lib/ipcpd_messages.proto +++ b/src/lib/ipcpd_messages.proto @@ -39,16 +39,16 @@ enum ipcp_msg_code {  };  message ipcp_msg { -        required ipcp_msg_code code    =  1; -        optional string name           =  2; -        optional bytes hash            =  3; -        optional int32 port_id         =  4; -        optional string dst_name       =  5; -        optional uint32 qoscube        =  6; -        optional ipcp_config_msg conf  =  7; -        optional int32 pid             =  8; -        optional dif_info_msg dif_info =  9; -        optional int32 response        = 10; -        optional string comp_name      = 11; -        optional int32 result          = 12; +        required ipcp_msg_code code        =  1; +        optional string name               =  2; +        optional bytes hash                =  3; +        optional int32 port_id             =  4; +        optional string dst_name           =  5; +        optional uint32 qoscube            =  6; +        optional ipcp_config_msg conf      =  7; +        optional int32 pid                 =  8; +        optional layer_info_msg layer_info =  9; +        optional int32 response            = 10; +        optional string comp_name          = 11; +        optional int32 result              = 12;  }; diff --git a/src/lib/irm.c b/src/lib/irm.c index 8f5a5191..66b5c849 100644 --- a/src/lib/irm.c +++ b/src/lib/irm.c @@ -94,11 +94,11 @@ int irm_destroy_ipcp(pid_t pid)  int irm_bootstrap_ipcp(pid_t                      pid,                         const struct ipcp_config * conf)  { -        irm_msg_t         msg      = IRM_MSG__INIT; -        ipcp_config_msg_t config   = IPCP_CONFIG_MSG__INIT; -        dif_info_msg_t    dif_info = DIF_INFO_MSG__INIT; -        irm_msg_t *       recv_msg = NULL; -        int               ret      = -1; +        irm_msg_t         msg        = IRM_MSG__INIT; +        ipcp_config_msg_t config     = IPCP_CONFIG_MSG__INIT; +        layer_info_msg_t  layer_info = LAYER_INFO_MSG__INIT; +        irm_msg_t *       recv_msg   = NULL; +        int               ret        = -1;          if (pid == -1 || conf == NULL)                  return -EINVAL; @@ -107,10 +107,9 @@ int irm_bootstrap_ipcp(pid_t                      pid,          msg.has_pid = true;          msg.pid     = pid; -        config.dif_info = &dif_info; -        msg.conf = &config; - -        dif_info.dif_name = (char *) conf->dif_info.dif_name; +        config.layer_info     = &layer_info; +        msg.conf              = &config; +        layer_info.layer_name = (char *) conf->layer_info.layer_name;          config.ipcp_type = conf->type; @@ -118,17 +117,17 @@ int irm_bootstrap_ipcp(pid_t                      pid,          case IPCP_NORMAL:                  config.has_addr_size      = true;                  config.addr_size          = conf->addr_size; -                config.has_fd_size        = true; -                config.fd_size            = conf->fd_size; -                config.has_has_ttl        = true; -                config.has_ttl            = conf->has_ttl; +                config.has_eid_size       = true; +                config.eid_size           = conf->eid_size; +                config.has_max_ttl        = true; +                config.max_ttl            = conf->max_ttl;                  config.has_addr_auth_type = true;                  config.addr_auth_type     = conf->addr_auth_type;                  config.has_routing_type   = true;                  config.routing_type       = conf->routing_type;                  config.has_pff_type       = true;                  config.pff_type           = conf->pff_type; -                dif_info.dir_hash_algo    = conf->dif_info.dir_hash_algo; +                layer_info.dir_hash_algo  = conf->layer_info.dir_hash_algo;                  break;          case IPCP_UDP:                  config.has_ip_addr  = true; @@ -258,28 +257,28 @@ ssize_t irm_list_ipcps(const char * name,  }  int irm_enroll_ipcp(pid_t        pid, -                    const char * dif_name) +                    const char * layer_name)  {          irm_msg_t   msg      = IRM_MSG__INIT;          irm_msg_t * recv_msg = NULL;          int         ret      = -1; -        if (pid == -1 || dif_name == NULL) +        if (pid == -1 || layer_name == NULL)                  return -EINVAL; -        msg.code       = IRM_MSG_CODE__IRM_ENROLL_IPCP; -        msg.has_pid    = true; -        msg.pid        = pid; -        msg.n_dif_name = 1; -        msg.dif_name   = malloc(sizeof(*(msg.dif_name))); -        if (msg.dif_name == NULL) +        msg.code         = IRM_MSG_CODE__IRM_ENROLL_IPCP; +        msg.has_pid      = true; +        msg.pid          = pid; +        msg.n_layer_name = 1; +        msg.layer_name   = malloc(sizeof(*(msg.layer_name))); +        if (msg.layer_name == NULL)                  return -ENOMEM; -        msg.dif_name[0] = (char *) dif_name; +        msg.layer_name[0] = (char *) layer_name;          recv_msg = send_recv_irm_msg(&msg);          if (recv_msg == NULL) { -                free(msg.dif_name); +                free(msg.layer_name);                  return -EIRMD;          } @@ -291,7 +290,7 @@ int irm_enroll_ipcp(pid_t        pid,          ret = recv_msg->result;          irm_msg__free_unpacked(recv_msg, NULL); -        free(msg.dif_name); +        free(msg.layer_name);          return ret;  } @@ -519,22 +518,22 @@ int irm_unbind_process(pid_t        pid,  }  int irm_reg(const char * name, -            char **      difs, +            char **      layers,              size_t       len)  { -        irm_msg_t msg = IRM_MSG__INIT; +        irm_msg_t   msg      = IRM_MSG__INIT;          irm_msg_t * recv_msg = NULL; -        int ret = -1; +        int         ret      = -1; -        if (name == NULL || difs == NULL || len == 0) +        if (name == NULL || layers == NULL || len == 0)                  return -EINVAL;          msg.code = IRM_MSG_CODE__IRM_REG;          msg.dst_name = (char *) name; -        msg.dif_name = difs; -        msg.n_dif_name = len; +        msg.layer_name   = layers; +        msg.n_layer_name = len;          recv_msg = send_recv_irm_msg(&msg);          if (recv_msg == NULL) @@ -553,22 +552,22 @@ int irm_reg(const char * name,  int irm_unreg(const char * name, -              char **      difs, +              char **      layers,                size_t       len)  { -        irm_msg_t msg = IRM_MSG__INIT; +        irm_msg_t   msg      = IRM_MSG__INIT;          irm_msg_t * recv_msg = NULL; -        int ret = -1; +        int         ret      = -1; -        if (name == NULL || difs == NULL || len == 0) +        if (name == NULL || layers == NULL || len == 0)                  return -EINVAL;          msg.code = IRM_MSG_CODE__IRM_UNREG;          msg.dst_name = (char *) name; -        msg.dif_name = (char **) difs; -        msg.n_dif_name = len; +        msg.layer_name   = (char **) layers; +        msg.n_layer_name = len;          recv_msg = send_recv_irm_msg(&msg);          if (recv_msg == NULL) diff --git a/src/lib/irmd_messages.proto b/src/lib/irmd_messages.proto index b4b28136..51b15023 100644 --- a/src/lib/irmd_messages.proto +++ b/src/lib/irmd_messages.proto @@ -53,7 +53,7 @@ message irm_msg {          optional string prog_name     =  2;          optional sint32 pid           =  3;          optional uint32 ipcp_type     =  4; -        repeated string dif_name      =  5; +        repeated string layer_name    =  5;          repeated string args          =  6;          optional sint32 response      =  7;          optional string dst_name      =  8; diff --git a/src/tools/irm/irm_ipcp_bootstrap.c b/src/tools/irm/irm_ipcp_bootstrap.c index 2acb6516..3cad072a 100644 --- a/src/tools/irm/irm_ipcp_bootstrap.c +++ b/src/tools/irm/irm_ipcp_bootstrap.c @@ -62,8 +62,9 @@  #define SHA3_512               "SHA3_512"  #define DEFAULT_ADDR_SIZE      4 -#define DEFAULT_FD_SIZE        2 +#define DEFAULT_EID_SIZE       2  #define DEFAULT_DDNS           0 +#define DEFAULT_TTL            60  #define DEFAULT_ADDR_AUTH      ADDR_AUTH_FLAT_RANDOM  #define DEFAULT_ROUTING        ROUTING_LINK_STATE  #define DEFAULT_PFF            PFF_SIMPLE @@ -76,7 +77,7 @@  static void usage(void)  { -        /* FIXME: Add ipcp_config stuff */ +        /* FIXME: Add ipcp_config stuff. */          printf("Usage: irm ipcp bootstrap\n"                 "                name <ipcp name>\n"                 "                layer <layer name>\n" @@ -85,8 +86,8 @@ static void usage(void)                 UDP " " ETH_LLC " " RAPTOR "},\n\n"                 "if TYPE == " NORMAL "\n"                 "                [addr <address size> (default: %d)]\n" -               "                [fd <fd size> (default: %d)]\n" -               "                [ttl (add time to live value in the PCI)]\n" +               "                [eid <eid size> (default: %d)]\n" +               "                [ttl (max time-to-live value, default: %d)]\n"                 "                [addr_auth <ADDRESS_POLICY> (default: %s)]\n"                 "                [routing <ROUTING_POLICY> (default: %s)]\n"                 "                [pff [PFF_POLICY] (default: %s)]\n" @@ -115,9 +116,9 @@ static void usage(void)                 "                [hash [ALGORITHM] (default: %s)]\n"                 "where ALGORITHM = {" SHA3_224 " " SHA3_256 " "                 SHA3_384 " " SHA3_512 "}\n\n", -               DEFAULT_ADDR_SIZE, DEFAULT_FD_SIZE, FLAT_RANDOM_ADDR_AUTH, -               LINK_STATE_ROUTING, SIMPLE_PFF, SHA3_256, SHA3_256, SHA3_256, -               SHA3_256); +               DEFAULT_ADDR_SIZE, DEFAULT_EID_SIZE, DEFAULT_TTL, +               FLAT_RANDOM_ADDR_AUTH, LINK_STATE_ROUTING, SIMPLE_PFF, +               SHA3_256, SHA3_256, SHA3_256, SHA3_256);  }  int do_bootstrap_ipcp(int     argc, @@ -127,8 +128,8 @@ int do_bootstrap_ipcp(int     argc,          pid_t              pid;          struct ipcp_config conf;          uint8_t            addr_size      = DEFAULT_ADDR_SIZE; -        uint8_t            fd_size        = DEFAULT_FD_SIZE; -        bool               has_ttl        = false; +        uint8_t            eid_size       = DEFAULT_EID_SIZE; +        uint8_t            max_ttl        = DEFAULT_TTL;          enum pol_addr_auth addr_auth_type = DEFAULT_ADDR_AUTH;          enum pol_routing   routing_type   = DEFAULT_ROUTING;          enum pol_pff       pff_type       = DEFAULT_PFF; @@ -136,7 +137,7 @@ int do_bootstrap_ipcp(int     argc,          uint32_t           ip_addr        = 0;          uint32_t           dns_addr       = DEFAULT_DDNS;          char *             ipcp_type      = NULL; -        char *             dif_name       = NULL; +        char *             layer_name     = NULL;          char *             if_name        = NULL;          pid_t *            pids           = NULL;          ssize_t            len            = 0; @@ -149,7 +150,7 @@ int do_bootstrap_ipcp(int     argc,                  if (matches(*argv, "type") == 0) {                          ipcp_type = *(argv + 1);                  } else if (matches(*argv, "layer") == 0) { -                        dif_name = *(argv + 1); +                        layer_name = *(argv + 1);                  } else if (matches(*argv, "name") == 0) {                          name = *(argv + 1);                  } else if (matches(*argv, "hash") == 0) { @@ -173,11 +174,10 @@ int do_bootstrap_ipcp(int     argc,                          if_name = *(argv + 1);                  } else if (matches(*argv, "addr") == 0) {                          addr_size = atoi(*(argv + 1)); -                } else if (matches(*argv, "fd") == 0) { -                        fd_size = atoi(*(argv + 1)); +                } else if (matches(*argv, "eid") == 0) { +                        eid_size = atoi(*(argv + 1));                  } else if (matches(*argv, "ttl") == 0) { -                        has_ttl = true; -                        cargs = 1; +                        max_ttl = atoi(*(argv + 1));                  } else if (matches(*argv, "autobind") == 0) {                          autobind = true;                          cargs = 1; @@ -210,23 +210,23 @@ int do_bootstrap_ipcp(int     argc,                  argv += cargs;          } -        if (name == NULL || dif_name == NULL || ipcp_type == NULL) { +        if (name == NULL || layer_name == NULL || ipcp_type == NULL) {                  usage();                  return -1;          } -        strcpy(conf.dif_info.dif_name, dif_name); +        strcpy(conf.layer_info.layer_name, layer_name);          if (strcmp(ipcp_type, UDP) != 0) -                conf.dif_info.dir_hash_algo = hash_algo; +                conf.layer_info.dir_hash_algo = hash_algo;          if (strcmp(ipcp_type, NORMAL) == 0) { -                conf.type = IPCP_NORMAL; -                conf.addr_size = addr_size; -                conf.fd_size = fd_size; -                conf.has_ttl = has_ttl; +                conf.type           = IPCP_NORMAL; +                conf.addr_size      = addr_size; +                conf.eid_size       = eid_size; +                conf.max_ttl        = max_ttl;                  conf.addr_auth_type = addr_auth_type; -                conf.routing_type = routing_type; -                conf.pff_type = pff_type; +                conf.routing_type   = routing_type; +                conf.pff_type       = pff_type;          } else if (strcmp(ipcp_type, UDP) == 0) {                  conf.type = IPCP_UDP;                  if (ip_addr == 0) { @@ -271,8 +271,9 @@ int do_bootstrap_ipcp(int     argc,                          return -1;                  } -                if (autobind && irm_bind_process(pids[i], dif_name)) { -                        printf("Failed to bind %d to %s.\n", pids[i], dif_name); +                if (autobind && irm_bind_process(pids[i], layer_name)) { +                        printf("Failed to bind %d to %s.\n", +                               pids[i], layer_name);                          irm_unbind_process(pids[i], name);                          free(pids);                          return -1; @@ -281,7 +282,7 @@ int do_bootstrap_ipcp(int     argc,                  if (irm_bootstrap_ipcp(pids[i], &conf)) {                          if (autobind) {                                  irm_unbind_process(pids[i], name); -                                irm_unbind_process(pids[i], dif_name); +                                irm_unbind_process(pids[i], layer_name);                          }                          free(pids);                          return -1; diff --git a/src/tools/irm/irm_ipcp_connect.c b/src/tools/irm/irm_ipcp_connect.c index d58adb56..b9cad57d 100644 --- a/src/tools/irm/irm_ipcp_connect.c +++ b/src/tools/irm/irm_ipcp_connect.c @@ -93,10 +93,10 @@ int do_connect_ipcp(int     argc,                  return -1;          if (!strcmp(comp_name, DT)) -                comp_name = DT_AE; +                comp_name = DT_COMP;          if (!strcmp(comp_name , MGMT)) -                comp_name = MGMT_AE; +                comp_name = MGMT_COMP;          if (irm_connect_ipcp(pids[0], dst_name, comp_name)) {                  free(pids); diff --git a/src/tools/irm/irm_ipcp_disconnect.c b/src/tools/irm/irm_ipcp_disconnect.c index 64ca1ea8..8b5eb596 100644 --- a/src/tools/irm/irm_ipcp_disconnect.c +++ b/src/tools/irm/irm_ipcp_disconnect.c @@ -93,10 +93,10 @@ int do_disconnect_ipcp(int     argc,                  return -1;          if (!strcmp(comp_name, DT)) -                comp_name = DT_AE; +                comp_name = DT_COMP;          if (!strcmp(comp_name , MGMT)) -                comp_name = MGMT_AE; +                comp_name = MGMT_COMP;          if (irm_disconnect_ipcp(pids[0], dst_name, comp_name)) {                  free(pids); diff --git a/src/tools/irm/irm_ipcp_enroll.c b/src/tools/irm/irm_ipcp_enroll.c index e827dcf0..8b897096 100644 --- a/src/tools/irm/irm_ipcp_enroll.c +++ b/src/tools/irm/irm_ipcp_enroll.c @@ -54,13 +54,13 @@ static void usage(void)  int do_enroll_ipcp(int argc, char ** argv)  { -        char *  name     = NULL; -        char *  dif_name = NULL; -        pid_t * pids     = NULL; +        char *  name       = NULL; +        char *  layer_name = NULL; +        pid_t * pids       = NULL;          pid_t   pid; -        ssize_t len      = 0; -        int     i        = 0; -        bool    autobind = false; +        ssize_t len        = 0; +        int     i          = 0; +        bool    autobind   = false;          int     cargs;          while (argc > 0) { @@ -68,7 +68,7 @@ int do_enroll_ipcp(int argc, char ** argv)                  if (matches(*argv, "name") == 0) {                          name = *(argv + 1);                  } else if (matches(*argv, "layer") == 0) { -                        dif_name = *(argv + 1); +                        layer_name = *(argv + 1);                  } else if (matches(*argv, "autobind") == 0) {                          autobind = true;                          cargs = 1; @@ -82,7 +82,7 @@ int do_enroll_ipcp(int argc, char ** argv)                  argv += cargs;          } -        if (dif_name == NULL || name == NULL) { +        if (layer_name == NULL || name == NULL) {                  usage();                  return -1;          } @@ -101,15 +101,16 @@ int do_enroll_ipcp(int argc, char ** argv)                          return -1;                  } -                if (irm_enroll_ipcp(pids[i], dif_name)) { +                if (irm_enroll_ipcp(pids[i], layer_name)) {                          if (autobind)                                  irm_unbind_process(pids[i], name);                          free(pids);                          return -1;                  } -                if (autobind && irm_bind_process(pids[i], dif_name)) { -                        printf("Failed to bind %d to %s.\n", pids[i], dif_name); +                if (autobind && irm_bind_process(pids[i], layer_name)) { +                        printf("Failed to bind %d to %s.\n", +                               pids[i], layer_name);                          free(pids);                          return -1;                  } diff --git a/src/tools/irm/irm_register.c b/src/tools/irm/irm_register.c index f75220be..574c2224 100644 --- a/src/tools/irm/irm_register.c +++ b/src/tools/irm/irm_register.c @@ -59,15 +59,15 @@ static void usage(void)  int do_register(int argc, char ** argv)  {          char * name = NULL; -        char * difs[MAX_LAYERS]; -        size_t difs_len = 0; +        char * layers[MAX_LAYERS]; +        size_t layers_len = 0;          while (argc > 0) {                  if (matches(*argv, "name") == 0) {                          name = *(argv + 1);                  } else if (matches(*argv, "layer") == 0) { -                        difs[difs_len++] = *(argv + 1); -                        if (difs_len > MAX_LAYERS) { +                        layers[layers_len++] = *(argv + 1); +                        if (layers_len > MAX_LAYERS) {                                  printf("Too many layers specified\n");                                  return -1;                          } @@ -81,10 +81,10 @@ int do_register(int argc, char ** argv)                  argv += 2;          } -        if (difs_len < 1 || name == NULL) { +        if (layers_len < 1 || name == NULL) {                  usage();                  return -1;          } -        return irm_reg(name, difs, difs_len); +        return irm_reg(name, layers, layers_len);  } diff --git a/src/tools/irm/irm_unregister.c b/src/tools/irm/irm_unregister.c index b6b3e242..3b161169 100644 --- a/src/tools/irm/irm_unregister.c +++ b/src/tools/irm/irm_unregister.c @@ -58,17 +58,17 @@ static void usage(void)  int do_unregister(int argc, char ** argv)  { -        char * difs[MAX_LAYERS]; -        size_t difs_len = 0; +        char * layers[MAX_LAYERS]; +        size_t layers_len = 0;          char * name = NULL;          while (argc > 0) {                  if (matches(*argv, "name") == 0) {                          name = *(argv + 1);                  } else if (matches(*argv, "layer") == 0) { -                        difs[difs_len++] = *(argv + 1); -                        if (difs_len > MAX_LAYERS) { -                                printf("Too many difs specified\n"); +                        layers[layers_len++] = *(argv + 1); +                        if (layers_len > MAX_LAYERS) { +                                printf("Too many layers specified\n");                                  return -1;                          }                  } else { @@ -81,10 +81,10 @@ int do_unregister(int argc, char ** argv)                  argv += 2;          } -        if (difs_len == 0 || name == NULL) { +        if (layers_len == 0 || name == NULL) {                  usage();                  return -1;          } -        return irm_unreg(name, difs, difs_len); +        return irm_unreg(name, layers, layers_len);  }  | 
