vPF_RING is split in:
    - vPF_RING backend (a patch for QEMU)
    - vNPLUG framework (a patch for QEMU and a kernel module)
    - vPF_RING user-space library

This directory contains the vPF_RING backend and the vNPLUG framework, both distributed in source format. 
The vPF_RING user-space library is distributed as binary library under PF_RING/userland/lib.

As our work is self-funded, we need some income in order to continue with our research.
Thus we decided to ask a little fee for using the vPF_RING library (see http://shop.ntop.org).
For this reason the library requires a per-host (physical machine) unlock code. On the other hand you
are free to test it: with no unlock-code the application can work for a few minutes in
order to allow you to evaluate it.

As usual, we give away free unlock codes to universities and researchers.

-------------

This software is designed and offered as general-purpose software, not for any user's particular purpose.
You accept that no software is error free and you are strongly advised to back-up your files regularly.
By purchasing a Usage License for the software, you receive free support for installing and using the
software, and for fixing of any errors found by you to be part of the purchased software, 
for a period of one year.

Beside the guarantee above, to the maximum extent permitted by applicable law and subject to the guarantee
above, ntop disclaims all warranties, conditions and other terms, either express or implied (whether
by statute, common law, collaterally or otherwise) including but not limited to implied warranties of
satisfactory quality and fitness for particular purpose with respect to the software and the written
materials that accompany the software.

To the maximum extent permitted by applicable law and except as provided in the ntop guarantee,
ntop and its suppliers shall not be liable for any damages whatsoever (including without limitation,
damages for loss of business profits, business interruption, loss of business information or other
pecuniary loss) arising out of the use or inability to use the software, even if ntop has been 
advised of the possibility of such damages. In any case the entire liability of ntop under
any provision of this Agreement shall be limited to the amount actually paid by you for the software.