linux/drivers/net
Daniel Borkmann e4fc408e0e packet: nlmon: virtual netlink monitoring device for packet sockets
Currently, there is no good possibility to debug netlink traffic that
is being exchanged between kernel and user space. Therefore, this patch
implements a netlink virtual device, so that netlink messages will be
made visible to PF_PACKET sockets. Once there was an approach with a
similar idea [1], but it got forgotten somehow.

I think it makes most sense to accept the "overhead" of an extra netlink
net device over implementing the same functionality from PF_PACKET
sockets once again into netlink sockets. We have BPF filters that can
already be easily applied which even have netlink extensions, we have
RX_RING zero-copy between kernel- and user space that can be reused,
and much more features. So instead of re-implementing all of this, we
simply pass the skb to a given PF_PACKET socket for further analysis.

Another nice benefit that comes from that is that no code needs to be
changed in user space packet analyzers (maybe adding a dissector, but
not more), thus out of the box, we can already capture pcap files of
netlink traffic to debug/troubleshoot netlink problems.

Also thanks goes to Thomas Graf, Flavio Leitner, Jesper Dangaard Brouer.

 [1] http://marc.info/?l=linux-netdev&m=113813401516110

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-06-24 16:39:05 -07:00
..
appletalk
arcnet
bonding bonding: trivial: make alb use bond_slave_has_mac() 2013-06-19 22:20:08 -07:00
caif caif: CAIF_VIRTIO should depend on HAS_DMA 2013-05-11 16:28:24 -07:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-19 16:49:39 -07:00
cris
dsa
ethernet net: Restore unintentional reverts. 2013-06-24 12:43:40 -07:00
fddi net/fddi/skfp/skfddi: Use module_pci_driver to register driver 2013-05-22 14:35:05 -07:00
hamradio net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
hippi net/hippi/rrunner: Use module_pci_driver to register driver 2013-05-22 14:35:05 -07:00
hyperv Fix the VLAN_TAG_PRESENT in netvsc_recv_callback() 2013-06-17 15:58:11 -07:00
ieee802154 at86rf230: change irq handling to prevent lockups with edge type irq 2013-04-16 16:34:08 -04:00
irda net: irda: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
phy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-05 16:37:30 -07:00
plip net: add ETH_P_802_3_MIN 2013-03-28 01:20:42 -04:00
ppp net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
slip
team Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-19 16:49:39 -07:00
usb net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
vmxnet3 net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
wan net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
wimax
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-06-21 15:42:30 -04:00
xen-netback xen-netback: double free on unload 2013-06-24 00:24:57 -07:00
dummy.c
eql.c
ifb.c net: vlan: announce STAG offload capability in some drivers 2013-04-19 14:46:06 -04:00
Kconfig packet: nlmon: virtual netlink monitoring device for packet sockets 2013-06-24 16:39:05 -07:00
LICENSE.SRC
loopback.c
macvlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-19 16:49:39 -07:00
macvtap.c macvtap: fix uninitialized return value macvtap_ioctl_set_queue() 2013-06-13 01:23:11 -07:00
Makefile packet: nlmon: virtual netlink monitoring device for packet sockets 2013-06-24 16:39:05 -07:00
mdio.c
mii.c
netconsole.c net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
nlmon.c packet: nlmon: virtual netlink monitoring device for packet sockets 2013-06-24 16:39:05 -07:00
ntb_netdev.c ntb_netdev: remove from list on exit 2013-05-15 10:58:14 -07:00
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-19 16:49:39 -07:00
veth.c veth: remove redundant call of dev_alloc_name 2013-06-12 01:21:20 -07:00
virtio_net.c virtio_net: enable napi for all possible queues during open 2013-05-23 00:10:59 -07:00
vxlan.c ip_tunnels: extend iptunnel_xmit() 2013-06-19 18:07:41 -07:00
xen-netfront.c xen-netfront: use skb_partial_csum_set() to simplify the codes 2013-06-11 02:34:36 -07:00