diff options
author | Dimitri Staessens <[email protected]> | 2018-10-24 10:06:23 +0200 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 2018-10-24 11:58:49 +0200 |
commit | da60c56365ac13a262ffa6adaba7540c4d914843 (patch) | |
tree | 8b2f3ccd5f90f217de53f6b7c905adc11e75a261 /src/irmd | |
parent | e161da9a580152e52a84c5ca31422355307bab42 (diff) | |
download | ouroboros-da60c56365ac13a262ffa6adaba7540c4d914843.tar.gz ouroboros-da60c56365ac13a262ffa6adaba7540c4d914843.zip |
ipcpd: Add broadcast IPCP
This adds a broadcast IPCP that allows us to easily create multicast
applications. The broadcast IPCP accepts flows for "<layer_name>.mc".
A tool, obc (Ouroboros broadcast), is added that sends and reads a
message to a broadcast layer.
Signed-off-by: Dimitri Staessens <[email protected]>
Signed-off-by: Sander Vrijders <[email protected]>
Diffstat (limited to 'src/irmd')
-rw-r--r-- | src/irmd/config.h.in | 1 | ||||
-rw-r--r-- | src/irmd/ipcp.c | 3 | ||||
-rw-r--r-- | src/irmd/main.c | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/src/irmd/config.h.in b/src/irmd/config.h.in index a4c7128e..ad8a5520 100644 --- a/src/irmd/config.h.in +++ b/src/irmd/config.h.in @@ -24,6 +24,7 @@ #define IPCP_ETH_LLC_EXEC "@IPCP_ETH_LLC_TARGET@" #define IPCP_ETH_DIX_EXEC "@IPCP_ETH_DIX_TARGET@" #define IPCP_NORMAL_EXEC "@IPCP_NORMAL_TARGET@" +#define IPCP_BROADCAST_EXEC "@IPCP_BROADCAST_TARGET@" #define IPCP_LOCAL_EXEC "@IPCP_LOCAL_TARGET@" #define IPCP_RAPTOR_EXEC "@IPCP_RAPTOR_TARGET@" diff --git a/src/irmd/ipcp.c b/src/irmd/ipcp.c index 19e68ee7..7f3f4807 100644 --- a/src/irmd/ipcp.c +++ b/src/irmd/ipcp.c @@ -140,6 +140,9 @@ pid_t ipcp_create(const char * name, case IPCP_NORMAL: exec_name = IPCP_NORMAL_EXEC; break; + case IPCP_BROADCAST: + exec_name = IPCP_BROADCAST_EXEC; + break; case IPCP_UDP: exec_name = IPCP_UDP_EXEC; break; diff --git a/src/irmd/main.c b/src/irmd/main.c index 9ddcbbbc..67e16de0 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -618,7 +618,7 @@ static int connect_ipcp(pid_t pid, return -EIPCP; } - if (entry->type != IPCP_NORMAL) { + if (entry->type != IPCP_NORMAL && entry->type != IPCP_BROADCAST) { pthread_rwlock_unlock(&irmd.reg_lock); log_err("Cannot establish connections for this IPCP type."); return -EIPCP; |