You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rtpengine/el/README.el.md

122 lines
4.3 KiB

rtpengine for Enterprise Linux
==================================
Installing from RPMs
--------------------
There are three RPMs:
- *ngcp-rtpengine*: the userspace daemon
- *ngcp-rtpengine-kernel*: the iptables plugin
- *ngcp-rtpengine-dkms*: the kernel module source
All of the RPMs have correctly set dependencies and if you just want the
userspace daemon you can install it with yum (assuming you have access to a
CentOS repository).
The *ngcp-rtpengine-kernel* package is dependent on the
*ngcp-rtpengine*, and *ngcp-rtpengine-dkms* packages. The
*ngcp-rtpengine-dkms* package has a dependency (DKMS) that cannot be met
by the CentOS base repository. If you want to use in-kernel forwarding you
need to add the [*EPEL*](http://fedoraproject.org/wiki/EPEL) repository and
install the *dkms* package before attempting to install
*ngcp-rtpengine-dkms* or *ngcp-rtpengine-kernel*.
Note: installing *ngcp-rtpengine-dkms* builds a kernel module which requires
the sources for the running kernel. The *kernel-devel* and *kernel-headers*
packages are meta-packages that install the headers and source for the latest
kernel version. This will be what what you want unless you are running a custom
or older kernel. *ngcp-rtpengine-dkms* does not have *kernel-devel* and
*kernel-headers* as dependencies as this could cause problems if you are using
a custom or older kernel, so you need to install these manually.
RPM Compliation
---------------
To build the RPMs you need all of the packages listed in the Manual Compilation
section (except for *kernel-devel* and *kernel-headers*) plus:
- *redhat-rpm-config*
- *rpm-build*
To build the RPMs:
- Checkout (clone) the Git repository
- Create the `~/rpmbuild/SOURCES` directory
- Create a tar archive. For example, from within the cloned directory you can
use
`git archive --output ~/rpmbuild/SOURCES/ngcp-rtpengine-<version number>.tar.gz --prefix=ngcp-rtpengine-<version number>/ master`
where `<version number>` is the version number of the master branch
- Build the RPMs. For example,
`rpmbuild -ta ~/rpmbuild/SOURCES/ngcp-rtpengine-<version number>.tar.gz`
Once the build has completed the binary RPMs will be in `~/rpmbuild/RPMS`.
Manual Compilation
------------------
There are three parts to rtpengine, each of which can be found in the
respective subdirectories.
* `daemon`
The userspace daemon and workhorse, minimum requirement for anything
to work. Running `RTPENGINE_VERSION="\"<version number>\"" make` will
compile the binary, which will be called `rtpengine`. The
following software packages are required to compile the daemon:
- *gcc*
- *make*
- *pkgconfig*
- *glib2-devel*
- *hiredis-devel*
- *libcurl-devel*
- *openssl-devel*
- *pcre-devel*
- *xmlrpc-c-devel*
- *zlib-devel*
* `iptables-extension`
Required for in-kernel packet forwarding. Running
`RTPENGINE_VERSION="\"<version number>\"" make` will compile the plugin
for `iptables` and `ip6tables`. The file will be called
`libxt_RTPENGINE.so` and should be copied into the directory
`/lib/xtables/` in 32-bit environments and `/lib64/xtables/` in 64-bit
environments. The following software packages are required to compile
the plugin:
- *gcc*
- *make*
- *iptables-devel*
* `kernel-module`
Required for in-kernel packet forwarding. Compilation of the kernel
module requires the kernel development packages for the kernel version
you are using (see output of `uname -r`) to be installed. Running
`RTPENGINE_VERSION="\"<version number>\"" make` will compile the kernel
module.
Successful compilation of the module will produce the file
`xt_RTPENGINE.ko`. The module can be inserted into the running kernel
manually through `insmod xt_RTPENGINE.ko` (which will result in an
error if depending modules aren't loaded, for example the `x_tables`
module), but it's recommended to copy the module into
`/lib/modules/<version number>/updates/`, followed by running
`depmod -a`. After this, the module can be loaded by issuing
`modprobe xt_RTPENGINE`.
The following software packages are required to compile the plugin:
- *gcc*
- *make*
- *kernel-devel*
- *kernel-headers*
Note: the *kernel-devel* and *kernel-headers* packages are meta-packages
that install the headers and source for the latest kernel version. This
will be what you want unless you are running a custom or older kernel.