summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2021-01-02 14:20:25 +0100
committerSander Vrijders <sander@ouroboros.rocks>2021-01-03 11:59:59 +0100
commit4402f3381b369ae47963ef8936c8f9672697d8db (patch)
tree2faf226c03afc2ca63bbd630ba982c8ad55b3bb3 /src/lib
parentfa2ca608aa06c98c080edf80c00d39d6d90e4d3a (diff)
downloadouroboros-4402f3381b369ae47963ef8936c8f9672697d8db.tar.gz
ouroboros-4402f3381b369ae47963ef8936c8f9672697d8db.zip
ipcpd: Single UDP port for the ipcpd-udp0.18.0
The UDP layer will now use a single (configurable) UDP port, default 3435. This makes it easer to allocate flows as a client from behind a NAT firewall without having to configure port forwarding rules. So basically, from now on Ouroboros traffic is transported over a bidirectional <src><port>:<dst><port> UDP tunnel. The reason for not using/allowing different client/server ports is that it would require reading from different sockets using select() or something similar, but since we need the EID anyway (mgmt packets arrive on the same server UDP port), there's not a lot of benefit in doing it. Now the operation is similar to the ipcpd-eth, with the port somewhat functioning as a "layer name", where in UDP, the Ethertype functions as a "layer name". Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/ipcp_config.proto7
-rw-r--r--src/lib/irm.c6
2 files changed, 5 insertions, 8 deletions
diff --git a/src/lib/ipcp_config.proto b/src/lib/ipcp_config.proto
index 9cbf1e49..185d9af7 100644
--- a/src/lib/ipcp_config.proto
+++ b/src/lib/ipcp_config.proto
@@ -40,12 +40,11 @@ message ipcp_config_msg {
// 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 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 19bee4d2..b86b02c9 100644
--- a/src/lib/irm.c
+++ b/src/lib/irm.c
@@ -140,10 +140,8 @@ int irm_bootstrap_ipcp(pid_t pid,
config.ip_addr = conf->ip_addr;
config.has_dns_addr = true;
config.dns_addr = conf->dns_addr;
- config.has_srv_port = true;
- config.srv_port = conf->srv_port;
- config.has_clt_port = true;
- config.clt_port = conf->clt_port;
+ config.has_port = true;
+ config.port = conf->port;
break;
case IPCP_LOCAL:
case IPCP_BROADCAST: