diff options
| author | Dimitri Staessens <dimitri.staessens@ugent.be> | 2018-10-24 10:06:23 +0200 | 
|---|---|---|
| committer | Sander Vrijders <sander.vrijders@ugent.be> | 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 <dimitri.staessens@ugent.be>
Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
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; | 
