In this guide, I'll describe how you could build kernel for Ubuntu
14.04 with CONFIG_NET_DROP_MONITOR option. It's pretty standard
reference copy-n-pasted from official manual of Ubuntu with very small
changes.
If you got this error:
sudo ./dropwatch
Unable to find NET_DM family, dropwatch can't work
Cleaning up on socket creation error
Then it means that your kernel does not have CONFIG_NET_DROP_MONITOR option compiled.
I use Ubuntu 14.04 and could provide guide how you could rebuild kernel with this option.
Rebuild kernel:
apt-get source linux-image-$(uname -r)
Install build deps:
sudo apt-get build-dep linux-image-$(uname -r) libncurses5-dev
Start process:
cd linux-lts-vivid-3.19.0
Change options:
chmod a+x debian/rules
chmod a+x debian/scripts/*
chmod a+x debian/scripts/misc/*
fakeroot debian/rules clean
fakeroot debian/rules editconfigs # you need to go through each (Y, Exit, Y, Exit..) or get a complaint about config later
Then specify it:
Do you want to edit config: amd64/config.flavour.generic? [Y/n] Y
Required option you could find here:
Networking support - Networking options - Network testing - Network packet drop alerting service - [M]
Build it:
fakeroot debian/rules binary-headers binary-generic binary-perarch
Check it:
cat ./debian.vivid/config/amd64/config.flavour.generic
#
# Config options for config.flavour.generic automatically generated by splitconfig.pl
#
CONFIG_HZ=250
# CONFIG_HZ_1000 is not set
CONFIG_HZ_250=y
# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set
CONFIG_NET_DROP_MONITOR=m
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_VOLUNTARY=y
And finally load it when you restart to new kernel:
modprobe drop_monitor