Napatech: Difference between revisions
(Add troubleshooting for service startup order issue after Git upgrade with init.d scripts (modify /etc/init.d/voipmonitor to add /opt/napatech3/bin/ntstart.sh and sleep 60)) |
(Review: oprava hierarchie nadpisů, konzistentní použití syntaxhighlight místo pre/odsazení, reorganizace sekcí, zkrácení AI Summary) |
||
| Line 1: | Line 1: | ||
= | = Napatech Integration = | ||
This guide covers building VoIPmonitor sniffer with Napatech SmartNIC support, configuration, and troubleshooting. | |||
== First Installation == | |||
== | === Prerequisites === | ||
* Download latest Napatech drivers and untar into <code>/opt/napatech3</code> | |||
* Build the Napatech driver according to vendor documentation | |||
* Install required development libraries | |||
=== Build Steps === | |||
<syntaxhighlight lang="bash"> | |||
# Clone the sniffer source | |||
cd /usr/src | |||
git clone -b develop https://github.com/voipmonitor/sniffer.git | |||
cd sniffer | |||
# Configure with Napatech library paths | |||
./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib | |||
# Install missing dependencies if configure reports errors, then run make | |||
make | |||
</syntaxhighlight> | |||
'''Note:''' The development branch is named <code>develop</code> (NOT "development"). Use <code>git checkout develop</code> to switch to it. | '''Note:''' The development branch is named <code>develop</code> (NOT "development"). Use <code>git checkout develop</code> to switch to it. | ||
If you already have the repository cloned and want to switch to the develop branch: | If you already have the repository cloned and want to switch to the develop branch: | ||
< | <syntaxhighlight lang="bash"> | ||
cd /usr/src/sniffer | cd /usr/src/sniffer | ||
git fetch origin | git fetch origin | ||
git checkout develop | git checkout develop | ||
git pull | git pull | ||
</ | </syntaxhighlight> | ||
=== Verify Build === | |||
Check that voipmonitor is linked against Napatech's libpcap: | |||
<syntaxhighlight lang="bash"> | |||
ldd ./voipmonitor | grep pcap | |||
</syntaxhighlight> | |||
Expected output: | |||
<pre> | |||
libpcap.so.1 => /opt/napatech3/lib/libpcap.so.1 (0x00007fc0b69b0000) | |||
</pre> | |||
=== Install and Run === | |||
= | <syntaxhighlight lang="bash"> | ||
# Replace original binary | |||
cp ./voipmonitor /usr/local/sbin/voipmonitor | |||
# Restart the service | |||
systemctl restart voipmonitor | |||
</syntaxhighlight> | |||
== Upgrade == | |||
=== GUI Upgrade (v24.23+) === | |||
From sensor version 24.23, you can perform upgrades via the GUI using the <code>upgrade_by_git</code> option. The <code>configure_param</code> option ensures the Makefile is created with appropriate includes/libs. | |||
Add these options to <code>/etc/voipmonitor.conf</code>: | |||
<syntaxhighlight lang="ini"> | |||
upgrade_by_git = yes | |||
git_folder = /usr/src/sniffer | |||
configure_param = --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib | |||
</syntaxhighlight> | |||
After restarting the sniffer, click '''UPGRADE''' in the GUI. The sniffer will automatically perform: git pull → configure → make clean → make → stop → make install → start. | |||
=== Manual Upgrade === | |||
<syntaxhighlight lang="bash"> | |||
cd /usr/src/sniffer | |||
git checkout develop | |||
git pull | |||
./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib | |||
make | |||
make install | |||
systemctl restart voipmonitor | |||
</syntaxhighlight> | |||
== Napatech Driver Configuration == | |||
== | === VoIPmonitor Configuration === | ||
In <code>/etc/voipmonitor.conf</code>: | |||
<syntaxhighlight lang="ini"> | |||
interface = napa0 | |||
# IMPORTANT: BPF filter option must be commented out! | |||
#filter = udp or (vlan and udp) | |||
</syntaxhighlight> | |||
= | === ntpcap.ini Configuration === | ||
== | File: <code>/opt/napatech3/config/ntpcap.ini</code> | ||
<syntaxhighlight lang="ini"> | |||
[Common] | |||
Ntpl1 = "Assign[streamid=0;txport=0;txignore=true]=all" | |||
[napa0] | |||
StreamId = 0 | |||
Tx = 0 | |||
</syntaxhighlight> | |||
For older Napatech driver versions: | |||
<syntaxhighlight lang="ini"> | |||
[napa0] | |||
Rx1="Assign[streamid=252;txport=0;txignore=true]=all" | |||
Tx=0 | |||
</syntaxhighlight> | |||
=== ntservice.ini Configuration === | |||
File: <code>/opt/napatech3/config/ntservice.ini</code> | |||
<syntaxhighlight lang="ini"> | |||
[System] | |||
TimestampFormat = NATIVE_UNIX | |||
TimestampMethod = EOF | |||
HostBufferWaitMethod = 0 | |||
SDRAMFillLevelWarning = 0 | |||
[logging] | |||
LogMask = 0x07 | |||
LogToFile = 0 | |||
LogFileName = /tmp/Log3G_%s.log | |||
LogBufferWrap = wrap | |||
[Adapter0] | |||
AdapterType = NT4E | |||
BusId = 00:07:00:00 | |||
PacketDescriptor = NT | |||
HostBuffersRx = [8,16,0] | |||
HostBuffersTx = [8,16,0] | |||
TimeSyncProtocol = NT | |||
TimeSyncConnectorIn = Ext | |||
TimeSyncConnectorOut = None | |||
TimeSyncConnectorRepeat = None | |||
TimeSyncTimeJumpThreshold = 1 | |||
TimeSyncTimeOffset = 0 | |||
MaxFrameSize = 9018 | |||
AltTPID = 0x8100 | |||
Profile = Capture | |||
DiscardSize = 16 | |||
OsTimeSyncFailover = DISABLE | |||
</syntaxhighlight> | |||
=== Time Source Configuration === | |||
By default, Napatech uses GMT timestamps. To use system time instead: | |||
'''For newer Napatech drivers:''' | |||
<syntaxhighlight lang="ini"> | |||
TimesynConnectorExt1 = None | |||
TimeSyncReferencePriority = OSTime | |||
</syntaxhighlight> | |||
'''Alternative for older drivers:''' | |||
<syntaxhighlight lang="ini"> | |||
# For GMT (external PPS): | |||
TimeSyncConnectorExt1 = PpsIn | |||
# For system-dependent time: | |||
TimeSyncConnectorExt1 = NttsIn | |||
</syntaxhighlight> | |||
'''Tip:''' If spool directories are created with incorrect dates (e.g., <code>1970-01-01</code>), see [[#Troubleshooting: Spool Directories with Date 1970-01-01|troubleshooting section below]]. | |||
== Systemd Service Configuration == | |||
You need to ensure Napatech drivers (ntservice) start before VoIPmonitor. See [[Systemd_for_voipmonitor_service_management#Dependency_Customization|systemd service file configuration]] for adding: | |||
= | <syntaxhighlight lang="ini"> | ||
= | After=ntservice.service | ||
Requires=ntservice.service | |||
</syntaxhighlight> | |||
== | == Traffic Filtering on Napatech Card == | ||
To filter traffic directly on the Napatech card, create an NTPL filter file. | |||
Example: <code>/opt/napatech3/myfilter.ntpl</code> | |||
<syntaxhighlight lang="bash"> | |||
# Start NTPL | |||
# Delete all existing filter | |||
delete = all | |||
# Setup UDP macros | |||
DefineMacro("mUdpSrcPort", "Data[DynOffset=DynOffUDPFrame;Offset=0;DataType=ByteStr2]") | |||
DefineMacro("mUdpDestPort", "Data[DynOffset=DynOffUDPFrame;Offset=2;DataType=ByteStr2]") | |||
# Setup filters | |||
# SIP filter (ports 5060, 5061) | |||
Assign[StreamId = 0] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) | |||
# RTP filter (ports 10000-61743 in HEX) | |||
Assign[StreamId = 0] = (mUdpSrcPort == (0x2710..0xF12F)) | |||
Assign[StreamId = 1] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) | |||
Assign[StreamId = 1] = (mUdpSrcPort == (0x2710..0xF12F)) | |||
Assign[StreamId = 2] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) | |||
Assign[StreamId = 2] = (mUdpSrcPort == (0x2710..0xF12F)) | |||
Assign[StreamId = 3] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) | |||
Assign[StreamId = 3] = (mUdpSrcPort == (0x2710..0xF12F)) | |||
# End NTPL | |||
# Enable Deduplication | |||
DeduplicationConfig[drop=duplicate] = GroupID == 0 | |||
Define ckRecipe = CorrelationKey(Begin=StartOfFrame[0], End=EndOfFrame[0], DeduplicationGroupID=0) | |||
Assign[StreamID=0,1,2,3; CorrelationKey=ckRecipe] = Port == 0,1,2,3 | |||
</syntaxhighlight> | |||
Apply the filter: | |||
<syntaxhighlight lang="bash"> | |||
/opt/napatech3/bin/ntstart.sh -n myfilter.ntpl | |||
</syntaxhighlight> | |||
== Troubleshooting == | |||
=== Spool Directories with Date 1970-01-01 === | |||
If spool directories are created with incorrect timestamps (e.g., <code>1970-01-01</code>), the Napatech card is providing Unix Epoch time instead of actual system time. | |||
If spool directories are created with incorrect timestamps (e.g., <code>1970-01-01</code> | |||
'''Solution:''' | |||
1. Edit <code>/opt/napatech3/config/ntservice.ini</code> | |||
Edit | |||
2. For newer drivers, add: | |||
For newer | <syntaxhighlight lang="ini"> | ||
< | |||
timeSource = OS | timeSource = OS | ||
</ | </syntaxhighlight> | ||
For older | For older drivers, in the <code>[Adapter0]</code> section: | ||
< | <syntaxhighlight lang="ini"> | ||
OsTimeSyncFailover = ENABLE | OsTimeSyncFailover = ENABLE | ||
</ | </syntaxhighlight> | ||
3. Restart services: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
systemctl stop ntservice | systemctl stop ntservice | ||
systemctl start ntservice | systemctl start ntservice | ||
systemctl restart voipmonitor | systemctl restart voipmonitor | ||
</syntaxhighlight> | </syntaxhighlight> | ||
4. Verify fix: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
ls -ltd /var/spool/voipmonitor/* | ls -ltd /var/spool/voipmonitor/* | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Napatech Interfaces in DOWN State === | ||
If | |||
If <code>tcpdump</code> or <code>tshark</code> show no packets on Napatech interfaces: | |||
1. Check interface status: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
ip link show napa0 | ip link show napa0 | ||
ip link show | grep napa | ip link show | grep napa | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2. Verify drivers are loaded: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
lsmod | grep ntpcap | lsmod | grep ntpcap | ||
systemctl status ntservice | systemctl status ntservice | ||
</syntaxhighlight> | </syntaxhighlight> | ||
3. Verify voipmonitor uses Napatech libpcap: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
ldd /usr/local/sbin/voipmonitor | grep pcap | ldd /usr/local/sbin/voipmonitor | grep pcap | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Expected output should show <code>/opt/napatech3/lib/libpcap.so.1</code>, NOT system libpcap. | |||
4. If using system libpcap, rebuild voipmonitor: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd /usr/src/sniffer | cd /usr/src/sniffer | ||
| Line 269: | Line 283: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Drivers Not Capturing Traffic === | |||
== | |||
'''Symptoms:''' | |||
* | * GUI shows no calls | ||
* <code>tshark -i napa0</code> shows no packets | * <code>tshark -i napa0</code> shows no packets | ||
* | * Interfaces are UP but not receiving data | ||
'''Solution:''' Restart Napatech drivers: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
systemctl stop voipmonitor | systemctl stop voipmonitor | ||
cd /opt/napatech3/bin/ | cd /opt/napatech3/bin/ | ||
./ntstop | ./ntstop | ||
./ntstart | ./ntstart | ||
systemctl start voipmonitor | systemctl start voipmonitor | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Verify traffic capture: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
tshark -i napa0 -Y "sip || rtp" -n -c 10 | tshark -i napa0 -Y "sip || rtp" -n -c 10 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
If | If issues persist, check logs: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
journalctl -u ntservice -n 50 | journalctl -u ntservice -n 50 | ||
tail -f /tmp/Log3G_*.log | tail -f /tmp/Log3G_*.log | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Compilation Errors with DPDK Headers === | ||
< | If compilation fails with errors like <code>RTE_ETH_MQ_TX_NONE was not declared</code>, system DPDK libraries are conflicting with Napatech SDK. | ||
Disable DPDK support in | '''Solution:''' Disable DPDK support in <code>config.h</code>: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# | # Run configure first | ||
./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib | ./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib | ||
# | # Edit config.h - change: | ||
#define HAVE_LIBDPDK 1 | |||
# To: | |||
#define HAVE_LIBDPDK 0 | |||
# To: | |||
# | # Then compile | ||
make | make | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Service Startup Order (init.d) === | |||
If VoIPmonitor fails with <code>libpcap error no such device exists</code> after upgrade, Napatech drivers may not be initialized when VoIPmonitor starts. | |||
'''For init.d systems:''' Edit <code>/etc/init.d/voipmonitor</code> and add before voipmonitor binary execution: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
/opt/napatech3/bin/ntstart.sh | /opt/napatech3/bin/ntstart.sh | ||
sleep 60 | sleep 60 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''For systemd systems:''' Add to the service unit file: | |||
<syntaxhighlight lang="ini"> | |||
After=ntservice.service | |||
Requires=ntservice.service | |||
<syntaxhighlight lang=" | |||
service | |||
</syntaxhighlight> | </syntaxhighlight> | ||
See [[Systemd_for_voipmonitor_service_management#Dependency_Customization|systemd documentation]] for details. | |||
== AI Summary for RAG == | |||
< | '''Summary:''' Guide for building VoIPmonitor sniffer with Napatech SmartNIC support. Build process: clone source with <code>git clone -b develop</code>, configure with <code>--with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib</code>, and make. For GUI upgrades (v24.23+), set <code>upgrade_by_git=yes</code> and <code>configure_param</code> in voipmonitor.conf. Configuration requires: interface=napa0 in voipmonitor.conf (BPF filter must be disabled), ntpcap.ini for stream assignment, ntservice.ini for adapter settings. Time source configuration: set <code>timeSource=OS</code> for system time. Troubleshooting covers: 1970-01-01 spool directories (time source misconfiguration), interfaces in DOWN state (requires Napatech libpcap), drivers not capturing (restart with ntstop/ntstart), DPDK compilation errors (set HAVE_LIBDPDK=0 in config.h), service startup order (add ntservice dependency). | ||
</ | |||
'''Keywords:''' Napatech, SmartNIC, compilation, configure, upgrade_by_git, configure_param, ntpcap.ini, ntservice.ini, timeSource, 1970-01-01, NTPL filter, libpcap, ntstop, ntstart, HAVE_LIBDPDK, systemd, init.d | |||
'''Key Questions:''' | '''Key Questions:''' | ||
* How do I compile VoIPmonitor with Napatech support? | * How do I compile VoIPmonitor with Napatech support? | ||
* What configure options are needed for Napatech? | * What configure options are needed for Napatech? | ||
* | * How do I upgrade VoIPmonitor with Napatech via GUI? | ||
* Why | * Why are spool directories created with date 1970-01-01? | ||
* How do I | * How do I fix Napatech interfaces in DOWN state? | ||
* VoIPmonitor not capturing calls with Napatech, how | * VoIPmonitor not capturing calls with Napatech, how to fix? | ||
* | * How do I restart Napatech drivers? | ||
* How | * How to fix RTE_ETH_MQ_TX_NONE compilation error? | ||
* How to configure Napatech driver dependency in systemd? | * How to configure Napatech driver dependency in systemd? | ||
* What does libpcap error no such device exists mean | * What does libpcap error no such device exists mean? | ||
Revision as of 11:25, 6 January 2026
Napatech Integration
This guide covers building VoIPmonitor sniffer with Napatech SmartNIC support, configuration, and troubleshooting.
First Installation
Prerequisites
- Download latest Napatech drivers and untar into
/opt/napatech3 - Build the Napatech driver according to vendor documentation
- Install required development libraries
Build Steps
# Clone the sniffer source
cd /usr/src
git clone -b develop https://github.com/voipmonitor/sniffer.git
cd sniffer
# Configure with Napatech library paths
./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib
# Install missing dependencies if configure reports errors, then run make
make
Note: The development branch is named develop (NOT "development"). Use git checkout develop to switch to it.
If you already have the repository cloned and want to switch to the develop branch:
cd /usr/src/sniffer
git fetch origin
git checkout develop
git pull
Verify Build
Check that voipmonitor is linked against Napatech's libpcap:
ldd ./voipmonitor | grep pcap
Expected output:
libpcap.so.1 => /opt/napatech3/lib/libpcap.so.1 (0x00007fc0b69b0000)
Install and Run
# Replace original binary
cp ./voipmonitor /usr/local/sbin/voipmonitor
# Restart the service
systemctl restart voipmonitor
Upgrade
GUI Upgrade (v24.23+)
From sensor version 24.23, you can perform upgrades via the GUI using the upgrade_by_git option. The configure_param option ensures the Makefile is created with appropriate includes/libs.
Add these options to /etc/voipmonitor.conf:
upgrade_by_git = yes
git_folder = /usr/src/sniffer
configure_param = --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib
After restarting the sniffer, click UPGRADE in the GUI. The sniffer will automatically perform: git pull → configure → make clean → make → stop → make install → start.
Manual Upgrade
cd /usr/src/sniffer
git checkout develop
git pull
./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib
make
make install
systemctl restart voipmonitor
Napatech Driver Configuration
VoIPmonitor Configuration
In /etc/voipmonitor.conf:
interface = napa0
# IMPORTANT: BPF filter option must be commented out!
#filter = udp or (vlan and udp)
ntpcap.ini Configuration
File: /opt/napatech3/config/ntpcap.ini
[Common]
Ntpl1 = "Assign[streamid=0;txport=0;txignore=true]=all"
[napa0]
StreamId = 0
Tx = 0
For older Napatech driver versions:
[napa0]
Rx1="Assign[streamid=252;txport=0;txignore=true]=all"
Tx=0
ntservice.ini Configuration
File: /opt/napatech3/config/ntservice.ini
[System]
TimestampFormat = NATIVE_UNIX
TimestampMethod = EOF
HostBufferWaitMethod = 0
SDRAMFillLevelWarning = 0
[logging]
LogMask = 0x07
LogToFile = 0
LogFileName = /tmp/Log3G_%s.log
LogBufferWrap = wrap
[Adapter0]
AdapterType = NT4E
BusId = 00:07:00:00
PacketDescriptor = NT
HostBuffersRx = [8,16,0]
HostBuffersTx = [8,16,0]
TimeSyncProtocol = NT
TimeSyncConnectorIn = Ext
TimeSyncConnectorOut = None
TimeSyncConnectorRepeat = None
TimeSyncTimeJumpThreshold = 1
TimeSyncTimeOffset = 0
MaxFrameSize = 9018
AltTPID = 0x8100
Profile = Capture
DiscardSize = 16
OsTimeSyncFailover = DISABLE
Time Source Configuration
By default, Napatech uses GMT timestamps. To use system time instead:
For newer Napatech drivers:
TimesynConnectorExt1 = None
TimeSyncReferencePriority = OSTime
Alternative for older drivers:
# For GMT (external PPS):
TimeSyncConnectorExt1 = PpsIn
# For system-dependent time:
TimeSyncConnectorExt1 = NttsIn
Tip: If spool directories are created with incorrect dates (e.g., 1970-01-01), see troubleshooting section below.
Systemd Service Configuration
You need to ensure Napatech drivers (ntservice) start before VoIPmonitor. See systemd service file configuration for adding:
After=ntservice.service
Requires=ntservice.service
Traffic Filtering on Napatech Card
To filter traffic directly on the Napatech card, create an NTPL filter file.
Example: /opt/napatech3/myfilter.ntpl
# Start NTPL
# Delete all existing filter
delete = all
# Setup UDP macros
DefineMacro("mUdpSrcPort", "Data[DynOffset=DynOffUDPFrame;Offset=0;DataType=ByteStr2]")
DefineMacro("mUdpDestPort", "Data[DynOffset=DynOffUDPFrame;Offset=2;DataType=ByteStr2]")
# Setup filters
# SIP filter (ports 5060, 5061)
Assign[StreamId = 0] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061)
# RTP filter (ports 10000-61743 in HEX)
Assign[StreamId = 0] = (mUdpSrcPort == (0x2710..0xF12F))
Assign[StreamId = 1] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061)
Assign[StreamId = 1] = (mUdpSrcPort == (0x2710..0xF12F))
Assign[StreamId = 2] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061)
Assign[StreamId = 2] = (mUdpSrcPort == (0x2710..0xF12F))
Assign[StreamId = 3] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061)
Assign[StreamId = 3] = (mUdpSrcPort == (0x2710..0xF12F))
# End NTPL
# Enable Deduplication
DeduplicationConfig[drop=duplicate] = GroupID == 0
Define ckRecipe = CorrelationKey(Begin=StartOfFrame[0], End=EndOfFrame[0], DeduplicationGroupID=0)
Assign[StreamID=0,1,2,3; CorrelationKey=ckRecipe] = Port == 0,1,2,3
Apply the filter:
/opt/napatech3/bin/ntstart.sh -n myfilter.ntpl
Troubleshooting
Spool Directories with Date 1970-01-01
If spool directories are created with incorrect timestamps (e.g., 1970-01-01), the Napatech card is providing Unix Epoch time instead of actual system time.
Solution:
1. Edit /opt/napatech3/config/ntservice.ini
2. For newer drivers, add:
timeSource = OS
For older drivers, in the [Adapter0] section:
OsTimeSyncFailover = ENABLE
3. Restart services:
systemctl stop ntservice
systemctl start ntservice
systemctl restart voipmonitor
4. Verify fix:
ls -ltd /var/spool/voipmonitor/*
Napatech Interfaces in DOWN State
If tcpdump or tshark show no packets on Napatech interfaces:
1. Check interface status:
ip link show napa0
ip link show | grep napa
2. Verify drivers are loaded:
lsmod | grep ntpcap
systemctl status ntservice
3. Verify voipmonitor uses Napatech libpcap:
ldd /usr/local/sbin/voipmonitor | grep pcap
Expected output should show /opt/napatech3/lib/libpcap.so.1, NOT system libpcap.
4. If using system libpcap, rebuild voipmonitor:
cd /usr/src/sniffer
git pull
./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib
make
make install
systemctl restart voipmonitor
Drivers Not Capturing Traffic
Symptoms:
- GUI shows no calls
tshark -i napa0shows no packets- Interfaces are UP but not receiving data
Solution: Restart Napatech drivers:
systemctl stop voipmonitor
cd /opt/napatech3/bin/
./ntstop
./ntstart
systemctl start voipmonitor
Verify traffic capture:
tshark -i napa0 -Y "sip || rtp" -n -c 10
If issues persist, check logs:
journalctl -u ntservice -n 50
tail -f /tmp/Log3G_*.log
Compilation Errors with DPDK Headers
If compilation fails with errors like RTE_ETH_MQ_TX_NONE was not declared, system DPDK libraries are conflicting with Napatech SDK.
Solution: Disable DPDK support in config.h:
# Run configure first
./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib
# Edit config.h - change:
#define HAVE_LIBDPDK 1
# To:
#define HAVE_LIBDPDK 0
# Then compile
make
Service Startup Order (init.d)
If VoIPmonitor fails with libpcap error no such device exists after upgrade, Napatech drivers may not be initialized when VoIPmonitor starts.
For init.d systems: Edit /etc/init.d/voipmonitor and add before voipmonitor binary execution:
/opt/napatech3/bin/ntstart.sh
sleep 60
For systemd systems: Add to the service unit file:
After=ntservice.service
Requires=ntservice.service
See systemd documentation for details.
AI Summary for RAG
Summary: Guide for building VoIPmonitor sniffer with Napatech SmartNIC support. Build process: clone source with git clone -b develop, configure with --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib, and make. For GUI upgrades (v24.23+), set upgrade_by_git=yes and configure_param in voipmonitor.conf. Configuration requires: interface=napa0 in voipmonitor.conf (BPF filter must be disabled), ntpcap.ini for stream assignment, ntservice.ini for adapter settings. Time source configuration: set timeSource=OS for system time. Troubleshooting covers: 1970-01-01 spool directories (time source misconfiguration), interfaces in DOWN state (requires Napatech libpcap), drivers not capturing (restart with ntstop/ntstart), DPDK compilation errors (set HAVE_LIBDPDK=0 in config.h), service startup order (add ntservice dependency).
Keywords: Napatech, SmartNIC, compilation, configure, upgrade_by_git, configure_param, ntpcap.ini, ntservice.ini, timeSource, 1970-01-01, NTPL filter, libpcap, ntstop, ntstart, HAVE_LIBDPDK, systemd, init.d
Key Questions:
- How do I compile VoIPmonitor with Napatech support?
- What configure options are needed for Napatech?
- How do I upgrade VoIPmonitor with Napatech via GUI?
- Why are spool directories created with date 1970-01-01?
- How do I fix Napatech interfaces in DOWN state?
- VoIPmonitor not capturing calls with Napatech, how to fix?
- How do I restart Napatech drivers?
- How to fix RTE_ETH_MQ_TX_NONE compilation error?
- How to configure Napatech driver dependency in systemd?
- What does libpcap error no such device exists mean?