Age | Commit message (Collapse) | Author |
|
Building container image takes a long time for retrieving several
packages and compile them. This update is to divide each Dockerfile
into installing with apt install and building DPDK and its apps.
In the second step, it uses the image created in the first step.
Files named as `Dockerfile.*.base` are for installing packages, and no
need to run them basically because this built image is uploaded to
docker hub. You just run Dockerfiles which do not have `base` in the
name. You only need to run `Dockerfile.*.base` if you make some changes
in the file, or in offline.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to add option `--wait-pri` for `bin/start.sh`.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
For SPP CLI, waiting spp_primary launched is useful, but no need if it
is already launched. This update is to change the feature as optional.
SPP CLI waits primary if `--wait-pri` is given.
$ python3 src/spp.py --wait-pri
In terms of implementation, behaviour of waiting primary is moved from
__init__() to _wait_pri_launched().
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This is a tiny update for displaying a time cost for launching
spp_primary.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to add checking if spp_primary is ready for use. Interval
time and timeout for checking are defined in Shell class as following.
WAIT_PRI_INTERVAL = 0.5 # sec
WAIT_PRI_TIMEOUT = 20 # sec
This update is also including refactor for each of `print` method to use
`format` method.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This patch is to update SPP to v18.08.4.
* Fix bug for deleting vhost PMD in spp_nfv.
* Add REST APIs for adding and deleting ports from primary process.
* Add `bin/startup.sh` to start spp-ctl, CLI and spp_primary for quick
start. Options for processes are defined in `bin/config.sh`.
* Update managing devices given with `--vdev` because mechanism of
sharing vdevs between primary and secondary is changed in DPDK.
* Fix assigning wrong master lcore in which it is always assigned 0
if it is given other than 0.
* Fix wrong finalization if rte_eal_init() is failed.
* Change SPP_RET_OK and SPP_RET_NG to SPPWK_RET_OK and SPPWK_RET_NG
because it is only used in secondary worker processes.
* Disable to launch secondary processes with the same IDs wrongly.
* Rename directory `controller` to `cli`, and label name in git log,
because it should be distinguished from spp-ctl.
* For testing behaviours of spp_primary, enable to add arbitrary vdevs
and add `--dry-run` option.
$ bin/start.sh --dry-run
* Fix compile error of spp_pcap in SPP container.
* Refactor spp_vf, spp_mirror and spp_pcap to reduce duplicated
definitions and files.
* Add config option for SPP CLI to specify any of config file.
$ python3 src/spp.py --config /path/to/your/config.yml
* Add validation for config command to check given value.
* Update `topo` command.
- Add supported types of secondary processes other than spp_nfv.
- Add supported port types for spp_pcap.
- remove `topo_resize` because it is changed to be set from `config`
command.
- Revise placeholder for styles.
- Several bug fixes.
* Add blacklist and whitelist options for SPP container.
* Add app containers for `l3fwd-acl` and `suricata`[1]. For suricata,
it is also added a build script for.
- [1] https://github.com/vipinpv85/DPDK_SURICATA-4_1_1
* Add recipes for testing usecases described in docs.
* Revise ringlatencystats, but still remained some problems for
compiling in some environments. It is a TODO should be fixed in
a future.
* Fix many TODOs.
* And many misc updates for improving usability and maintainability.
* Update documentation for above changes.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to revise how to install Python packages with
`requirements.txt` to be more clear meaning.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
There are still ambiguous descriptions in setup guide, such as "Ubuntu
or CentOS?", "1GB or 2MB hugepages?" or so. This update is to revise the
descriptions.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to rename spp_format_port_stirng() which is for getting
port type as resource UID to sppwk_port_uid().
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Add `-j` option to each of make commands to compile programs in
parallel.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Fix old `build/build.py` to the latest `build/main.py`.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to rename spp_check_used_port() to
sppwk_check_used_port() for conventions.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
spp_check_core_update() is used for inspecting lcore information of
given ID is updated or not. If it is not updated, it returns SPP_RET_NG.
However, it is not appropriate NG for the case just made no changed.
This update is to change to return 0 if info is not changed, or 1. Name
of function is also changed to sppwk_is_lcore_updated() to be more
specific for the usage.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to rename spp_get_component_type() to
sppwk_get_comp_type() for conventions.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
spp_get_component_core() is used for getting information of given lcore
ID, but not used from anywhere.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Spp_vf and spp_mirror has a feature for measuring latency of ring PMD.
This optional feature is intended to be used by developers and is not
activate by default. It is activated by editing Makefile in src/vf and
src/mirror.
Although this feature is not interested by most of users and does not
prevent users from using SPP, it should be fixed. This update is to add
TODO comments for notifying users to not use this feature until the bug
is fixed.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
As previous patch for spp_vf, this update is to rename it to
iterate_lcore_info() and add comments as refactoring.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
As previous patch for spp_vf, this update is to rename it to
iterate_lcore_info() and add comments as refactoring.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Util function spp_iterate_core_info() is for gettng each of lcore info
for composing response of status command. This update is to rename it
to iterate_lcore_info() and add comments as refactoring.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Rename following functions for conventions.
* spp_ringlatencystats_add_time_stamp() to sppwk_add_ring_latency_time()
* spp_ringlatencystats_get_count() to
sppwk_get_ring_latency_stats_count()
* spp_ringlatencystats_get_stats() to sppwk_get_ring_latency_stats()
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to revise name of func spp_ringlatencystats_init() to
sppwk_ring_latency_stats(), and also spp_ringlatencystats_uninit()
to sppwk_clean_ring_latency_stats() to be more specific.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Struct `spp_ringlatencystats_ring_latency_stats` is for containing stats
as a histgram like data. It is only used in `latency_stats.c` and its
header locally, so no need to such a long name. This update is to rename
it to `ring_latency_stats_t`.
This update also includes revising name of vars and comments.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Name of spp_ringlatencystats_calculate_latency() is too long and
redundant. sppwk_calc_ring_latency() is enough for the usage.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Filename of `ringlatencystats.c` and its header is not understandable
because it is too long and has no separators. `latency_stats` is enough
for the usage and no need to add `ring` explicitly.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
As spp_mirror, spp_vf supports unit test but nouse anymore.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Spp_mirror supports unit test which was used before released, but nouse
anymore. This update is to remove the feature.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This patch is to provide recipe scripts for usecase of spp_vf
"Classify ICMP Packets".
Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@po.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
Acked-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This patch is to provide recipe scripts for usecase of Multiple Nodes
in docs.
Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@po.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
Acked-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This patch is to provide recipe scripts for spp_pcap usecase
"Duplicate Packets".
Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@po.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
Acked-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This patch is to add recipe scripts for usecases of spp_pcap in docs.
Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@po.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
Acked-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
To enable user to run usecases, update recipe scripts of spp_nfv for
the latest docs. Some of usecases are consists of several scripts under
sub-directories so that user can run step by step.
- Single spp_nfv
- Dual spp_nfv
- Dual spp_nfv with Ring PMD
- Single spp_nfv with PCAP PMD
Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@po.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
Acked-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to add build and howto use section for suricata in SPP
container.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
As spp_vm was deprecated from SPP secondary, this update is to remove
spp_vm launcher script.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is add launcher script for suricata. Here is an example of
usage. Suricata is expected from command line, so this launcher is jsut
to start bash and you need to suricata itself from bash. You notice that
you need to upload your suricata config before run launcher.
$ docker cp your.cnf CONTAINER_ID:/path/to/conf/your.conf
$ ./suricata.py -d 1,2 -fg -ci sppc/suricata-ubuntu2:latest
# suricata --dpdk=/path/to/config
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Sometimes, building suricata on Ubuntu 18.04 is failed even if using
tar.gz file, and it is more stable to build as 16.04 even though steps
for building is increased.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Script for building an image of suricata-4.1.4 on Ubuntu 18.04 was
released as previous patch. This update is to add support for Ubuntu
16.04.
Building suricata-4.1.4 on Ubuntu 16.04 image has some problems and you
cannot complete to compile suricata while docker building. So, you need
to compile suricata by yourself after launched a container of the build
image which is named as `sppc/suricata-ubuntu:16.04` by default.
$ ./main.py -t suricata --dpdk-branch v18.11 --dist-ver 16.04
$ docker images
...
sppc/suricata-ubuntu 16.04 ...
$ docker run -it sppc/suricata-ubuntu:16.04 /bin/bash
# ./install_suricata.sh
...
After compilation is successfully done, logout and create a new docker
image on which suricata is already built with `docker commit` command
and image's container ID.
In this example, new image is named as `sppc/suricata-ubuntu2:16.04`.
# exit
$ docker ps -a
CONTAINER_ID sppc/suricata-ubuntu:16.04 "/bin/bash" 3 minutes ...
$ docker commit CONTAINER_ID sppc/suricata-ubuntu2:16.04
Finally, you can run suricata with the new image.
$ docker run -it sppc/suricata-ubuntu:16.04 /bin/bash
# suricata --build-info
These steps are described in documents in the next patches.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
String `port_set` is used for containing a set of src and dst ports for
returned message. It is formatted as 39 chars as following, although its
buffer size is 32.
"{\"src\":\"%s:%d\",\"dst\":\"%s:%d\"}" // 39 chars
This update is to fix the bug by increasing buffer size to 128 which is
enough for the usage.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Suricata is a sophisticated IDS/IPS application supprting DPDK
optionally[1]. This patch is to add suricata support to SPP container
build script.
[1] https://suricata-ids.org/
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
As `SPP_CTRL_IP` is renamed in app container scripts, this update is to
rename it in documentation.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
The name of `SPP_CTRL_IP` of spp-ctl is ambiguous and it is better to
renmae `SPP_CTL_IP`.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
As topo_resize command is removed from SPP CLI, remove it from
documentation.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
Spp_pcap only supports two port types, phy and ring, currently. However,
There is no explanation for the supported types. This update is to add
descriptions for.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to fix a bug for which --single-file-segments option is
always activated even if it is not given.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to add descriptions for l3fwd-acl app container.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to add l3fwd-acl app container [1].
[1]https://doc.dpdk.org/guides/sample_app_ug/l3_forward_access_ctrl.html
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to add examples of `blacklist` and `whitelist` to
examples of SPP container tools.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to add an EAL option `--single-file-segments` for app
containers.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to add description of usage of blacklist option. It
describes how to inspect PCI addresses and how to specify them while
launching app container.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
This update is to add examples of `blacklist` and `whitelist` to
examples of SPP container tools.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|
|
EAL option `blacklist` is to exclude PCI devices from under management
of DPDK, and `whitelist` is to include devices in opposition. This
update is to add thesee options to app launcher because app container
tries to have PCI devices, such as `phy:0` or so, which are already
owned by SPP without `blacklist` or `whitelist`.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
|