update devguide notes for installing emane
This commit is contained in:
parent
9f3a3cef28
commit
8fe6bc76ca
1 changed files with 25 additions and 15 deletions
|
@ -87,8 +87,18 @@ EMANE bindings are not available through pip, you will need to build and install
|
||||||
[Build EMANE](https://github.com/adjacentlink/emane/wiki/Build#general-build-instructions)
|
[Build EMANE](https://github.com/adjacentlink/emane/wiki/Build#general-build-instructions)
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# after building emane above
|
# clone emane repo
|
||||||
# ./autogen.sh && ./configure --prefix=/usr && make
|
git clone https://github.com/adjacentlink/emane.git
|
||||||
|
|
||||||
|
# install emane build deps
|
||||||
|
sudo apt install libxml2-dev libprotobuf-dev uuid-dev libpcap-dev protobuf-compiler
|
||||||
|
|
||||||
|
# build emane
|
||||||
|
./autogen.sh
|
||||||
|
./configure --prefix=/usr
|
||||||
|
make -j8
|
||||||
|
|
||||||
|
# install emane binding in pipenv
|
||||||
python3 -m pipenv install $EMANEREPO/src/python
|
python3 -m pipenv install $EMANEREPO/src/python
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -110,26 +120,26 @@ python3 -m pipenv run coretk
|
||||||
|
|
||||||
## Linux Network Namespace Commands
|
## Linux Network Namespace Commands
|
||||||
|
|
||||||
Linux network namespace containers are often managed using the *Linux Container Tools* or *lxc-tools* package.
|
Linux network namespace containers are often managed using the *Linux Container Tools* or *lxc-tools* package.
|
||||||
The lxc-tools website is available here http://lxc.sourceforge.net/ for more information. CORE does not use these
|
The lxc-tools website is available here http://lxc.sourceforge.net/ for more information. CORE does not use these
|
||||||
management utilities, but includes its own set of tools for instantiating and configuring network namespace containers.
|
management utilities, but includes its own set of tools for instantiating and configuring network namespace containers.
|
||||||
This section describes these tools.
|
This section describes these tools.
|
||||||
|
|
||||||
### vnoded
|
### vnoded
|
||||||
|
|
||||||
The *vnoded* daemon is the program used to create a new namespace, and listen on a control channel for commands that
|
The *vnoded* daemon is the program used to create a new namespace, and listen on a control channel for commands that
|
||||||
may instantiate other processes. This daemon runs as PID 1 in the container. It is launched automatically by the CORE
|
may instantiate other processes. This daemon runs as PID 1 in the container. It is launched automatically by the CORE
|
||||||
daemon. The control channel is a UNIX domain socket usually named */tmp/pycore.23098/n3*, for node 3 running on CORE
|
daemon. The control channel is a UNIX domain socket usually named */tmp/pycore.23098/n3*, for node 3 running on CORE
|
||||||
session 23098, for example. Root privileges are required for creating a new namespace.
|
session 23098, for example. Root privileges are required for creating a new namespace.
|
||||||
|
|
||||||
### vcmd
|
### vcmd
|
||||||
|
|
||||||
The *vcmd* program is used to connect to the *vnoded* daemon in a Linux network namespace, for running commands in the
|
The *vcmd* program is used to connect to the *vnoded* daemon in a Linux network namespace, for running commands in the
|
||||||
namespace. The CORE daemon uses the same channel for setting up a node and running processes within it. This program
|
namespace. The CORE daemon uses the same channel for setting up a node and running processes within it. This program
|
||||||
has two required arguments, the control channel name, and the command line to be run within the namespace. This command
|
has two required arguments, the control channel name, and the command line to be run within the namespace. This command
|
||||||
does not need to run with root privileges.
|
does not need to run with root privileges.
|
||||||
|
|
||||||
When you double-click on a node in a running emulation, CORE will open a shell window for that node using a command
|
When you double-click on a node in a running emulation, CORE will open a shell window for that node using a command
|
||||||
such as:
|
such as:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
@ -144,13 +154,13 @@ vcmd -c /tmp/pycore.50160/n1 -- /sbin/ip -4 ro
|
||||||
|
|
||||||
### core-cleanup script
|
### core-cleanup script
|
||||||
|
|
||||||
A script named *core-cleanup* is provided to clean up any running CORE emulations. It will attempt to kill any
|
A script named *core-cleanup* is provided to clean up any running CORE emulations. It will attempt to kill any
|
||||||
remaining vnoded processes, kill any EMANE processes, remove the :file:`/tmp/pycore.*` session directories, and remove
|
remaining vnoded processes, kill any EMANE processes, remove the :file:`/tmp/pycore.*` session directories, and remove
|
||||||
any bridges or *ebtables* rules. With a *-d* option, it will also kill any running CORE daemon.
|
any bridges or *ebtables* rules. With a *-d* option, it will also kill any running CORE daemon.
|
||||||
|
|
||||||
### netns command
|
### netns command
|
||||||
|
|
||||||
The *netns* command is not used by CORE directly. This utility can be used to run a command in a new network namespace
|
The *netns* command is not used by CORE directly. This utility can be used to run a command in a new network namespace
|
||||||
for testing purposes. It does not open a control channel for receiving further commands.
|
for testing purposes. It does not open a control channel for receiving further commands.
|
||||||
|
|
||||||
### Other Useful Commands
|
### Other Useful Commands
|
||||||
|
|
Loading…
Add table
Reference in a new issue