From da60c56365ac13a262ffa6adaba7540c4d914843 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Wed, 24 Oct 2018 10:06:23 +0200 Subject: ipcpd: Add broadcast IPCP This adds a broadcast IPCP that allows us to easily create multicast applications. The broadcast IPCP accepts flows for ".mc". A tool, obc (Ouroboros broadcast), is added that sends and reads a message to a broadcast layer. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/irmd/config.h.in | 1 + src/irmd/ipcp.c | 3 +++ src/irmd/main.c | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src/irmd') 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; -- cgit v1.2.3