blob: 3aab7da29046bb145fd9093551672030df9fdd72 [file] [log] [blame] [view]
Davide Pesavento777ae612023-01-14 21:09:00 -05001<div align="center">
2
3[<img alt height="65" src="_static/ndn-logo.svg"/>](https://named-data.net/)
4
Davide Pesavento04af5f22020-06-21 22:02:47 -04005# NDN Packet Format Specification
Alexander Afanasyev26f0ff82013-11-21 23:22:41 +00006
Davide Pesavento777ae612023-01-14 21:09:00 -05007</div>
Alexander Afanasyev26f0ff82013-11-21 23:22:41 +00008
Davide Pesavento777ae612023-01-14 21:09:00 -05009This repository contains the base packet format specification of the Named Data
10Networking (NDN) protocol.
Alexander Afanasyev1f53de42013-12-01 19:25:55 +000011
Davide Pesavento777ae612023-01-14 21:09:00 -050012An HTML version of the specification can be viewed online at
13<https://docs.named-data.net/NDN-packet-spec/>.
14
15## Compiling from source
16
17### Prerequisites
18
19To "compile" the specification in HTML format, you must first install the
20[Sphinx](https://www.sphinx-doc.org/en/master/) documentation generator and a
21few other dependencies. To do so, first make sure that the following packages
22are installed and up to date:
23
24* make
25* python 3.8 or later
26* pip
27
28For instance, on Ubuntu Linux you can use the following commands:
Alexander Afanasyev26f0ff82013-11-21 23:22:41 +000029
Davide Pesavento04af5f22020-06-21 22:02:47 -040030 sudo apt install make python3-pip
Davide Pesavento777ae612023-01-14 21:09:00 -050031 python3 -m pip install -U pip
Alexander Afanasyev26f0ff82013-11-21 23:22:41 +000032
Davide Pesavento777ae612023-01-14 21:09:00 -050033On other operating systems, you can either use your preferred package manager or
34follow [pip's installation instructions](https://pip.pypa.io/en/stable/installation/).
Alexander Afanasyev1f53de42013-12-01 19:25:55 +000035
Davide Pesavento777ae612023-01-14 21:09:00 -050036Finally, run:
37
38 python3 -m pip install -r requirements.txt
39
40to install the recommended version of Sphinx and its dependencies.
41
42### Compilation
Alexander Afanasyev26f0ff82013-11-21 23:22:41 +000043
Davide Pesavento04af5f22020-06-21 22:02:47 -040044Just type:
Alexander Afanasyev26f0ff82013-11-21 23:22:41 +000045
46 make html
47
Davide Pesaventof2eb3592021-12-02 19:24:22 -050048And a set of HTML pages will be generated inside `_build/html`.
Alexander Afanasyev26f0ff82013-11-21 23:22:41 +000049
Davide Pesavento04af5f22020-06-21 22:02:47 -040050You can also type:
Alexander Afanasyev26f0ff82013-11-21 23:22:41 +000051
52 make latexpdf
53
Davide Pesavento777ae612023-01-14 21:09:00 -050054Sphinx will generate a `.tex` file and will try to compile it into a PDF document
55using `latexmk` and `pdflatex` (which must be installed). If successful, the final
56`.pdf` file can be found in `_build/latex`.
Alexander Afanasyev26f0ff82013-11-21 23:22:41 +000057
Davide Pesavento04af5f22020-06-21 22:02:47 -040058For further options, type `make help`.