summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ipcpd/ipcp.c1
-rw-r--r--src/ipcpd/unicast/dt.c5
-rw-r--r--src/ipcpd/unicast/dt.h1
-rw-r--r--src/ipcpd/unicast/enroll.c3
-rw-r--r--src/ipcpd/unicast/main.c1
-rw-r--r--src/ipcpd/unicast/pff.h5
-rw-r--r--src/ipcpd/unicast/routing.c12
-rw-r--r--src/lib/ipcp_config.proto13
-rw-r--r--src/lib/irm.c2
-rw-r--r--src/tools/irm/irm_ipcp_bootstrap.c16
10 files changed, 26 insertions, 33 deletions
diff --git a/src/ipcpd/ipcp.c b/src/ipcpd/ipcp.c
index f826379d..8f9fcd7d 100644
--- a/src/ipcpd/ipcp.c
+++ b/src/ipcpd/ipcp.c
@@ -241,7 +241,6 @@ static void * mainloop(void * o)
conf.max_ttl = conf_msg->max_ttl;
conf.addr_auth_type = conf_msg->addr_auth_type;
conf.routing_type = conf_msg->routing_type;
- conf.pff_type = conf_msg->pff_type;
break;
case IPCP_ETH_DIX:
conf.ethertype = conf_msg->ethertype;
diff --git a/src/ipcpd/unicast/dt.c b/src/ipcpd/unicast/dt.c
index cabc159d..ee14d28e 100644
--- a/src/ipcpd/unicast/dt.c
+++ b/src/ipcpd/unicast/dt.c
@@ -621,7 +621,6 @@ static void * dt_conn_handle(void * o)
}
int dt_init(enum pol_routing pr,
- enum pol_pff pp,
uint8_t addr_size,
uint8_t eid_size,
uint8_t max_ttl)
@@ -629,6 +628,7 @@ int dt_init(enum pol_routing pr,
int i;
int j;
char dtstr[256];
+ enum pol_pff pp;
struct conn_info info;
memset(&info, 0, sizeof(info));
@@ -659,7 +659,8 @@ int dt_init(enum pol_routing pr,
goto fail_connmgr_comp_init;
}
- if (routing_init(pr)) {
+ pp = routing_init(pr);
+ if (pp < 0) {
log_err("Failed to init routing.");
goto fail_routing;
}
diff --git a/src/ipcpd/unicast/dt.h b/src/ipcpd/unicast/dt.h
index 15a7b660..73b71a92 100644
--- a/src/ipcpd/unicast/dt.h
+++ b/src/ipcpd/unicast/dt.h
@@ -32,7 +32,6 @@
#define INVALID_ADDR 0
int dt_init(enum pol_routing pr,
- enum pol_pff pp,
uint8_t addr_size,
uint8_t eid_size,
uint8_t max_ttl
diff --git a/src/ipcpd/unicast/enroll.c b/src/ipcpd/unicast/enroll.c
index 582e808f..6a612ff3 100644
--- a/src/ipcpd/unicast/enroll.c
+++ b/src/ipcpd/unicast/enroll.c
@@ -136,7 +136,6 @@ static int send_rcv_enroll_msg(int fd)
enroll.conf.max_ttl = reply->conf->max_ttl;
enroll.conf.addr_auth_type = reply->conf->addr_auth_type;
enroll.conf.routing_type = reply->conf->routing_type;
- enroll.conf.pff_type = reply->conf->pff_type;
enroll.conf.layer_info.dir_hash_algo
= reply->conf->layer_info->dir_hash_algo;
@@ -173,8 +172,6 @@ static ssize_t enroll_pack(uint8_t ** buf)
config.addr_auth_type = enroll.conf.addr_auth_type;
config.has_routing_type = true;
config.routing_type = enroll.conf.routing_type;
- config.has_pff_type = true;
- config.pff_type = enroll.conf.pff_type;
config.layer_info = &layer_info;
layer_info.layer_name = (char *) enroll.conf.layer_info.layer_name;
diff --git a/src/ipcpd/unicast/main.c b/src/ipcpd/unicast/main.c
index 33295e29..43052209 100644
--- a/src/ipcpd/unicast/main.c
+++ b/src/ipcpd/unicast/main.c
@@ -82,7 +82,6 @@ static int initialize_components(const struct ipcp_config * conf)
log_dbg("IPCP got address %" PRIu64 ".", ipcpi.dt_addr);
if (dt_init(conf->routing_type,
- conf->pff_type,
conf->addr_size,
conf->eid_size,
conf->max_ttl)) {
diff --git a/src/ipcpd/unicast/pff.h b/src/ipcpd/unicast/pff.h
index d88ffa7f..a7b618dc 100644
--- a/src/ipcpd/unicast/pff.h
+++ b/src/ipcpd/unicast/pff.h
@@ -29,6 +29,11 @@
#include <stdlib.h>
#include <stdbool.h>
+enum pol_pff {
+ PFF_SIMPLE = 0,
+ PFF_ALTERNATE
+};
+
struct pff * pff_create(enum pol_pff pol);
void pff_destroy(struct pff * pff);
diff --git a/src/ipcpd/unicast/routing.c b/src/ipcpd/unicast/routing.c
index 1d660cde..0794555e 100644
--- a/src/ipcpd/unicast/routing.c
+++ b/src/ipcpd/unicast/routing.c
@@ -24,6 +24,7 @@
#include <ouroboros/errno.h>
+#include "pff.h"
#include "routing.h"
#include "pol/link_state.h"
@@ -31,16 +32,25 @@ struct pol_routing_ops * r_ops;
int routing_init(enum pol_routing pr)
{
+ enum pol_pff pff_type;
+
switch (pr) {
case ROUTING_LINK_STATE:
+ pff_type = PFF_SIMPLE;
+ r_ops = &link_state_ops;
+ break;
case ROUTING_LINK_STATE_LFA:
+ pff_type = PFF_ALTERNATE;
r_ops = &link_state_ops;
break;
default:
return -ENOTSUP;
}
- return r_ops->init(pr);
+ if (r_ops->init(pr))
+ return -1;
+
+ return pff_type;
}
struct routing_i * routing_i_create(struct pff * pff)
diff --git a/src/lib/ipcp_config.proto b/src/lib/ipcp_config.proto
index 17d1c47e..23c65e94 100644
--- a/src/lib/ipcp_config.proto
+++ b/src/lib/ipcp_config.proto
@@ -36,16 +36,15 @@ message ipcp_config_msg {
optional uint32 max_ttl = 5;
optional uint32 addr_auth_type = 6;
optional uint32 routing_type = 7;
- optional uint32 pff_type = 8;
// Config for UDP
- optional uint32 ip_addr = 9;
- optional uint32 dns_addr = 10;
- optional uint32 clt_port = 11;
- optional uint32 srv_port = 12;
+ optional uint32 ip_addr = 8;
+ optional uint32 dns_addr = 9;
+ optional uint32 clt_port = 10;
+ optional uint32 srv_port = 11;
// Config for the Ethernet
- optional string dev = 13;
+ optional string dev = 12;
// Config for DIX Ethernet
- optional uint32 ethertype = 14;
+ optional uint32 ethertype = 13;
}
enum enroll_code {
diff --git a/src/lib/irm.c b/src/lib/irm.c
index 9b74c72d..e4b39f2c 100644
--- a/src/lib/irm.c
+++ b/src/lib/irm.c
@@ -132,8 +132,6 @@ int irm_bootstrap_ipcp(pid_t pid,
config.addr_auth_type = conf->addr_auth_type;
config.has_routing_type = true;
config.routing_type = conf->routing_type;
- config.has_pff_type = true;
- config.pff_type = conf->pff_type;
break;
case IPCP_UDP:
config.has_ip_addr = true;
diff --git a/src/tools/irm/irm_ipcp_bootstrap.c b/src/tools/irm/irm_ipcp_bootstrap.c
index e58a4765..7b844ba7 100644
--- a/src/tools/irm/irm_ipcp_bootstrap.c
+++ b/src/tools/irm/irm_ipcp_bootstrap.c
@@ -70,7 +70,6 @@
#define DEFAULT_TTL 60
#define DEFAULT_ADDR_AUTH ADDR_AUTH_FLAT_RANDOM
#define DEFAULT_ROUTING ROUTING_LINK_STATE
-#define DEFAULT_PFF PFF_SIMPLE
#define DEFAULT_HASH_ALGO DIR_HASH_SHA3_256
#define DEFAULT_ETHERTYPE 0xA000
#define DEFAULT_CLIENT_PORT 0x0000 /* random port */
@@ -79,8 +78,6 @@
#define FLAT_RANDOM_ADDR_AUTH "flat"
#define LINK_STATE_ROUTING "link_state"
#define LINK_STATE_LFA_ROUTING "lfa"
-#define SIMPLE_PFF "simple"
-#define ALTERNATE_PFF "alternate"
static void usage(void)
{
@@ -97,13 +94,11 @@ static void usage(void)
" [ttl (max time-to-live value, default: %d)]\n"
" [addr_auth <ADDRESS_POLICY> (default: %s)]\n"
" [routing <ROUTING_POLICY> (default: %s)]\n"
- " [pff [PFF_POLICY] (default: %s)]\n"
" [hash [ALGORITHM] (default: %s)]\n"
" [autobind]\n"
"where ADDRESS_POLICY = {"FLAT_RANDOM_ADDR_AUTH"}\n"
" ROUTING_POLICY = {"LINK_STATE_ROUTING " "
LINK_STATE_LFA_ROUTING "}\n"
- " PFF_POLICY = {" SIMPLE_PFF " " ALTERNATE_PFF "}\n"
" ALGORITHM = {" SHA3_224 " " SHA3_256 " "
SHA3_384 " " SHA3_512 "}\n\n"
"if TYPE == " UDP "\n"
@@ -134,7 +129,7 @@ static void usage(void)
"if TYPE == " BROADCAST "\n"
" [autobind]\n\n",
DEFAULT_ADDR_SIZE, DEFAULT_EID_SIZE, DEFAULT_TTL,
- FLAT_RANDOM_ADDR_AUTH, LINK_STATE_ROUTING, SIMPLE_PFF,
+ FLAT_RANDOM_ADDR_AUTH, LINK_STATE_ROUTING,
SHA3_256, DEFAULT_SERVER_PORT, SHA3_256, 0xA000, SHA3_256,
SHA3_256, SHA3_256);
}
@@ -150,7 +145,6 @@ int do_bootstrap_ipcp(int argc,
uint8_t max_ttl = DEFAULT_TTL;
enum pol_addr_auth addr_auth_type = DEFAULT_ADDR_AUTH;
enum pol_routing routing_type = DEFAULT_ROUTING;
- enum pol_pff pff_type = DEFAULT_PFF;
enum pol_dir_hash hash_algo = DEFAULT_HASH_ALGO;
uint32_t ip_addr = 0;
uint32_t dns_addr = DEFAULT_DDNS;
@@ -232,13 +226,6 @@ int do_bootstrap_ipcp(int argc,
routing_type = ROUTING_LINK_STATE_LFA;
else
goto unknown_param;
- } else if (matches(*argv, "pff") == 0) {
- if (strcmp(SIMPLE_PFF, *(argv + 1)) == 0)
- pff_type = PFF_SIMPLE;
- else if (strcmp(ALTERNATE_PFF, *(argv + 1)) == 0)
- pff_type = PFF_ALTERNATE;
- else
- goto unknown_param;
} else {
printf("Unknown option: \"%s\".\n", *argv);
return -1;
@@ -324,7 +311,6 @@ int do_bootstrap_ipcp(int argc,
conf.max_ttl = max_ttl;
conf.addr_auth_type = addr_auth_type;
conf.routing_type = routing_type;
- conf.pff_type = pff_type;
break;
case IPCP_UDP:
if (ip_addr == 0)