Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add support to generate seed simulation file to scion topology tool #4508

Draft
wants to merge 50 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
02eb6be
first steps seed file generation for topology (command line argument,…
Bruol Mar 18, 2024
992475a
added cert_issuer to topo_dict
Bruol Mar 18, 2024
0d8d50f
added cert_issuer setting
Bruol Mar 18, 2024
225c903
added, control service generation
Bruol Mar 18, 2024
166795a
add border router generation
Bruol Mar 20, 2024
a33e297
first draft of seed from topo working
Bruol Mar 25, 2024
1cd81f3
first draft of seed from topo working
Bruol Apr 1, 2024
4b837b4
added ipv6 check
Bruol Apr 2, 2024
a00c759
completely redid seed file generation. its now based on parsing the y…
Bruol Apr 3, 2024
14eab06
added helpful description to cli arguments for disabling IPv6 check etc
Bruol Apr 3, 2024
cb9c80d
fixed typo
Bruol Apr 3, 2024
ddb63c3
added suport for specifying the parentNetwork for seed IPAddresses us…
Bruol Apr 3, 2024
c867c0c
added AS note support to topo tool
Bruol Apr 5, 2024
1bb2f66
added type annotations to seed generator
Bruol Apr 5, 2024
e25c3a0
updated documentation for topo file
Bruol Apr 5, 2024
c8d4d63
added example topo files and updated .topo file documentation
Bruol Apr 15, 2024
ae7679d
added support for optional borderRouterProperty Section in .topo file
Bruol Apr 15, 2024
ab35e9a
updated .topo file documentation
Bruol Apr 15, 2024
601f248
Merge branch 'scionproto:master' into master
Bruol Apr 18, 2024
006336e
fixed linter errors except for long lines
Bruol Apr 26, 2024
56dea8c
linter errors in seed.py except for long lines fixed
Bruol Apr 26, 2024
db3e99a
fixed linter errors except for to long lines. Have not found good sol…
Bruol Apr 26, 2024
d6a424a
Merge branch 'master' of github.com:Bruol/scion
Bruol Apr 26, 2024
db7fe42
added all but one of the review suggestions
Bruol May 17, 2024
a8fad42
Merge branch 'master' into master
Bruol May 18, 2024
401f7d9
fixed linter errors in README
Bruol May 18, 2024
e844bd0
Merge branch 'master' of github.com:Bruol/scion
Bruol May 18, 2024
34c6c0e
fixed linter errors in readme
Bruol May 18, 2024
f0928ec
tried to fix linter errors
Bruol May 18, 2024
9e421b7
tried to fix linter errors
Bruol May 18, 2024
53f0e8e
try indentation
Bruol May 18, 2024
faf4fa9
tried to fix linter errors
Bruol May 18, 2024
613acd6
tried to fix linter errors
Bruol May 18, 2024
bdb4f27
tried to fix linter errors
Bruol May 18, 2024
7836073
should have fixed the linter errors
Bruol May 18, 2024
3003d64
1) implemented review to put seed AS generation in template
Bruol Jun 3, 2024
cc256cb
tried to fix linting
Bruol Jun 3, 2024
8e1b75c
tried to fix linting
Bruol Jun 3, 2024
e50d6bb
tried to fix linting
Bruol Jun 3, 2024
ddc33f2
updated seed to use the new version of the internet map, which allows…
Bruol Jul 19, 2024
5a46a01
fixed linter error
Bruol Jul 19, 2024
ff4c060
made as internal networks use specified parent net
Bruol Aug 14, 2024
212ee11
adapted scion.sh to support flags for setting cross connect and AS in…
Bruol Aug 14, 2024
9bc79db
fixed linter errors
Bruol Aug 14, 2024
912fe70
fixed bug with graphviz compiler
Bruol Aug 14, 2024
8b30af6
added section on how to generate seed emulation to documentation
Bruol Aug 14, 2024
f2e861e
fixed linting
Bruol Aug 14, 2024
a8a0bba
tried again to fix linting
Bruol Aug 14, 2024
5028019
tried again
Bruol Aug 14, 2024
7c09fd7
tried again
Bruol Aug 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions tools/topogen.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def add_arguments(parser):
parser.add_argument('-d', '--docker', action='store_true',
help='Create a docker compose configuration')
parser.add_argument('-n', '--network',
help='Network to create subnets in (E.g. "127.0.0.0/8"')
help='Network to create subnets in (E.g. "127.0.0.0/8")')
parser.add_argument('-o', '--output-dir', default=GEN_PATH,
help='Output directory')
parser.add_argument('--random-ifids', action='store_true',
Expand All @@ -50,7 +50,10 @@ def add_arguments(parser):
help='Generate a SIG per AS (only available with -d, the SIG image needs\
to be built manually e.g. when running acceptance tests)')
parser.add_argument('--features', help='Feature flags to enable, a comma separated list\
e.g. foo,bar enables foo and bar feature.')
e.g. foo,bar enables foo and bar feature.\n \
Available features: SeedInternetMapDisable, SeedCompilerGraphviz, SeedSkipIPv6Check ')
parser.add_argument('-s','--seed',action='store_true',help='Generate a seed file for the topology')

return parser


Expand Down
11 changes: 11 additions & 0 deletions tools/topology/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
from topology.cert import CertGenArgs, CertGenerator
from topology.common import ArgsBase
from topology.docker import DockerGenArgs, DockerGenerator
from topology.seed import SeedGenArgs, SeedGenerator
from topology.go import GoGenArgs, GoGenerator
from topology.net import (
NetworkDescription,
Expand Down Expand Up @@ -108,6 +109,8 @@ def _ensure_uniq_ases(self):

def _generate_with_topo(self, topo_dicts):
self._generate_go(topo_dicts)
if self.args.seed:
self._generate_seed(topo_dicts)
if self.args.docker:
self._generate_docker(topo_dicts)
else:
Expand Down Expand Up @@ -157,6 +160,14 @@ def _generate_docker(self, topo_dicts):
def _docker_args(self, topo_dicts):
return DockerGenArgs(self.args, topo_dicts, self.all_networks)

def _generate_seed(self, topo_dicts):
args = self._seed_args(topo_dicts)
seed_gen = SeedGenerator(args)
seed_gen.generate()

def _seed_args(self, topo_dicts):
return SeedGenArgs(self.args, topo_dicts, self.all_networks)

def _generate_monitoring_conf(self, topo_dicts):
args = self._monitoring_args(topo_dicts)
mon_gen = MonitoringGenerator(args)
Expand Down
Loading