# Kismet memory and optional features configuration
#
# This configuration file is part of the Kismet configuration.  It is loaded
# by the kismet.conf main configuration file.
#
# For more information about the configuration options, see the comments in this
# file and the documentation at:
# https://www.kismetwireless.net/docs/readme/config_files/
#
# You can edit the values in these files, but to make it much easier to update Kismet
# in the future, you should put your changes in the kismet_site.conf override file.
# You can learn more about the override config at:
# https://www.kismetwireless.net/docs/readme/config_files/#configuration-override-files---kismet_siteconf

# Kismet can be tuned to run on systems with less ram by disabling some 
# built in functionality and reducing the amount of information tracked
# in each device.


# These generic options affect all of Kismet; additional memory saving 
# and performance options can be found in:
#   kismet_80211.conf


# Adding devices to the device list can be time consuming; by 
# preconfiguring the device list to hold a larger number of devices
# Kismet performance can be sped up; this uses slightly more memory.
tracker_device_presize=1000

# For long-running instances of Kismet in a WIDS style usage, it may be 
# useful to limit the amount of memory kismet will consume, with the
# following tuning values:
 
# Time, in seconds, for devices to be tracked when idle.  By default, devices
# are kept forever, however in RAM constrained environments it may be preferable
# to stop tracking older devices.
# Devices which are removed will be detected as new devices without historical
# data if they are detected a second time.
# Example timeout of 2 hours (60*60*2)
#
# tracker_device_timeout=7200

# Maximum number of packets a device can have and be considered eligible for
# removal; if a device has been idle for the tracker_device_timeout value, and
# contains FEWER than the tracker_device_packets number of packets, it will be
# removed.
# This can be used to tune the removal process to select devices which are most
# likely artifacts of driver errors or otherwise spoofed packets.
#
# tracker_device_packets=20

# Maximum number of devices allowed in the tracker.  If this is reached, older
# devices will be purged, and if they are detected again, will show up as new 
# devices without historical data.
#
# tracker_max_devices=10000

# Kismet tracks packet rate history in a RRD (round-robin-database) style 
# structure; this allows the UI to show behavior over time, but uses more
# RAM.
track_device_rrds=true

# Kismet normally tracks devices per datasource; you can turn this off
# to save memory, but this may break some tools and some aspects of the
# web UI
track_device_seenby_views=true

# Kismet normally tracks devices per phy; you can turn this off to save 
# memory, but this may break some tools and some aspects of the web UI
track_device_phy_views=true


# Performing manufacturer lookups can be useful, but can also be performed later
# in post-processing.  For memory constrained systems, or systems with a very large
# number of devices, turning off manufacturer lookup will reduce RAM.
manuf_lookup=true


# Kismet can keep a cascading average of location, where the past 100 locations
# are kept, along with the past 10,000 locations as an average of each 100, and
# the past 1,000,000 locations as an average of each 10,000.  This takes additional
# RAM, so it is disabled by default.
keep_location_cloud_history=false


# Kismet can keep a per-datasource signal and location history, which can be useful
# when using multiple remote capture sources distributed over a physical area, but
# otherwise isn't used.  This adds a fair amount of RAM per device, per datasource.
keep_per_datasource_stats=false

# How many alerts are kept in the alert history
alertbacklog=50

# How many packet checksums are kept for de-duplication efforts
packet_dedup_size=2048

# How many backlogged packets before we alert that the backlog is filling up; a 
# packet likely contains about 1.5k of data at most, so memory tuning can be
# planned accordingly.
#
# Defaults to zero, which will not warn if the packet queue begins to grow.
# Warnings will still be generated if the packet queue hits the hard limit of
# packet_backlog_limit
packet_backlog_warning=0

# How many backlogged packets before Kismet starts dropping packets; this 
# can be set to 0 to allow the packet processing queue to grow unbounded, but 
# this can lead to out-of-control memory consumption; by default Kismet picks a
# high, but limited, number.
packet_backlog_limit=8192

# Kismet can hard-limit the amount of memory it is allowed to use via the 
# 'ulimit' system; this could be set via a launch/setup script using the
# 'ulimit' command, or Kismet can set the maximum amount of ram it can use
# at startup.  
#
# If Kismet runs out of ram, it *will exit immediately* as if the system had
# encountered an out-of-memory error.
#
# This setting should ONLY be combined with a restart script that relaunches
# Kismet, and typically should only be used on long-running IDS-style installs
# of Kismet.
#
# The memory value is specified in *megabytes of ram*
#
# Very old distributions (such as Ubuntu 14.04 and possibly Debian Stable) using older
# LTS kernels (4.15 an older) do not monitor modern glibc/stdc++ allocations properly
# and do not include most memory allocations in ulimit calculations; the ulimit will 
# not work on old kernels.
# 
# ulimit_mbytes=16384


# Kismet can track the last seen sentence for a rtl433 device, this helps during
# development and handling new device types, but takes more memory.
#
# rtl433_track_last=false

