summaryrefslogtreecommitdiff
path: root/src/ipcpd/normal
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipcpd/normal')
-rw-r--r--src/ipcpd/normal/addr_auth.h2
-rw-r--r--src/ipcpd/normal/connmgr.c7
-rw-r--r--src/ipcpd/normal/connmgr.h2
-rw-r--r--src/ipcpd/normal/dir.c37
-rw-r--r--src/ipcpd/normal/dir.h6
-rw-r--r--src/ipcpd/normal/enroll.c46
-rw-r--r--src/ipcpd/normal/enroll.h2
-rw-r--r--src/ipcpd/normal/flow_alloc.proto2
-rw-r--r--src/ipcpd/normal/fmgr.c31
-rw-r--r--src/ipcpd/normal/fmgr.h6
-rw-r--r--src/ipcpd/normal/gam.h2
-rw-r--r--src/ipcpd/normal/main.c130
-rw-r--r--src/ipcpd/normal/neighbors.h2
-rw-r--r--src/ipcpd/normal/pol/complete.h2
-rw-r--r--src/ipcpd/normal/ribconfig.h2
-rw-r--r--src/ipcpd/normal/ribmgr.h2
16 files changed, 96 insertions, 185 deletions
diff --git a/src/ipcpd/normal/addr_auth.h b/src/ipcpd/normal/addr_auth.h
index fbe7d790..6883b4b3 100644
--- a/src/ipcpd/normal/addr_auth.h
+++ b/src/ipcpd/normal/addr_auth.h
@@ -23,7 +23,7 @@
#ifndef OUROBOROS_IPCPD_NORMAL_ADDR_AUTH_H
#define OUROBOROS_IPCPD_NORMAL_ADDR_AUTH_H
-#include <ouroboros/irm_config.h>
+#include <ouroboros/ipcp.h>
#include <stdint.h>
diff --git a/src/ipcpd/normal/connmgr.c b/src/ipcpd/normal/connmgr.c
index 8068d173..421bc5b0 100644
--- a/src/ipcpd/normal/connmgr.c
+++ b/src/ipcpd/normal/connmgr.c
@@ -116,16 +116,11 @@ static void * flow_acceptor(void * o)
memset(&fail_info, 0, sizeof(fail_info));
while (true) {
- pthread_rwlock_rdlock(&ipcpi.state_lock);
-
if (ipcp_get_state() != IPCP_OPERATIONAL) {
- pthread_rwlock_unlock(&ipcpi.state_lock);
log_info("Shutting down flow acceptor.");
return 0;
}
- pthread_rwlock_unlock(&ipcpi.state_lock);
-
fd = flow_accept(&qs, NULL);
if (fd < 0) {
if (fd != -EIRMD)
@@ -271,7 +266,7 @@ void connmgr_ae_destroy(struct ae * ae)
}
int connmgr_alloc(struct ae * ae,
- char * dst_name,
+ const char * dst_name,
qosspec_t * qs,
struct conn * conn)
{
diff --git a/src/ipcpd/normal/connmgr.h b/src/ipcpd/normal/connmgr.h
index c0356f6d..12992ef6 100644
--- a/src/ipcpd/normal/connmgr.h
+++ b/src/ipcpd/normal/connmgr.h
@@ -47,7 +47,7 @@ struct ae * connmgr_ae_create(struct conn_info info);
void connmgr_ae_destroy(struct ae * ae);
int connmgr_alloc(struct ae * ae,
- char * dst_name,
+ const char * dst,
qosspec_t * qs,
struct conn * conn);
diff --git a/src/ipcpd/normal/dir.c b/src/ipcpd/normal/dir.c
index ae9793c6..cbc50ba4 100644
--- a/src/ipcpd/normal/dir.c
+++ b/src/ipcpd/normal/dir.c
@@ -60,22 +60,23 @@ int dir_fini(void)
return 0;
}
-int dir_name_reg(char * name)
+int dir_reg(const uint8_t * hash)
{
+ char hashstr[DIR_HASH_STRLEN + 1];
int ret;
- assert(name);
-
- if (ipcp_get_state() != IPCP_OPERATIONAL)
- return -EPERM;
+ assert(hash);
dir_path_reset();
- ret = rib_add(dir_path, name);
+ ipcp_hash_str(hashstr, hash);
+
+ ret = rib_add(dir_path, hashstr);
if (ret == -ENOMEM)
- return -ENOMEM;
+ return -ENOMEM;
+
+ rib_path_append(dir_path, hashstr);
- rib_path_append(dir_path, name);
ret = rib_add(dir_path, ipcpi.name);
if (ret == -EPERM)
return -EPERM;
@@ -88,18 +89,16 @@ int dir_name_reg(char * name)
return 0;
}
-int dir_name_unreg(char * name)
+int dir_unreg(const uint8_t * hash)
{
+ char hashstr[DIR_HASH_STRLEN + 1];
size_t len;
- assert(name);
-
- if (ipcp_get_state() != IPCP_OPERATIONAL)
- return -EPERM;
+ assert(hash);
dir_path_reset();
- rib_path_append(dir_path, name);
+ rib_path_append(dir_path, hashstr);
if (!rib_has(dir_path))
return 0;
@@ -118,16 +117,16 @@ int dir_name_unreg(char * name)
return 0;
}
-int dir_name_query(char * name)
+int dir_query(const uint8_t * hash)
{
+ char hashstr[DIR_HASH_STRLEN + 1];
size_t len;
- if (ipcp_get_state() != IPCP_OPERATIONAL)
- return -EPERM;
-
dir_path_reset();
- rib_path_append(dir_path, name);
+ ipcp_hash_str(hashstr, hash);
+
+ rib_path_append(dir_path, hashstr);
if (!rib_has(dir_path))
return -1;
diff --git a/src/ipcpd/normal/dir.h b/src/ipcpd/normal/dir.h
index 04e722f3..1b28a5c0 100644
--- a/src/ipcpd/normal/dir.h
+++ b/src/ipcpd/normal/dir.h
@@ -27,10 +27,10 @@ int dir_init(void);
int dir_fini(void);
-int dir_name_reg(char * name);
+int dir_reg(const uint8_t * hash);
-int dir_name_unreg(char * name);
+int dir_unreg(const uint8_t * hash);
-int dir_name_query(char * name);
+int dir_query(const uint8_t * hash);
#endif /* OUROBOROS_IPCPD_NORMAL_DIR_H */
diff --git a/src/ipcpd/normal/enroll.c b/src/ipcpd/normal/enroll.c
index 3e6a0197..f1f804c6 100644
--- a/src/ipcpd/normal/enroll.c
+++ b/src/ipcpd/normal/enroll.c
@@ -65,11 +65,9 @@ static void * enroll_handle(void * o)
bool boot_r = false;
bool members_r = false;
- bool dif_name_r = false;
char * boot_ro = BOOT_PATH;
char * members_ro = MEMBERS_PATH;
- char * dif_ro = DIF_PATH;
cdap = (struct cdap *) o;
@@ -87,7 +85,7 @@ static void * enroll_handle(void * o)
continue;
}
- while (!(boot_r && members_r && dif_name_r)) {
+ while (!(boot_r && members_r)) {
key = cdap_request_wait(cdap, &oc, &name, &data,
(size_t *) &len , &flags);
assert(key >= 0);
@@ -109,8 +107,6 @@ static void * enroll_handle(void * o)
boot_r = true;
} else if (strcmp(name, members_ro) == 0) {
members_r = true;
- } else if (strcmp(name, dif_ro) == 0) {
- dif_name_r = true;
} else if (strcmp(name, TIME_PATH) == 0) {
struct timespec t;
uint64_t buf[2];
@@ -153,13 +149,13 @@ static void * enroll_handle(void * o)
cdap_del_flow(cdap, conn.flow_info.fd);
flow_dealloc(conn.flow_info.fd);
- boot_r = members_r = dif_name_r = false;
+ boot_r = members_r = false;
}
return 0;
}
-int enroll_boot(char * dst_name)
+int enroll_boot(const char * dst)
{
struct cdap * cdap;
cdap_key_t * key;
@@ -174,7 +170,6 @@ int enroll_boot(char * dst_name)
char * boot_ro = BOOT_PATH;
char * members_ro = MEMBERS_PATH;
- char * dif_ro = DIF_PATH;
cdap = cdap_create();
if (cdap == NULL) {
@@ -182,7 +177,7 @@ int enroll_boot(char * dst_name)
return -1;
}
- if (connmgr_alloc(enroll.ae, dst_name, NULL, &conn)) {
+ if (connmgr_alloc(enroll.ae, dst, NULL, &conn)) {
log_err("Failed to get connection.");
cdap_destroy(cdap);
return -1;
@@ -195,7 +190,7 @@ int enroll_boot(char * dst_name)
return -1;
}
- log_dbg("Getting boot information from %s.", dst_name);
+ log_dbg("Getting boot information from %s.", dst);
clock_gettime(CLOCK_REALTIME, &t0);
@@ -293,37 +288,6 @@ int enroll_boot(char * dst_name)
log_dbg("Packed information inserted into RIB.");
- key = cdap_request_send(cdap, CDAP_READ, dif_ro, NULL, 0, 0);
- if (key == NULL || key[0] == INVALID_CDAP_KEY) {
- log_err("Failed to send CDAP request.");
- cdap_destroy(cdap);
- flow_dealloc(conn.flow_info.fd);
- return -1;
- }
-
- if (cdap_reply_wait(cdap, key[0], &data, &len)) {
- log_err("Failed to get CDAP reply.");
- free(key);
- cdap_destroy(cdap);
- flow_dealloc(conn.flow_info.fd);
- return -1;
- }
-
- free(key);
-
- log_dbg("Packed information received (%zu bytes).", len);
-
- if (rib_unpack(data, len, UNPACK_CREATE)) {
- log_warn("Error unpacking RIB data.");
- rib_del(boot_ro);
- free(data);
- cdap_destroy(cdap);
- flow_dealloc(conn.flow_info.fd);
- return -1;
- }
-
- log_dbg("Packed information inserted into RIB.");
-
cdap_destroy(cdap);
flow_dealloc(conn.flow_info.fd);
diff --git a/src/ipcpd/normal/enroll.h b/src/ipcpd/normal/enroll.h
index 05f950ba..bed4bf9f 100644
--- a/src/ipcpd/normal/enroll.h
+++ b/src/ipcpd/normal/enroll.h
@@ -31,6 +31,6 @@ int enroll_start(void);
void enroll_stop(void);
-int enroll_boot(char * dst_name);
+int enroll_boot(const char * dst);
#endif /* OUROBOROS_IPCPD_NORMAL_ENROLL_H */
diff --git a/src/ipcpd/normal/flow_alloc.proto b/src/ipcpd/normal/flow_alloc.proto
index 3b08f047..35624799 100644
--- a/src/ipcpd/normal/flow_alloc.proto
+++ b/src/ipcpd/normal/flow_alloc.proto
@@ -30,7 +30,7 @@ enum flow_alloc_code {
message flow_alloc_msg {
required flow_alloc_code code = 1;
- optional string dst_name = 2;
+ optional bytes hash = 2;
optional uint32 qoscube = 3;
optional sint32 response = 4;
};
diff --git a/src/ipcpd/normal/fmgr.c b/src/ipcpd/normal/fmgr.c
index 19c329af..5166cc5d 100644
--- a/src/ipcpd/normal/fmgr.c
+++ b/src/ipcpd/normal/fmgr.c
@@ -427,9 +427,9 @@ void fmgr_stop(void)
gam_destroy(fmgr.gam);
}
-int fmgr_np1_alloc(int fd,
- char * dst_ap_name,
- qoscube_t cube)
+int fmgr_np1_alloc(int fd,
+ const uint8_t * dst,
+ qoscube_t cube)
{
cep_id_t cep_id;
buffer_t buf;
@@ -439,14 +439,17 @@ int fmgr_np1_alloc(int fd,
ssize_t ch;
ssize_t i;
char ** children;
+ char hashstr[DIR_HASH_STRLEN + 1];
char * dst_ipcp = NULL;
- assert(strlen(dst_ap_name) + strlen("/" DIR_NAME) + 1
+ ipcp_hash_str(hashstr, dst);
+
+ assert(strlen(hashstr) + strlen(DIR_PATH) + 1
< RIB_MAX_PATH_LEN);
strcpy(path, DIR_PATH);
- rib_path_append(path, dst_ap_name);
+ rib_path_append(path, hashstr);
ch = rib_children(path, &children);
if (ch <= 0)
@@ -463,7 +466,7 @@ int fmgr_np1_alloc(int fd,
if (dst_ipcp == NULL)
return -1;
- strcpy(path, "/" MEMBERS_NAME);
+ strcpy(path, MEMBERS_PATH);
rib_path_append(path, dst_ipcp);
@@ -472,10 +475,12 @@ int fmgr_np1_alloc(int fd,
if (rib_read(path, &addr, sizeof(addr)) < 0)
return -1;
- msg.code = FLOW_ALLOC_CODE__FLOW_REQ;
- msg.dst_name = dst_ap_name;
+ msg.code = FLOW_ALLOC_CODE__FLOW_REQ;
+ msg.has_hash = true;
+ msg.hash.len = ipcpi.dir_hash_len;
+ msg.hash.data = (uint8_t *) dst;
msg.has_qoscube = true;
- msg.qoscube = cube;
+ msg.qoscube = cube;
buf.len = flow_alloc_msg__get_packed_size(&msg);
if (buf.len == 0)
@@ -637,6 +642,11 @@ int fmgr_np1_post_buf(cep_id_t cep_id,
case FLOW_ALLOC_CODE__FLOW_REQ:
pthread_mutex_lock(&ipcpi.alloc_lock);
+ if (!msg->has_hash) {
+ log_err("Bad flow request.");
+ return -1;
+ }
+
while (ipcpi.alloc_id != -1 &&
ipcp_get_state() == IPCP_OPERATIONAL)
pthread_cond_timedwait(&ipcpi.alloc_cond,
@@ -652,7 +662,8 @@ int fmgr_np1_post_buf(cep_id_t cep_id,
assert(ipcpi.alloc_id == -1);
fd = ipcp_flow_req_arr(getpid(),
- msg->dst_name,
+ msg->hash.data,
+ ipcpi.dir_hash_len,
msg->qoscube);
if (fd < 0) {
pthread_mutex_unlock(&ipcpi.alloc_lock);
diff --git a/src/ipcpd/normal/fmgr.h b/src/ipcpd/normal/fmgr.h
index b4d0b65a..c59c0875 100644
--- a/src/ipcpd/normal/fmgr.h
+++ b/src/ipcpd/normal/fmgr.h
@@ -37,9 +37,9 @@ int fmgr_start(void);
void fmgr_stop(void);
-int fmgr_np1_alloc(int fd,
- char * dst_ap_name,
- qoscube_t qos);
+int fmgr_np1_alloc(int fd,
+ const uint8_t * dst,
+ qoscube_t qos);
int fmgr_np1_alloc_resp(int fd,
int response);
diff --git a/src/ipcpd/normal/gam.h b/src/ipcpd/normal/gam.h
index 4ae0b1b3..752d8e37 100644
--- a/src/ipcpd/normal/gam.h
+++ b/src/ipcpd/normal/gam.h
@@ -23,8 +23,8 @@
#ifndef OUROBOROS_IPCPD_NORMAL_GAM_H
#define OUROBOROS_IPCPD_NORMAL_GAM_H
+#include <ouroboros/ipcp.h>
#include <ouroboros/cacep.h>
-#include <ouroboros/irm_config.h>
#include "neighbors.h"
diff --git a/src/ipcpd/normal/main.c b/src/ipcpd/normal/main.c
index ef7f07cf..e37a0fbc 100644
--- a/src/ipcpd/normal/main.c
+++ b/src/ipcpd/normal/main.c
@@ -23,12 +23,13 @@
#define OUROBOROS_PREFIX "normal-ipcp"
#include <ouroboros/config.h>
+#include <ouroboros/endian.h>
#include <ouroboros/logs.h>
#include <ouroboros/ipcp-dev.h>
#include <ouroboros/time_utils.h>
#include <ouroboros/irm.h>
#include <ouroboros/rib.h>
-#include <ouroboros/irm_config.h>
+#include <ouroboros/hash.h>
#include <ouroboros/errno.h>
#include "addr_auth.h"
@@ -49,37 +50,6 @@
#define THIS_TYPE IPCP_NORMAL
-void ipcp_sig_handler(int sig,
- siginfo_t * info,
- void * c)
-{
- (void) c;
-
- switch(sig) {
- case SIGINT:
- case SIGTERM:
- case SIGHUP:
- if (info->si_pid == ipcpi.irmd_api) {
- pthread_rwlock_wrlock(&ipcpi.state_lock);
-
- if (ipcp_get_state() == IPCP_INIT)
- ipcp_set_state(IPCP_NULL);
-
- if (ipcp_get_state() == IPCP_OPERATIONAL)
- ipcp_set_state(IPCP_SHUTDOWN);
-
- pthread_rwlock_unlock(&ipcpi.state_lock);
- }
- default:
- return;
- }
-}
-
-/*
- * Boots the IPCP off information in the rib.
- * Common function after bootstrap or enroll.
- * Call under ipcpi.state_lock
- */
static int boot_components(void)
{
char buf[256];
@@ -87,7 +57,7 @@ static int boot_components(void)
enum pol_addr_auth pa;
char path[RIB_MAX_PATH_LEN + 1];
- len = rib_read(DIF_PATH, &buf, 256);
+ len = rib_read(BOOT_PATH "/general/dif_name", buf, 256);
if (len < 0) {
log_err("Failed to read DIF name: %zd.", len);
return -1;
@@ -99,6 +69,17 @@ static int boot_components(void)
return -1;
}
+ len = rib_read(BOOT_PATH "/general/dir_hash_len",
+ &ipcpi.dir_hash_len, sizeof(ipcpi.dir_hash_len));
+ if (len < 0) {
+ log_err("Failed to read hash length: %zd.", len);
+ return -1;
+ }
+
+ ipcpi.dir_hash_len = ntoh16(ipcpi.dir_hash_len);
+
+ assert(ipcpi.dir_hash_len != 0);
+
if (rib_add(MEMBERS_PATH, ipcpi.name)) {
log_err("Failed to add name to " MEMBERS_PATH);
return -1;
@@ -160,12 +141,11 @@ static int boot_components(void)
}
if (fmgr_init()) {
- log_err("Failed to initialize flow manager component.");
frct_fini();
dir_fini();
ribmgr_fini();
addr_auth_fini();
- log_err("Failed to start flow manager.");
+ log_err("Failed to initialize flow manager component.");
return -1;
}
@@ -229,38 +209,25 @@ void shutdown_components(void)
free(ipcpi.dif_name);
}
-static int normal_ipcp_enroll(char * dst_name)
+static int normal_ipcp_enroll(const char * dst)
{
- pthread_rwlock_wrlock(&ipcpi.state_lock);
-
- if (ipcp_get_state() != IPCP_INIT) {
- pthread_rwlock_unlock(&ipcpi.state_lock);
- log_err("IPCP in wrong state.");
- return -1; /* -ENOTINIT */
- }
-
if (rib_add(RIB_ROOT, MEMBERS_NAME)) {
- pthread_rwlock_unlock(&ipcpi.state_lock);
log_err("Failed to create members.");
return -1;
}
/* Get boot state from peer */
- if (enroll_boot(dst_name)) {
- pthread_rwlock_unlock(&ipcpi.state_lock);
+ if (enroll_boot(dst)) {
log_err("Failed to boot IPCP components.");
return -1;
}
if (boot_components()) {
- pthread_rwlock_unlock(&ipcpi.state_lock);
log_err("Failed to boot IPCP components.");
return -1;
}
- pthread_rwlock_unlock(&ipcpi.state_lock);
-
- log_dbg("Enrolled with %s.", dst_name);
+ log_dbg("Enrolled with " HASH_FMT, HASH_VAL(dst));
return 0;
}
@@ -269,12 +236,17 @@ const struct ros {
char * parent;
char * child;
} ros[] = {
- /* GENERAL IPCP INFO */
- {RIB_ROOT, DIF_NAME},
/* BOOT INFO */
{RIB_ROOT, BOOT_NAME},
/* OTHER RIB STRUCTURES */
{RIB_ROOT, MEMBERS_NAME},
+
+ /* GENERAL IPCP INFO */
+ {BOOT_PATH, "general"},
+
+ {BOOT_PATH "/general", "dif_name"},
+ {BOOT_PATH "/general", "dir_hash_len"},
+
/* DT COMPONENT */
{BOOT_PATH, "dt"},
@@ -319,28 +291,28 @@ int normal_rib_init(void)
return 0;
}
-static int normal_ipcp_bootstrap(struct dif_config * conf)
+static int normal_ipcp_bootstrap(const struct ipcp_config * conf)
{
+ uint16_t hash_len;
+
assert(conf);
assert(conf->type == THIS_TYPE);
- pthread_rwlock_wrlock(&ipcpi.state_lock);
+ hash_len = hton16((uint16_t) conf->dir_hash_len);
- if (ipcp_get_state() != IPCP_INIT) {
- pthread_rwlock_unlock(&ipcpi.state_lock);
- log_err("IPCP in wrong state.");
- return -1; /* -ENOTINIT */
- }
+ assert(ntoh16(hash_len) != 0);
if (normal_rib_init()) {
- pthread_rwlock_unlock(&ipcpi.state_lock);
log_err("Failed to write initial structure to the RIB.");
return -1;
}
- if (rib_write(DIF_PATH,
+ if (rib_write(BOOT_PATH "/general/dif_name",
conf->dif_name,
strlen(conf->dif_name) + 1) ||
+ rib_write(BOOT_PATH "/general/dir_hash_len",
+ &hash_len,
+ sizeof(hash_len)) ||
rib_write(BOOT_PATH "/dt/const/addr_size",
&conf->addr_size,
sizeof(conf->addr_size)) ||
@@ -375,18 +347,14 @@ static int normal_ipcp_bootstrap(struct dif_config * conf)
&conf->addr_auth_type,
sizeof(conf->addr_auth_type))) {
log_err("Failed to write boot info to RIB.");
- pthread_rwlock_unlock(&ipcpi.state_lock);
return -1;
}
if (boot_components()) {
log_err("Failed to boot IPCP components.");
- pthread_rwlock_unlock(&ipcpi.state_lock);
return -1;
}
- pthread_rwlock_unlock(&ipcpi.state_lock);
-
log_dbg("Bootstrapped in DIF %s.", conf->dif_name);
return 0;
@@ -395,9 +363,9 @@ static int normal_ipcp_bootstrap(struct dif_config * conf)
static struct ipcp_ops normal_ops = {
.ipcp_bootstrap = normal_ipcp_bootstrap,
.ipcp_enroll = normal_ipcp_enroll,
- .ipcp_name_reg = dir_name_reg,
- .ipcp_name_unreg = dir_name_unreg,
- .ipcp_name_query = dir_name_query,
+ .ipcp_reg = dir_reg,
+ .ipcp_unreg = dir_unreg,
+ .ipcp_query = dir_query,
.ipcp_flow_alloc = fmgr_np1_alloc,
.ipcp_flow_alloc_resp = fmgr_np1_alloc_resp,
.ipcp_flow_dealloc = fmgr_np1_dealloc
@@ -406,27 +374,6 @@ static struct ipcp_ops normal_ops = {
int main(int argc,
char * argv[])
{
- struct sigaction sig_act;
- sigset_t sigset;
-
- sigemptyset(&sigset);
- sigaddset(&sigset, SIGINT);
- sigaddset(&sigset, SIGQUIT);
- sigaddset(&sigset, SIGHUP);
- sigaddset(&sigset, SIGPIPE);
-
- /* init sig_act */
- memset(&sig_act, 0, sizeof(sig_act));
-
- /* install signal traps */
- sig_act.sa_sigaction = &ipcp_sig_handler;
- sig_act.sa_flags = SA_SIGINFO;
-
- sigaction(SIGINT, &sig_act, NULL);
- sigaction(SIGTERM, &sig_act, NULL);
- sigaction(SIGHUP, &sig_act, NULL);
- sigaction(SIGPIPE, &sig_act, NULL);
-
if (ipcp_init(argc, argv, THIS_TYPE, &normal_ops) < 0) {
ipcp_create_r(getpid(), -1);
exit(EXIT_FAILURE);
@@ -466,7 +413,6 @@ int main(int argc,
exit(EXIT_FAILURE);
}
- pthread_sigmask(SIG_BLOCK, &sigset, NULL);
if (ipcp_boot() < 0) {
log_err("Failed to boot IPCP.");
@@ -479,8 +425,6 @@ int main(int argc,
exit(EXIT_FAILURE);
}
- pthread_sigmask(SIG_UNBLOCK, &sigset, NULL);
-
if (ipcp_create_r(getpid(), 0)) {
log_err("Failed to notify IRMd we are initialized.");
ipcp_set_state(IPCP_NULL);
diff --git a/src/ipcpd/normal/neighbors.h b/src/ipcpd/normal/neighbors.h
index 8714a9aa..c958affc 100644
--- a/src/ipcpd/normal/neighbors.h
+++ b/src/ipcpd/normal/neighbors.h
@@ -23,7 +23,7 @@
#ifndef OUROBOROS_IPCPD_NORMAL_NEIGHBORS_H
#define OUROBOROS_IPCPD_NORMAL_NEIGHBORS_H
-#include <ouroboros/irm_config.h>
+#include <ouroboros/ipcp.h>
#include <ouroboros/list.h>
#include <ouroboros/qos.h>
#include <ouroboros/fqueue.h>
diff --git a/src/ipcpd/normal/pol/complete.h b/src/ipcpd/normal/pol/complete.h
index 46a535c2..230fecb9 100644
--- a/src/ipcpd/normal/pol/complete.h
+++ b/src/ipcpd/normal/pol/complete.h
@@ -23,7 +23,7 @@
#ifndef OUROBOROS_IPCPD_NORMAL_POL_COMPLETE_H
#define OUROBOROS_IPCPD_NORMAL_POL_COMPLETE_H
-#include <ouroboros/irm_config.h>
+#include <ouroboros/ipcp.h>
#include <ouroboros/qos.h>
#include "pol-gam-ops.h"
diff --git a/src/ipcpd/normal/ribconfig.h b/src/ipcpd/normal/ribconfig.h
index 5ecdaab3..2f5daf72 100644
--- a/src/ipcpd/normal/ribconfig.h
+++ b/src/ipcpd/normal/ribconfig.h
@@ -29,10 +29,8 @@
#define DLR "/"
#define BOOT_NAME "boot"
#define MEMBERS_NAME "members"
-#define DIF_NAME "dif_name"
#define DIR_NAME "directory"
#define ROUTING_NAME "fsdb"
-#define DIF_PATH DLR DIF_NAME
#define DIR_PATH DLR DIR_NAME
#define BOOT_PATH DLR BOOT_NAME
#define MEMBERS_PATH DLR MEMBERS_NAME
diff --git a/src/ipcpd/normal/ribmgr.h b/src/ipcpd/normal/ribmgr.h
index 8922688a..83d5ec3a 100644
--- a/src/ipcpd/normal/ribmgr.h
+++ b/src/ipcpd/normal/ribmgr.h
@@ -23,7 +23,7 @@
#ifndef OUROBOROS_IPCPD_NORMAL_RIBMGR_H
#define OUROBOROS_IPCPD_NORMAL_RIBMGR_H
-#include <ouroboros/irm_config.h>
+#include <ouroboros/ipcp.h>
#include <ouroboros/utils.h>
#include <ouroboros/qos.h>