-
Notifications
You must be signed in to change notification settings - Fork 162
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
end host, router: dispatch UDP in router, remove dispatcher socket (#…
…4344) Implement the dispatcher-less end host with the UDP port dispatch in the router, as discussed in #4280. Applications (using snet) now open underlay UDP ports directly, and use the same port number for the underlay UDP and SCION/UDP. This SCION_UDP.dst_port number is used by the router as underlay port when forwarding packets to destination hosts. The `dispatcher` has been completely refactored and pruned. It now serves only as a responder for SCMP echo/traceroute requests, and, as a transition mechanism, acts as a stateless "shim" that forwards UDP datagrams. The `reliable/sock` packages has been removed.
- Loading branch information
1 parent
3446efd
commit 15bdf63
Showing
213 changed files
with
3,067 additions
and
11,037 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
load("//acceptance/common:topogen.bzl", "topogen_test") | ||
|
||
topogen_test( | ||
name = "test", | ||
src = "test.py", | ||
args = ["--executable=end2end_integration:$(location //tools/end2end_integration)"], | ||
data = ["//tools/end2end_integration"], | ||
topo = "//acceptance/app_vs_endhost_br_dispatch/testdata:topology.topo", | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
#!/usr/bin/env python3 | ||
|
||
# Copyright 2023 ETH Zurich | ||
|
||
from acceptance.common import base | ||
from acceptance.common import scion | ||
|
||
|
||
class Test(base.TestTopogen): | ||
""" | ||
Constructs a simple test topology with one core, two leaf ASes. | ||
Each of them will run a different mix between BR that will replicate | ||
the legacy endhost-port-dispatch behaviour (i.e., they will send | ||
traffic to its own AS to the endhost default port) and | ||
application-port-dispatch routers (i.e., they will rewrite the underlay | ||
UDP/IP destination port with the UDP/SCION port). | ||
AS 1-ff00:0:1 is core. | ||
AS 1-ff00:0:2, 1-ff00:0:3 are leaves. | ||
We use the shortnames AS1, AS2, etc. for the ASes above. | ||
AS1 contains a BR with the port rewriting configuration to the default | ||
range. It also includes a shim dispatcher. | ||
AS2 contains a BR with a configuration that imitates the old | ||
behaviour, i.e., sending all traffic to default endhost port 30041. | ||
It also includes a shim dispatcher. | ||
AS3 contains a BR with the port rewriting configuration to the default | ||
range. It does not include the shim dispatcher. | ||
""" | ||
|
||
def setup_prepare(self): | ||
super().setup_prepare() | ||
|
||
br_as_2_id = "br1-ff00_0_2-1" | ||
|
||
br_as_2_file = self.artifacts / "gen" / "ASff00_0_2" \ | ||
/ ("%s.toml" % br_as_2_id) | ||
scion.update_toml({"router.dispatched_port_start": 0, | ||
"router.dispatched_port_end": 0}, | ||
[br_as_2_file]) | ||
|
||
def setup_start(self): | ||
super().setup_start() | ||
self.await_connectivity() | ||
|
||
def _run(self): | ||
ping_test = self.get_executable("end2end_integration") | ||
ping_test["-d", "-outDir", self.artifacts].run_fg() | ||
|
||
|
||
if __name__ == "__main__": | ||
base.main(Test) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
exports_files([ | ||
"topology.topo", | ||
]) |
15 changes: 15 additions & 0 deletions
15
acceptance/app_vs_endhost_br_dispatch/testdata/topology.topo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- # Test Topology | ||
ASes: | ||
"1-ff00:0:1": | ||
core: true | ||
voting: true | ||
authoritative: true | ||
issuing: true | ||
"1-ff00:0:2": | ||
cert_issuer: 1-ff00:0:1 | ||
"1-ff00:0:3": | ||
cert_issuer: 1-ff00:0:1 | ||
test_dispatcher: False | ||
links: | ||
- {a: "1-ff00:0:1#2", b: "1-ff00:0:2#1", linkAtoB: CHILD} | ||
- {a: "1-ff00:0:1#3", b: "1-ff00:0:3#1", linkAtoB: CHILD} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,7 @@ | ||
{ | ||
"isd_as": "1-ff00:0:110", | ||
"mtu": 1400, | ||
"dispatched_ports": "1024-65535", | ||
"attributes": [ | ||
"core" | ||
], | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
[general] | ||
reconnect_to_dispatcher = true | ||
config_dir = "/" | ||
id = "cs1-ff00_0_110-1" | ||
|
||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
[general] | ||
reconnect_to_dispatcher = true | ||
config_dir = "/" | ||
id = "sd1-ff00_0_110" | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,7 @@ | ||
{ | ||
"isd_as": "1-ff00:0:110", | ||
"mtu": 1400, | ||
"dispatched_ports": "1024-65535", | ||
"attributes": [ | ||
"core" | ||
], | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.