From 26540a9a5cdc045b8e6e47284ac32cbb06754227 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Wed, 28 Sep 2022 17:17:46 +0200 Subject: [PATCH] Add a few notes about design Might be useful for a thesis or future documentation. --- design_notes/README.md | 4 ++++ design_notes/layers.md | 22 ++++++++++++++++++++++ design_notes/map_differences.md | 19 +++++++++++++++++++ design_notes/toolkit_choice.md | 6 ++++++ 4 files changed, 51 insertions(+) create mode 100644 design_notes/README.md create mode 100644 design_notes/layers.md create mode 100644 design_notes/map_differences.md create mode 100644 design_notes/toolkit_choice.md diff --git a/design_notes/README.md b/design_notes/README.md new file mode 100644 index 0000000..b91ed86 --- /dev/null +++ b/design_notes/README.md @@ -0,0 +1,4 @@ +A few files related to the design. Currently notes for myself, which do not +necessarily make sense without implicit context. + +One day, we should have a proper `docs` directory with coherent documentation. diff --git a/design_notes/layers.md b/design_notes/layers.md new file mode 100644 index 0000000..703cf9d --- /dev/null +++ b/design_notes/layers.md @@ -0,0 +1,22 @@ +Layering: + +File format: BIRD OSPF style + TODO: spec + - Two sublayers: syntax, semantics (what attributes are defined for what) + Ref: BIRD's source code? + +Parsing layer: create own objects from the OSPF state dump. + FIXME: currently does not exist and everything is ugly + +Graph layer: get two maps: ref and current + compare using some dicts, probably + Output: the graph, differences between maps + +Visualisation: + Vertex and edge positions and styling + Network reduction (TODO: here or before?) + TODO: File format: use BIRD style, or something else + - We need to be able to write this + Underlays + Interactions (SPOFs, trees, path finding) + Map editing mode diff --git a/design_notes/map_differences.md b/design_notes/map_differences.md new file mode 100644 index 0000000..95853b0 --- /dev/null +++ b/design_notes/map_differences.md @@ -0,0 +1,19 @@ +Reference map vs OSPF map: + +Both same: super +Router missing in reference map: was not added, pls add +Router missing in OSPF map: probably down? + - The rest should be connected, otherwise this is weird (our bug?) +Network missing from ref: this is strange, maybe reconfiguration? + - If behind a previously unknown router, it's less strange +Network missing from OSPF: All links down? Seems wrong. +Connection missing from ref: should not happen unless reconfiguring + - We can draw that without config as straight line. This feels much safer than autopositioning networks or routers. +Conn missing from OSPF: link down, quite likely. + + + +Analysis functions: +- SPOFs +- Routing trees + - Note: Link costs are asym? Cost is from router to network, and network assumes all routers are there? diff --git a/design_notes/toolkit_choice.md b/design_notes/toolkit_choice.md new file mode 100644 index 0000000..e4e4c4d --- /dev/null +++ b/design_notes/toolkit_choice.md @@ -0,0 +1,6 @@ +Qt vs Gtk: +- The main two multiplatform toolkits. Not going away soon, many examples, big communities +- Qt chosen because it has better documentation (at the first glance), I have a tiny knowledge of it and Gtk feels a bit stubborn… + - Interlinked, not just separate concepts. I found the wrong drag'n'drop at the first time… + - The complete drag'n'drop example already part of documentation (examples/widgets/graphicsview/diagramscene) + - IDK whether it will support image export…