diff options
Diffstat (limited to 'docs/source/started.md')
-rw-r--r-- | docs/source/started.md | 143 |
1 files changed, 107 insertions, 36 deletions
diff --git a/docs/source/started.md b/docs/source/started.md index ef3763366..dd2f83bab 100644 --- a/docs/source/started.md +++ b/docs/source/started.md @@ -1,15 +1,16 @@ -# Getting started +# Code structure ## Introduction -hicn is an open source implementation of Cisco's hICN. It includes a network stack, that implements -ICN forwarding path in IPv6, and a transport stack that implements two main transport protocols and -a socket API. The transport protocols provide one reliable transport service implementation and a -real-time transport service for audio/video media. +hicn is an open source implementation of Cisco's hICN. It includes a network +stack, that implements ICN forwarding path in IPv6, and a transport stack that +implements two main transport protocols and a socket API. The transport +protocols provide one reliable transport service implementation and a real-time +transport service for audio/video media. ## Directory layout -```text + | Directory name | Description | | -------------- | --------------------------------------------------------- | | lib | Core support library | @@ -19,39 +20,36 @@ real-time transport service for audio/video media. | utils | Tools for testing | | apps | Application examples using hicn stack | | ctrl | Tools and libraries for network management and control | -``` -hicn plugin is a VPP plugin that implement hicn packet processing as specified in -<https://datatracker.ietf.org/doc/draft-muscariello-intarea-hicn/.> The transport library is used to -implement the hicn host stack and makes use of libmemif as high performance connector between -transport and the network stack. The transport library makes use of VPP binary API to configure the -local namespace (local face management). +hicn plugin is a VPP plugin that implement hicn packet processing as specified +in [1] The transport library is used to implement the hicn host stack and makes +use of libmemif as high performance connector between transport and the network +stack. The transport library makes use of VPP binary API to configure the local +namespace (local face management). ## Release note -The current master branch provides the latest release which is compatible with the latest VPP stable. -No other VPP releases are supported nor maintained. At every new VPP release distribution hicn -master branch is updated to work with the latest stable release. All previous stable releases -are discontinued and not maintained. The user who is interested in a specific release can always -checkout the right code tree by searching the latest commit under a given git tag carrying the -release version. +The current master branch provides the latest release which is compatible with +the latest VPP stable. No other VPP releases are supported nor maintained. At +every new VPP release distribution hicn master branch is updated to work with +the latest stable release. All previous stable releases are discontinued and not +maintained. The user who is interested in a specific release can always checkout +the right code tree by searching the latest commit under a given git tag +carrying the release version. -The Hybrid ICN software distribution can be installed for several platforms. -The network stack comes in two different implementations: one scalable based -on VPP and one portable based on IPC and sockets. +The Hybrid ICN software distribution can be installed for several platforms. The +network stack comes in two different implementations: one scalable based on VPP +and one portable based on IPC and sockets. -The transport stack is a unique library that is used for both the scalable -and portable network stacks. +The transport stack is a unique library that is used for both the scalable and +portable network stacks. ## Supported platforms -- Ubuntu 18.04 LTS (amd64, arm64) -- Debian Stable/Testing -- Red Hat Enterprise Linux 7 -- CentOS 7 +- Ubuntu 20.04 LTS (amd64, arm64) - Android 10 (amd64, arm64) -- iOS 13 -- macOS 10.15 +- iOS 15 +- macOS 12.3 - Windows 10 Other platforms and architectures may work. @@ -63,35 +61,97 @@ You can either use released packages, or compile hicn from sources. curl -s https://packagecloud.io/install/repositories/fdio/release/script.deb.sh | sudo bash ``` -### CentOS +The following debian packages for Ubuntu are available dor amd64 and arm64 ```bash -curl -s https://packagecloud.io/install/repositories/fdio/release/script.rpm.sh | sudo bash +facemgr-dev +facemgr +hicn-apps-dev +hicn-apps +hicn-light +hicn-plugin-dev +hicn-plugin +libhicn-dev +libhicn +libhicnctrl-dev +libhicnctrl-modules +libhicnctrl +libhicntransport-dev +libhicntransport-io-modules +libhicntransport ``` ### macOS ```bash +brew tap icn-team/hicn-tap brew install hicn ``` +or + +```bash +git clone https://github.com/FDio/hicn.git +$ cd hicn +$ OPENSSL_ROOT_DIR=/usr/local/opt/openssl\@1.1 make build-release +``` + ### Android +hICN is built as a native library for the Android NDK which are packaged +as Android archives AAR and made available in a Maven repository in +Github Packages in + +<https://github.com/orgs/icn-team/packages> + +To build from sources, refer to the Android SDK in + +<https://github.com/icn-team/android-sdk> Install the applications via the Google Play Store + <https://play.google.com/store/apps/developer?id=ICN+Team> ### iOS -Coming soon. +Clone this distro + +```bash +git clone https://github.com/icn-team/ios-sdk.git +cd ios-sdk +``` +Compile everything (dependencies and hICN modules) + +```bash +make update +make all +``` +Compile everything with Qt (dependencies, hICN modules and Viper dependencies) + +```bash +make update +make all_qt +``` ### Windows -Coming soon. +Install vcpkg + +```bash +git clone https://github.com/icn-team/windows-sdk +.\windows-sdk\scripts\init.bat +``` + + +```bash +cd windows-sdk +make all +``` ### Docker -Several docker images are nightly built with the latest software for Ubuntu 18 LTS (amd64/arm64), -and available on docker hub at <https://hub.docker.com/u/icnteam>. +Several docker images are nightly built with the latest software for Ubuntu 18 +LTS (amd64/arm64), and available on docker hub at +<https://hub.docker.com/u/icnteam>. The following images are nightly built and maintained. @@ -106,6 +166,8 @@ docker pull icnteam/vhttpproxy:amd64 docker pull icnteam/vhttpproxy:arm64 ``` +Other Dockerfiles are included in the main git repo for development. + ### Vagrant Vagrant boxes for a virtual switch are available at @@ -117,12 +179,21 @@ vagrant box add icnteam/vswitch Supported providers are libvirt, vmware and virtualbox. +## References + +Giovanna Carofiglio, Luca Muscariello, Jordan Augé, Michele Papalini, Mauro +Sardara, and Alberto Compagno. 2019. Enabling ICN in the Internet Protocol: +Analysis and Evaluation of the Hybrid-ICN Architecture. In Proceedings of the +6th ACM Conference on Information-Centric Networking (ICN '19). Association for +Computing Machinery, New York, NY, USA, 55–66. +DOI: https://doi.org/10.1145/3357150.3357394 + ## License This software is distributed under the following license: ```bash -Copyright (c) 2017-2020 Cisco and/or its affiliates. +Copyright (c) 2019-2022 Cisco and/or its affiliates. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: |