summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordimitri staessens <dimitri.staessens@intec.ugent.be>2016-06-22 16:56:03 +0200
committerdimitri staessens <dimitri.staessens@intec.ugent.be>2016-06-22 16:56:03 +0200
commit4b5eaafdc9b61307a6a4074366372df3c170372e (patch)
treefbb6c556e833e5af3cead917c8ac547853f0382f
parente24581b93fb3329a1c89b294da15e3375513cf89 (diff)
parentcf5d13dfd66afd68dd7fe93d009a4539c236b095 (diff)
downloadouroboros-4b5eaafdc9b61307a6a4074366372df3c170372e.tar.gz
ouroboros-4b5eaafdc9b61307a6a4074366372df3c170372e.zip
Merged in sandervrijders/ouroboros/be (pull request #137)
Be
-rw-r--r--include/ouroboros/CMakeLists.txt2
-rw-r--r--include/ouroboros/errno.h6
-rw-r--r--include/ouroboros/ipcp.h2
-rw-r--r--include/ouroboros/nsm.h (renamed from include/ouroboros/da.h)24
-rw-r--r--src/ipcpd/ipcp-ops.h2
-rw-r--r--src/ipcpd/ipcp.c2
-rw-r--r--src/irmd/main.c16
-rw-r--r--src/lib/CMakeLists.txt2
-rw-r--r--src/lib/dev.c20
-rw-r--r--src/lib/ipcp.c13
-rw-r--r--src/lib/ipcpd_messages.proto2
-rw-r--r--src/lib/irm.c12
-rw-r--r--src/lib/nsm.c (renamed from src/lib/da.c)25
13 files changed, 65 insertions, 63 deletions
diff --git a/include/ouroboros/CMakeLists.txt b/include/ouroboros/CMakeLists.txt
index 9e9fc789..c5f65d49 100644
--- a/include/ouroboros/CMakeLists.txt
+++ b/include/ouroboros/CMakeLists.txt
@@ -4,13 +4,13 @@ configure_file(
set(HEADER_FILES
cdap.h
- da.h
dev.h
dif_config.h
errno.h
flow.h
instance_name.h
irm.h
+ nsm.h
qos.h
)
diff --git a/include/ouroboros/errno.h b/include/ouroboros/errno.h
index 49720548..62629134 100644
--- a/include/ouroboros/errno.h
+++ b/include/ouroboros/errno.h
@@ -25,9 +25,7 @@
#include <errno.h>
-#define ENOSHM 1000 /* Creation or access of shared memory failed */
-#define EIRM 1001 /* Could not talk to the IPC Resource Manager */
-#define ENOTALLOC 1002 /* Flow is not allocated */
-#define EIPCPTYPE 1003 /* Unknown IPCP type */
+#define ENOTALLOC 1000 /* Flow is not allocated */
+#define EIPCPTYPE 1001 /* Unknown IPCP type */
#endif
diff --git a/include/ouroboros/ipcp.h b/include/ouroboros/ipcp.h
index 89b9fa92..0d62bd59 100644
--- a/include/ouroboros/ipcp.h
+++ b/include/ouroboros/ipcp.h
@@ -46,7 +46,7 @@ int ipcp_unreg(pid_t pid,
size_t difs_size);
int ipcp_enroll(pid_t pid,
- char * member_name,
+ char * dif_name,
char * n_1_dif);
int ipcp_bootstrap(pid_t pid,
diff --git a/include/ouroboros/da.h b/include/ouroboros/nsm.h
index 406be7a8..69b1d9d2 100644
--- a/include/ouroboros/da.h
+++ b/include/ouroboros/nsm.h
@@ -1,7 +1,7 @@
/*
* Ouroboros - Copyright (C) 2016
*
- * The API to consult the DIF Allocator
+ * The API to instruct the global Namespace Manager
*
* Sander Vrijders <sander.vrijders@intec.ugent.be>
*
@@ -20,18 +20,24 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#ifndef OUROBOROS_DA_H
-#define OUROBOROS_DA_H
+#ifndef OUROBOROS_NSM_H
+#define OUROBOROS_NSM_H
#include <stdint.h>
#include <unistd.h>
-char * da_resolve_daf(char * daf_name);
+int nsm_reg(char * name,
+ char ** dafs,
+ size_t dafs_size);
+
+int nsm_unreg(char * name,
+ char ** dafs,
+ size_t dafs_size);
+
/*
- * n_1_difs is an out parameter
- * The amount of n_1_difs is returned
+ * dafs is an out parameter
+ * The amount of DAFs is returned
*/
-ssize_t da_resolve_dap(char * name,
- char ** n_1_difs);
-
+ssize_t nsm_resolve(char * name,
+ char ** dafs);
#endif
diff --git a/src/ipcpd/ipcp-ops.h b/src/ipcpd/ipcp-ops.h
index ffbc9cd7..a1d9f23f 100644
--- a/src/ipcpd/ipcp-ops.h
+++ b/src/ipcpd/ipcp-ops.h
@@ -30,7 +30,7 @@
struct ipcp_ops {
int (* ipcp_bootstrap)(struct dif_config * conf);
- int (* ipcp_enroll)(char * member_name,
+ int (* ipcp_enroll)(char * dif_name,
char * n_1_dif);
int (* ipcp_reg)(char ** dif_names,
size_t len);
diff --git a/src/ipcpd/ipcp.c b/src/ipcpd/ipcp.c
index 901abae6..b5108712 100644
--- a/src/ipcpd/ipcp.c
+++ b/src/ipcpd/ipcp.c
@@ -159,7 +159,7 @@ void * ipcp_main_loop(void * o)
}
ret_msg.has_result = true;
ret_msg.result =
- _ipcp->ops->ipcp_enroll(msg->member_name,
+ _ipcp->ops->ipcp_enroll(msg->dif_name,
msg->n_1_dif);
break;
diff --git a/src/irmd/main.c b/src/irmd/main.c
index 50055c4d..dff052a1 100644
--- a/src/irmd/main.c
+++ b/src/irmd/main.c
@@ -27,7 +27,7 @@
#include <ouroboros/sockets.h>
#include <ouroboros/irm.h>
#include <ouroboros/ipcp.h>
-#include <ouroboros/da.h>
+#include <ouroboros/nsm.h>
#include <ouroboros/list.h>
#include <ouroboros/instance_name.h>
#include <ouroboros/utils.h>
@@ -572,7 +572,6 @@ static int bootstrap_ipcp(instance_name_t * api,
static int enroll_ipcp(instance_name_t * api,
char * dif_name)
{
- char * member = NULL;
char ** n_1_difs = NULL;
ssize_t n_1_difs_size = 0;
struct ipcp_entry * entry = NULL;
@@ -596,16 +595,7 @@ static int enroll_ipcp(instance_name_t * api,
return -1;
}
- member = da_resolve_daf(dif_name);
- if (member == NULL) {
- free(entry->dif_name);
- entry->dif_name = NULL;
- pthread_rwlock_unlock(&instance->reg_lock);
- pthread_rwlock_unlock(&instance->state_lock);
- return -1;
- }
-
- n_1_difs_size = da_resolve_dap(member, n_1_difs);
+ n_1_difs_size = nsm_resolve(dif_name, n_1_difs);
if (n_1_difs_size < 1) {
free(entry->dif_name);
entry->dif_name = NULL;
@@ -615,7 +605,7 @@ static int enroll_ipcp(instance_name_t * api,
return -1;
}
- if (ipcp_enroll(api->id, member, n_1_difs[0])) {
+ if (ipcp_enroll(api->id, dif_name, n_1_difs[0])) {
free(entry->dif_name);
entry->dif_name = NULL;
pthread_rwlock_unlock(&instance->reg_lock);
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index ed7f2fc6..2a75ef17 100644
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -25,13 +25,13 @@ set(SOURCE_FILES
# Add source files here
bitmap.c
cdap.c
- da.c
dev.c
du_buff.c
instance_name.c
ipcp.c
irm.c
list.c
+ nsm.c
shm_ap_rbuff.c
shm_du_map.c
sockets.c
diff --git a/src/lib/dev.c b/src/lib/dev.c
index d0f29ade..ad311f7f 100644
--- a/src/lib/dev.c
+++ b/src/lib/dev.c
@@ -92,7 +92,7 @@ int ap_init(char * ap_name)
instance_name_destroy(_ap_instance->api);
bmp_destroy(_ap_instance->fds);
free(_ap_instance);
- return -ENOSHM;
+ return -1;
}
_ap_instance->rb = shm_ap_rbuff_create();
@@ -101,7 +101,7 @@ int ap_init(char * ap_name)
shm_du_map_close(_ap_instance->dum);
bmp_destroy(_ap_instance->fds);
free(_ap_instance);
- return -ENOSHM;
+ return -1;
}
for (i = 0; i < AP_MAX_FLOWS; ++i) {
@@ -175,7 +175,7 @@ int flow_accept(char ** ae_name)
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL) {
- return -EIRM;
+ return -1;
}
if (!recv_msg->has_pid || !recv_msg->has_port_id) {
@@ -200,7 +200,7 @@ int flow_accept(char ** ae_name)
pthread_rwlock_unlock(&_ap_instance->flows_lock);
pthread_rwlock_unlock(&_ap_instance->data_lock);
irm_msg__free_unpacked(recv_msg, NULL);
- return -ENOSHM;
+ return -1;
}
if (ae_name != NULL) {
@@ -260,7 +260,7 @@ int flow_alloc_resp(int fd,
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL) {
pthread_rwlock_unlock(&_ap_instance->data_lock);
- return -EIRM;
+ return -1;
}
if (!recv_msg->has_result) {
@@ -305,7 +305,7 @@ int flow_alloc(char * dst_name,
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL) {
- return -EIRM;
+ return -1;
}
if (!recv_msg->has_pid || !recv_msg->has_port_id) {
@@ -330,7 +330,7 @@ int flow_alloc(char * dst_name,
pthread_rwlock_unlock(&_ap_instance->flows_lock);
pthread_rwlock_unlock(&_ap_instance->data_lock);
irm_msg__free_unpacked(recv_msg, NULL);
- return -ENOSHM;
+ return -1;
}
_ap_instance->flows[fd].port_id = recv_msg->port_id;
@@ -372,7 +372,7 @@ int flow_alloc_res(int fd)
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL) {
- return -EIRM;
+ return -1;
}
if (!recv_msg->has_result) {
@@ -418,7 +418,7 @@ int flow_dealloc(int fd)
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL) {
pthread_rwlock_unlock(&_ap_instance->data_lock);
- return -EIRM;
+ return -1;
}
if (!recv_msg->has_result) {
@@ -511,7 +511,7 @@ ssize_t flow_write(int fd, void * buf, size_t count)
shm_release_du_buff(_ap_instance->dum, index);
pthread_rwlock_unlock(&_ap_instance->flows_lock);
pthread_rwlock_unlock(&_ap_instance->data_lock);
- return -ENOSHM;
+ return -1;
}
} else { /* blocking */
while ((index = shm_create_du_buff(_ap_instance->dum,
diff --git a/src/lib/ipcp.c b/src/lib/ipcp.c
index a43afd21..730880f9 100644
--- a/src/lib/ipcp.c
+++ b/src/lib/ipcp.c
@@ -275,35 +275,32 @@ int ipcp_bootstrap(pid_t pid,
}
int ipcp_enroll(pid_t pid,
- char * member_name,
+ char * dif_name,
char * n_1_dif)
{
ipcp_msg_t msg = IPCP_MSG__INIT;
ipcp_msg_t * recv_msg = NULL;
int ret = -1;
- if (n_1_dif == NULL || member_name == NULL)
+ if (n_1_dif == NULL || dif_name == NULL)
return -EINVAL;
- msg.code = IPCP_MSG_CODE__IPCP_ENROLL;
- msg.member_name = member_name;
- msg.n_1_dif = n_1_dif;
+ msg.code = IPCP_MSG_CODE__IPCP_ENROLL;
+ msg.dif_name = dif_name;
+ msg.n_1_dif = n_1_dif;
recv_msg = send_recv_ipcp_msg(pid, &msg);
if (recv_msg == NULL) {
- free(msg.member_name);
return -1;
}
if (recv_msg->has_result == false) {
ipcp_msg__free_unpacked(recv_msg, NULL);
- free(msg.member_name);
return -1;
}
ret = recv_msg->result;
ipcp_msg__free_unpacked(recv_msg, NULL);
- free(msg.member_name);
return ret;
}
diff --git a/src/lib/ipcpd_messages.proto b/src/lib/ipcpd_messages.proto
index 63e41986..9eb5707c 100644
--- a/src/lib/ipcpd_messages.proto
+++ b/src/lib/ipcpd_messages.proto
@@ -15,7 +15,7 @@ enum ipcp_msg_code {
message ipcp_msg {
required ipcp_msg_code code = 1;
- optional string member_name = 2;
+ optional string dif_name = 2;
optional string n_1_dif = 3;
repeated string dif_names = 4;
optional int32 len = 5;
diff --git a/src/lib/irm.c b/src/lib/irm.c
index 01ee498c..8fd0a7e7 100644
--- a/src/lib/irm.c
+++ b/src/lib/irm.c
@@ -48,7 +48,7 @@ pid_t irm_create_ipcp(char * ipcp_name,
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL)
- return -EIRM;
+ return -1;
if (recv_msg->has_result == false) {
irm_msg__free_unpacked(recv_msg, NULL);
@@ -77,7 +77,7 @@ int irm_destroy_ipcp(instance_name_t * api)
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL)
- return -EIRM;
+ return -1;
if (recv_msg->has_result == false) {
irm_msg__free_unpacked(recv_msg, NULL);
@@ -149,7 +149,7 @@ int irm_bootstrap_ipcp(instance_name_t * api,
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL) {
- return -EIRM;
+ return -1;
}
if (recv_msg->has_result == false) {
@@ -188,7 +188,7 @@ int irm_enroll_ipcp(instance_name_t * api,
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL) {
free(msg.dif_name);
- return -EIRM;
+ return -1;
}
if (recv_msg->has_result == false) {
@@ -239,7 +239,7 @@ int irm_reg(char * name,
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL)
- return -EIRM;
+ return -1;
if (recv_msg->has_result == false) {
irm_msg__free_unpacked(recv_msg, NULL);
@@ -285,7 +285,7 @@ int irm_unreg(char * name,
recv_msg = send_recv_irm_msg(&msg);
if (recv_msg == NULL)
- return -EIRM;
+ return -1;
if (recv_msg->has_result == false) {
irm_msg__free_unpacked(recv_msg, NULL);
diff --git a/src/lib/da.c b/src/lib/nsm.c
index 8e7756d1..069db139 100644
--- a/src/lib/da.c
+++ b/src/lib/nsm.c
@@ -1,7 +1,7 @@
/*
* Ouroboros - Copyright (C) 2016
*
- * The API to instruct the DIF Allocator
+ * The API to instruct the global Namespace Manager
*
* Sander Vrijders <sander.vrijders@intec.ugent.be>
*
@@ -20,15 +20,26 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <ouroboros/da.h>
+#include <ouroboros/nsm.h>
-char * da_resolve_daf(char * daf_name)
+int nsm_reg(char * name,
+ char ** dafs,
+ size_t dafs_size)
{
- return NULL;
+
+ return -1;
+}
+
+int nsm_unreg(char * name,
+ char ** dafs,
+ size_t dafs_size)
+{
+
+ return -1;
}
-ssize_t da_resolve_dap(char * name,
- char ** n_1_difs)
+ssize_t nsm_resolve(char * name,
+ char ** dafs)
{
- return 0;
+ return -1;
}