[*] Initial commit

This commit is contained in:
Lorenzo Cogotti
2021-06-07 16:55:13 +02:00
commit b0ef4dd774
117 changed files with 29737 additions and 0 deletions

1022
doc/Doxyfile.in Normal file

File diff suppressed because it is too large Load Diff

55
doc/HISTORY.md Normal file
View File

@ -0,0 +1,55 @@
Micro BGP Suite history
=======================
This document summarizes a bit of history of the project, it tells you anything
you didn't want to know about `ubgpsuite` and never cared to ask.
`ubgpsuite` was created as an evolution over `bgpscanner` and its companion
library, `isocore`. `bgpscanner` was originally developed by me starting in 2017
as part of the Isolario Project, under the Institute of Informatics and
Telematics of the Italian National Research Council
[IIT-CNR](https://www.iit.cnr.it/).
`bgpscanner` was covered by the MIT license terms and is still available
(as of May 2021) at Isolario's
[website](https://isolario.it/web_content/php/site_content/tools.php).
Despite the fact that `bgpscanner` code was developed mostly by me, the
help of the Isolario team, their patience, and their knowledge about BGP's
nuts and bolts was invaluable to get it rolling.
By mid 2019, my collaboration with IIT-CNR has ceased.
In an attempt to further the concepts behind `bgpscanner` and keep experimenting
with them, I started the `ubgpsuite` project. At this time I was involved with
[Alpha Cogs](https://www.alphacogs.com), a company I co-founded, so I undertook
`ubgpsuite` development and got it moving forward with its financial support.
`ubgpsuite` was born by a partial rewrite of `bgpscanner`, taking advantage of
the fact that there was no more interoperability constrain with a larger
project -- `isocore` was originally intended to be used by other
components inside the Isolario project as well, but that wasn't the
case anymore. This allowed some minor improvement to the codebase, but the
overall software architecture was unchanged. Though `ubgpsuite` was relicensed
under the terms of LGPLv3+ for library code and GPLv3+ for utilities and tools.
The choice was motivated by my intention to keep the project free
(as in freedom) forever, considering that the only reason I was able to continue
developing the code I authored at IIT-CNR and keep the project alive was
its original open source license.
Unfortunately a chronical lack of time, due to more pressing company priorities,
has hit the fan during that year and most of 2020. But finally,
by the end of 2020, I got the chance to dedicate some time to the project.
As a matter of fact, I left Alpha Cogs and devoted a bit of myself to
move `ubgpsuite` and other projects I cared about out of stagnation.
`ubgpsuite` was then outside Alpha Cogs and became the first of
DoubleFourteen Code Forge projects -- 1414° for short, an initiative I
founded to research and develop free software, in the hope of improving
the software ecosystem.
On 2021, a total rewrite of `ubgpsuite` was complete and ready for release,
with this document included. History of the project will thereafter remain
unread.
Keep developing the code you love and enjoy,
---
Lorenzo Cogotti

3
doc/css/custom.css Normal file
View File

@ -0,0 +1,3 @@
:root {
--note-color-darker: #8e7618;
}

View File

@ -0,0 +1,108 @@
/**
Doxygen Awesome
https://github.com/jothepro/doxygen-awesome-css
MIT License
Copyright (c) 2021 jothepro
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
:root {
/* side nav width. MUST be = `TREEVIEW_WIDTH`.
* Make sure it is wide enought to contain the page title (logo + title + version)
*/
--side-nav-fixed-width: 350px;
--menu-display: none;
--top-height: 120px;
}
@media screen and (min-width: 768px) {
:root {
--searchbar-background: var(--page-background-color);
}
#side-nav {
min-width: var(--side-nav-fixed-width);
max-width: var(--side-nav-fixed-width);
top: var(--top-height);
}
#nav-tree, #side-nav {
height: calc(100vh - var(--top-height)) !important;
}
#nav-tree {
padding: 0;
}
#top {
display: block;
border-bottom: none;
height: var(--top-height);
margin-bottom: calc(0px - var(--top-height));
max-width: var(--side-nav-fixed-width);
background: var(--side-nav-background);
}
#main-nav {
float: left;
}
.ui-resizable-handle {
cursor: default;
width: 1px !important;
box-shadow: 0 calc(-2 * var(--top-height)) 0 0 var(--separator-color);
}
#nav-path {
position: fixed;
right: 0;
left: var(--side-nav-fixed-width);
bottom: 0;
width: auto;
}
#doc-content {
height: calc(100vh - 31px) !important;
padding-bottom: calc(3 * var(--spacing-large));
padding-top: calc(var(--top-height) - 80px);
box-sizing: border-box;
margin-left: var(--side-nav-fixed-width) !important;
}
#MSearchBox {
width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)));
}
#MSearchField {
width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 65px);
}
#MSearchResultsWindow {
left: var(--spacing-medium) !important;
right: auto;
}
}

1365
doc/css/doxygen-awesome.css Normal file

File diff suppressed because it is too large Load Diff

21
doc/meson.build Normal file
View File

@ -0,0 +1,21 @@
cdata = configuration_data({
'TOP_SRCDIR': meson.source_root(),
'TOP_BUILDDIR': meson.build_root(),
'OUTPUT_DIR': meson.build_root() / 'doc',
'VERSION': meson.project_version(),
'PROJECT_NAME': meson.project_name(),
})
doxyfile = configure_file(input : 'Doxyfile.in',
output : 'Doxyfile',
configuration : cdata,
install : false)
doc_target = custom_target('doc',
build_by_default : false,
build_always_stale : true,
console : true,
command : [ doxygen, doxyfile ],
output : [ 'doc' ])
alias_target('doc', doc_target)