diff options
author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2021-01-02 14:20:25 +0100 |
---|---|---|
committer | Sander Vrijders <sander@ouroboros.rocks> | 2021-01-03 11:59:59 +0100 |
commit | 4402f3381b369ae47963ef8936c8f9672697d8db (patch) | |
tree | 2faf226c03afc2ca63bbd630ba982c8ad55b3bb3 /src/lib | |
parent | fa2ca608aa06c98c080edf80c00d39d6d90e4d3a (diff) | |
download | ouroboros-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.proto | 7 | ||||
-rw-r--r-- | src/lib/irm.c | 6 |
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: |