forked from scionproto/scion
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
change last-mile router port forwarding
removing dispatcher from snet and infra libraries intermediate commit remove dispatcher fix dataplane port parsing adapt end2end braccept UTs integration no probe add port range fix port range remove ref to dispatcher & reliable socket fix epic failing test remove dispatcher and reliable: - still integration test failing due to lack of support for SCMP handling and more comments, leftovers, small fixes more minor after rebasing pass add stateless dispatcher intermediate commit - Still things missing, e.g., update topology to include stateless dispatcher update topology with reduced dispatcher config add error handling and debug verbose to endHost resolution in BR add reduced forwarding dispatcher integration and utils integration tests lint + chown container fix docker check, only for linux dev lint modify HP and tests lint fix broken rebase lint pass change dispatcher configuration bugfix: QUIC address for client with :0 port slayers: unmap IPv4-mapped IPv6 addresses (scionproto#4377) The Go standard library can produce IPv4-mapped IPv6 addresses when resolving IP addresses. These IP addresses need to be unmapped before putting them on the wire. Before this patch, we could observe the following with tshark: Len=1304 SCION 1-ff00:0:110,[::ffff:172.20.2.2] -> 1-ff00:0:111,[::ffff:172.20.3.2] UDP 32769 -> 32768 1208 The regression was introduced in scionproto#4346, which removed the unmapping behavior in slayers.PackAddr. This patch restores the behavior to ensure only unmapped IPv4 addresses make it on the wire. Handling the unmapping in the code that generates the addresses and only checking this in slayers would seem ideal, but these calls are often very far away from the place that would then trigger an error. Thus handling this in slayers seems like a compromise that saves us and the users of the slayers package a lot of trouble. add packet reflection safeguard in shim add compatible IP_PKTINFO code for windows fix validateNextHopAddr fix isSCMPInfo add endhost port range configuration port range comment udpportRange add fixme allow unspecified address fon SCIONNetwork.Listen retriving nextHop from path and local Interface information add dispatching logic for SCMP at BR remove dispatcher shim support for Windows remove br dispatcher configuration from integration tests add test for old and new br configuration with(out) shim dispatcher comments and minor fixes remove utils_chown container remove docker utils from script pass pass pass refactor topology endhost_port_range comment for router
- Loading branch information
1 parent
9d2cd86
commit a627bc1
Showing
212 changed files
with
2,920 additions
and
10,626 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
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/old_new_br/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,56 @@ | ||
#!/usr/bin/env python3 | ||
|
||
# Copyright 2023 ETH Zurich | ||
|
||
import time | ||
|
||
from acceptance.common import base | ||
from acceptance.common import scion | ||
# from plumbum import local | ||
|
||
|
||
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 old behaviour (i.e., they will send traffic to its own AS to the | ||
endhost default port) and routers with the new behaviour (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 reassembles 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.endhost_start_port": 0, | ||
"router.endhost_end_port": 0}, | ||
[br_as_2_file]) | ||
|
||
def setup_start(self): | ||
super().setup_start() | ||
time.sleep(10) # TODO(JordiSubira): Replace with self.await_connectivity() after rebasing | ||
|
||
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", | ||
]) |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,4 +2,4 @@ | |
id = "disp_1-ff00_0_110" | ||
|
||
[log.console] | ||
level = "debug" | ||
level = "debug" |
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 |
---|---|---|
|
@@ -2,4 +2,4 @@ | |
id = "disp_1-ff00_0_111" | ||
|
||
[log.console] | ||
level = "debug" | ||
level = "debug" |
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, | ||
"endhost_port_range": "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, | ||
"endhost_port_range": "1024-65535", | ||
"attributes": [ | ||
"core" | ||
], | ||
|
Oops, something went wrong.