diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b551e45..f328d39 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,7 @@ jobs: - os: macos-12 xcode: '13.4' - os: macos-12 - xcode: '14.1' + xcode: '14.2' steps: - name: Set up Xcode uses: maxim-lobanov/setup-xcode@v1 diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh index 9b1e073..c114f8d 100755 --- a/.jenkins.d/00-deps.sh +++ b/.jenkins.d/00-deps.sh @@ -21,7 +21,7 @@ set -x if [[ $ID == macos ]]; then if [[ -n $GITHUB_ACTIONS ]]; then - export HOMEBREW_NO_INSTALL_UPGRADE=1 + export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 fi brew update brew install --formula "${FORMULAE[@]}" diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py index 4debb4e..3a7bf66 100644 --- a/.waf-tools/default-compiler-flags.py +++ b/.waf-tools/default-compiler-flags.py @@ -145,9 +145,9 @@ class GccBasicFlags(CompilerFlags): flags = super(GccBasicFlags, self).getDebugFlags(conf) flags['CXXFLAGS'] += ['-Og', '-g3', - '-pedantic', '-Wall', '-Wextra', + '-Wpedantic', '-Werror', '-Wcatch-value=2', '-Wextra-semi', @@ -163,9 +163,9 @@ class GccBasicFlags(CompilerFlags): flags = super(GccBasicFlags, self).getOptimizedFlags(conf) flags['CXXFLAGS'] += ['-O2', '-g', - '-pedantic', '-Wall', '-Wextra', + '-Wpedantic', '-Wcatch-value=2', '-Wextra-semi', '-Wnon-virtual-dtor', diff --git a/AUTHORS.md b/AUTHORS.md index 1dce9f7..b9bdca0 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -1,8 +1,8 @@ # NLSR Authors -The following lists maintainers, primary developers, and all much-appreciated contributors to NLSR in alphabetic order. +The following lists maintainers, primary developers, and all much-appreciated contributors to NLSR in alphabetical order. The specific contributions of individual authors can be obtained from the git history of the [official NLSR repository](https://github.com/named-data/NLSR). -If you would like to become a contributor to the official repository, please follow the recommendations in https://github.com/named-data/.github/blob/master/CONTRIBUTING.md. +If you would like to become a contributor to the official repository, please follow the recommendations in . * Alexander Afanasyev * Adam Alyyan diff --git a/COPYING.md b/COPYING.md index 661a055..252444b 100644 --- a/COPYING.md +++ b/COPYING.md @@ -21,11 +21,10 @@ NLSR relies on third-party software, licensed under the following licenses: - The waf build system is licensed under the terms of the [BSD license](https://github.com/named-data/NLSR/blob/master/waf) - The GPL license is provided below in this file. -For more information, see http://www.gnu.org/licenses/ +For more information, see ----------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- ### GNU GENERAL PUBLIC LICENSE diff --git a/README-dev.md b/README-dev.md index b7b3958..27aa479 100644 --- a/README-dev.md +++ b/README-dev.md @@ -1,5 +1,9 @@ -Requirements ------------- +# Notes for NLSR developers + +If you are new to the NDN software community, please read the +[Contributor's Guide](https://github.com/named-data/.github/blob/master/CONTRIBUTING.md). + +## Licensing requirements Contributions to NLSR must be licensed under GPL 3.0 or compatible license. If you are choosing GPL 3.0, please use the following license boilerplate in all `.hpp` and `.cpp` @@ -26,15 +30,13 @@ Include the following header in all `.hpp` and `.cpp` files: * NLSR, e.g., in COPYING.md file. If not, see . */ -If you are affiliated with an NSF-supported NDN project institution, -please use the [NDN Team License Boilerplate] -(https://redmine.named-data.net/projects/nlsr/wiki/NDN_Team_License_Boilerplate_(NLSR)). +If you are affiliated with an NSF-supported NDN project institution, please use the [NDN Team License +Boilerplate](https://redmine.named-data.net/projects/nlsr/wiki/NDN_Team_License_Boilerplate_(NLSR)). -Recommendations ---------------- +## Recommendations -NLSR code is subject to the code style, defined here: -https://redmine.named-data.net/projects/nfd/wiki/CodeStyle +NLSR code is subject to the code style defined +[here](https://redmine.named-data.net/projects/nfd/wiki/CodeStyle). -NLSR Developer's guide can be found here: -https://github.com/named-data/NLSR/blob/developers-guide/NLSR-Developers-Guide.pdf +NLSR Developer's guide can be found +[here](https://github.com/named-data/NLSR/blob/developers-guide/NLSR-Developers-Guide.pdf). diff --git a/README.md b/README.md index 25cee7d..6ce446b 100644 --- a/README.md +++ b/README.md @@ -14,28 +14,25 @@ NLSR is a routing protocol in NDN that populates NDN's Routing Information Base. NLSR will continue to evolve alongside the Named Data Networking [protocol](https://named-data.net/doc/NDN-packet-spec/current/). -NLSR is an open and free software package licensed under the GPL 3.0 license and free to -all Internet users and developers. For more information about the licensing details and -limitations, refer to [`COPYING.md`](COPYING.md). - -NLSR is developed by the members of the [NSF-sponsored NDN project team](https://named-data.net/project/participants/). -For more details, please refer to [`AUTHORS.md`](AUTHORS.md). -Bug reports and feedback are highly appreciated and can be made through our -[Redmine site](https://redmine.named-data.net/projects/nlsr/issues). - The main design goal of NLSR is to provide a routing protocol to populate NDN's RIB. NLSR calculates the routing table using link-state or hyperbolic routing and produces multiple faces for each reachable name prefix in a single authoritative domain. NLSR will continue to evolve over time to include neighbor discovery and to become a full fledged inter-domain routing protocol for NDN. +NLSR was mainly developed by members of the NSF-sponsored [NDN project team]( +https://named-data.net/project/participants/). See [`AUTHORS.md`](AUTHORS.md) for details. + +Bug reports and feedback are highly appreciated and can be submitted through the +[NLSR issue tracker](https://redmine.named-data.net/projects/nlsr/issues). + ## Source releases The source code and installation instructions are available at the following locations: - [Installation](https://named-data.net/doc/NLSR/current/INSTALL.html) -- [Getting Started with NLSR](https://named-data.net/doc/NLSR/current/GETTING-STARTED.html) -- [GitHub NLSR repository](https://github.com/named-data/NLSR) +- [Getting started with NLSR](https://named-data.net/doc/NLSR/current/GETTING-STARTED.html) +- [NLSR GitHub repository](https://github.com/named-data/NLSR) ## Additional resources @@ -46,3 +43,8 @@ The source code and installation instructions are available at the following loc - [NLSR Mailing List](https://listserv.memphis.edu/scripts/wa.exe?SUBED1=NLSR-HELP-L&A=1) - [NLSR Mailing List Archives](https://listserv.memphis.edu/scripts/wa.exe?A0=NLSR-HELP-L) - [NLSR Developer's guide](https://github.com/named-data/NLSR/blob/developers-guide/NLSR-Developers-Guide.pdf) + +## License + +NLSR is free software distributed under the GNU General Public License version 3. +See [`COPYING.md`](COPYING.md) for details. diff --git a/docs/RELEASE-NOTES.rst b/docs/RELEASE-NOTES.rst deleted file mode 100644 index 04e2f84..0000000 --- a/docs/RELEASE-NOTES.rst +++ /dev/null @@ -1,4 +0,0 @@ -Release Notes -============= - -.. include:: release-notes-latest.rst diff --git a/docs/conf.py b/docs/conf.py index a7b4832..1e61a46 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -10,7 +10,7 @@ import sys # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project = 'Named Data Link State Routing Protocol (NLSR)' -copyright = 'Copyright © 2014-2022 Named Data Networking Project.' +copyright = 'Copyright © 2014-2023 Named Data Networking Project.' author = 'Named Data Networking Project' # The short X.Y version. diff --git a/docs/index.rst b/docs/index.rst index 27a28ba..fa1ee00 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,29 +1,5 @@ -NLSR - Named Data Link State Routing Protocol -============================================= - -NLSR is a routing protocol in NDN that populates NDN's Routing Information Base. NLSR will -continue to evolve alongside the Named Data Networking `protocol -`_. - -NLSR is an open and free software package licensed under the GPL 3.0 license and free to -all Internet users and developers. For more information about the licensing details and -limitations, refer to `COPYING.md -`_. - -NLSR is developed by the members of the `NSF-sponsored NDN project team -`_. For more details, please refer to -`AUTHORS.md `_. Bug reports and -feedback are highly appreciated and can be made through the `NLSR Wiki`_. - -The main design goal of NLSR is to provide a routing protocol to populate NDN's FIB. NLSR -calculates the routing table using link-state or hyperbolic routing and produces multiple -faces for each reachable name prefix in a single authoritative domain. NLSR will continue -to evolve over time to include neighbor discovery and to become a full fledged -inter-domain routing protocol for NDN. The protocol design is presented in full detail in -the `NLSR Paper`_. - -NLSR Documentation ------------------- +NLSR: Named Data Link State Routing Protocol +============================================ .. toctree:: :hidden: @@ -33,47 +9,74 @@ NLSR Documentation INSTALL SECURITY-CONFIG ROUTER-CONFIG - RELEASE-NOTES - releases - manpages beginners-guide + manpages + release-notes + releases -- :doc:`GETTING-STARTED` -- :doc:`INSTALL` -- :doc:`SECURITY-CONFIG` -- :doc:`ROUTER-CONFIG` -- :doc:`RELEASE-NOTES` -- :doc:`releases` -- :doc:`manpages` -- :doc:`beginners-guide` +**NLSR** is a routing protocol for NDN that populates NDN's Routing Information Base. +NLSR will continue to evolve alongside the Named Data Networking `protocol +`__. + +The main design goal of NLSR is to provide a routing protocol to populate NDN's FIB. NLSR +calculates the routing table using link-state or hyperbolic routing and produces multiple +faces for each reachable name prefix in a single authoritative domain. NLSR will continue +to evolve over time to include neighbor discovery and to become a full fledged +inter-domain routing protocol for NDN. The protocol design is presented in full detail in +the `NLSR Paper`_. + +NLSR was mainly developed by members of the NSF-sponsored `NDN project team +`__. See `AUTHORS.md +`__ for details. + +Bug reports and feedback are highly appreciated and can be made through the `NLSR Redmine`_. + +Documentation +------------- + +- :doc:`GETTING-STARTED` +- :doc:`INSTALL` +- :doc:`SECURITY-CONFIG` +- :doc:`ROUTER-CONFIG` +- :doc:`beginners-guide` +- :doc:`manpages` +- :doc:`release-notes` +- :doc:`releases` Downloading ----------- -- `Source code git repository `_ +- `Source code git repository `__ NLSR mailing list ----------------- -- `NLSR Mailing List`_ - -- `NLSR Mailing List Archives`_ +- `NLSR Mailing List`_ +- `NLSR Mailing List Archives`_ `Sign up`_ is needed to post to the list or access the archives. -Additional information ----------------------- +Additional resources +-------------------- -- `NLSR Wiki`_ +- `NLSR Wiki`_ -- `NLSR Redmine`_ - Feature requests and bug reports +- `NLSR Redmine`_ + Feature requests and bug reports -- `NLSR Paper`_ - Detailed explanation of the NLSR design +- `NLSR Paper`_ + Detailed explanation of NLSR's design -- `NLSR Developer's Guide`_ - For NLSR Development +- `NLSR Developer's Guide`_ + For NLSR development + +- `API documentation (doxygen) `__ + +License +------- + +NLSR is free software distributed under the GNU General Public License version 3. +See `COPYING.md `__ for details. .. _NLSR Wiki: https://redmine.named-data.net/projects/nlsr/wiki .. _NLSR Paper: https://named-data.net/wp-content/uploads/2016/01/ndn-0037-1-nlsr.pdf diff --git a/docs/manpages/nlsrc.rst b/docs/manpages/nlsrc.rst index f91706b..81d92f2 100644 --- a/docs/manpages/nlsrc.rst +++ b/docs/manpages/nlsrc.rst @@ -79,18 +79,15 @@ Notes When security is enabled, NLSR will not be allowed to successfully advertise/withdraw names without first setting a default identity of operator. If default identity is not set as operator, the user will be presented with the -error message: “Name prefix update error (code: 403)”. To remedy this -issue, use command 'ndn-sec-default'. +error message: "Name prefix update error (code: 403)". To remedy this +issue, use the command ``ndnsec set-default``. Example:: -Example: - - ndnsec-set-default /ndn/a-site/%C1.Operator/op + ndnsec set-default /ndn/a-site/%C1.Operator/op Exit Status ----------- -nlsrc exits with one of the following values: -:: +nlsrc exits with one of the following values:: 0 nlsrc exited successfully >0 An error occurred diff --git a/docs/release-notes-latest.rst b/docs/release-notes-latest.rst deleted file mode 120000 index cbbc128..0000000 --- a/docs/release-notes-latest.rst +++ /dev/null @@ -1 +0,0 @@ -release-notes/release-notes-0.6.0.rst \ No newline at end of file diff --git a/docs/release-notes.rst b/docs/release-notes.rst new file mode 100644 index 0000000..7a816ba --- /dev/null +++ b/docs/release-notes.rst @@ -0,0 +1,4 @@ +Release Notes +============= + +.. include:: release-notes/release-notes-0.6.0.rst diff --git a/docs/release-notes/release-notes-0.5.2.rst b/docs/release-notes/release-notes-0.5.2.rst index aa4c526..d65d507 100644 --- a/docs/release-notes/release-notes-0.5.2.rst +++ b/docs/release-notes/release-notes-0.5.2.rst @@ -3,15 +3,16 @@ NLSR version 0.5.2 **Breaking Changes** -The following breaking changes makes this release incompatible with the previous version. -- Use latest PSync version 0.2.0, sync data compression enabled in full sync by default (:issue:`5061`, :issue:`4917`) -- Use the double encoding/decoding functions for hyperbolic coordinates (:issue:`4615`) +The following breaking changes make this release incompatible with the previous version. + +- Use PSync version 0.2.0, sync data compression in full sync is enabled by default (:issue:`5061`, :issue:`4917`) +- Use the floating point encoding/decoding functions for hyperbolic coordinates (:issue:`4615`) **New Features** - Handle zero cost links in Link State Routing (:issue:`4978`) -**Improvements and Bug Fixes**: +**Improvements and Bug Fixes** - Remove support for old combined seq no file (:issue:`4143`) - Sync common test infrastructure with ndn-cxx diff --git a/docs/release-notes/release-notes-0.6.0.rst b/docs/release-notes/release-notes-0.6.0.rst index 1701c67..04c17c1 100644 --- a/docs/release-notes/release-notes-0.6.0.rst +++ b/docs/release-notes/release-notes-0.6.0.rst @@ -1,10 +1,12 @@ NLSR version 0.6.0 -++++++++++++++++++ +------------------ -**Improvements and Bug Fixes** +Improvements and bug fixes +^^^^^^^^^^^^^^^^^^^^^^^^^^ -- **breaking change** Major changes in the TLV structure and classes. Reduced codebase size and - improved compilation times. LSA de/serialize functions are replaced by wireEncode/Decode. Updated LSA - wire formats and TLV assignments. Updated nlsrc to print using the new encoding. (:issue:`4787`, :issue:`5116`) +- *(breaking change)* Major changes in the TLV structure and classes. Reduced codebase size and + improved compilation times. LSA de/serialize functions are replaced by wireEncode/Decode. + Updated LSA wire formats and TLV assignments. Updated nlsrc to print using the new encoding. + (:issue:`4787`, :issue:`5116`) - LSDB refactor: switch to ``boost::multi_index`` to replace 3 LSA lists (:issue:`4127`) - Fix wrong reaction on hello Interest timeout (:issue:`5139`) diff --git a/docs/releases.rst b/docs/releases.rst index 39b1403..96ed2ea 100644 --- a/docs/releases.rst +++ b/docs/releases.rst @@ -1,5 +1,5 @@ NLSR Versions -+++++++++++++ +============= .. toctree:: :glob: