Skip to content
Snippets Groups Projects
Select Git revision
  • edbe77462302ec0b11a90244de13f9012118c538
  • master default
  • android-container
  • nanopc-t4
  • for-kernelci
  • WIP-syscall
  • v4.16-rc5
  • v4.16-rc4
  • v4.16-rc3
  • v4.16-rc2
  • v4.16-rc1
  • v4.15
  • v4.15-rc9
  • v4.15-rc8
  • v4.15-rc7
  • v4.15-rc6
  • v4.15-rc5
  • v4.15-rc4
  • v4.15-rc3
  • v4.15-rc2
  • v4.15-rc1
  • v4.14
  • v4.14-rc8
  • v4.14-rc7
  • v4.14-rc6
  • v4.14-rc5
26 results

af_packet.c

  • af_packet.c 106.86 KiB
    /*
     * INET		An implementation of the TCP/IP protocol suite for the LINUX
     *		operating system.  INET is implemented using the  BSD Socket
     *		interface as the means of communication with the user level.
     *
     *		PACKET - implements raw packet sockets.
     *
     * Authors:	Ross Biro
     *		Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
     *		Alan Cox, <gw4pts@gw4pts.ampr.org>
     *
     * Fixes:
     *		Alan Cox	:	verify_area() now used correctly
     *		Alan Cox	:	new skbuff lists, look ma no backlogs!
     *		Alan Cox	:	tidied skbuff lists.
     *		Alan Cox	:	Now uses generic datagram routines I
     *					added. Also fixed the peek/read crash
     *					from all old Linux datagram code.
     *		Alan Cox	:	Uses the improved datagram code.
     *		Alan Cox	:	Added NULL's for socket options.
     *		Alan Cox	:	Re-commented the code.
     *		Alan Cox	:	Use new kernel side addressing
     *		Rob Janssen	:	Correct MTU usage.
     *		Dave Platt	:	Counter leaks caused by incorrect
     *					interrupt locking and some slightly
     *					dubious gcc output. Can you read
     *					compiler: it said _VOLATILE_
     *	Richard Kooijman	:	Timestamp fixes.
     *		Alan Cox	:	New buffers. Use sk->mac.raw.
     *		Alan Cox	:	sendmsg/recvmsg support.
     *		Alan Cox	:	Protocol setting support
     *	Alexey Kuznetsov	:	Untied from IPv4 stack.
     *	Cyrus Durgin		:	Fixed kerneld for kmod.
     *	Michal Ostrowski        :       Module initialization cleanup.
     *         Ulises Alonso        :       Frame number limit removal and
     *                                      packet_set_ring memory leak.
     *		Eric Biederman	:	Allow for > 8 byte hardware addresses.
     *					The convention is that longer addresses
     *					will simply extend the hardware address
     *					byte arrays at the end of sockaddr_ll
     *					and packet_mreq.
     *		Johann Baudy	:	Added TX RING.
     *		Chetan Loke	:	Implemented TPACKET_V3 block abstraction
     *					layer.
     *					Copyright (C) 2011, <lokec@ccs.neu.edu>
     *
     *
     *		This program is free software; you can redistribute it and/or
     *		modify it under the terms of the GNU General Public License
     *		as published by the Free Software Foundation; either version
     *		2 of the License, or (at your option) any later version.
     *
     */
    
    #include <linux/types.h>
    #include <linux/mm.h>
    #include <linux/capability.h>
    #include <linux/fcntl.h>
    #include <linux/socket.h>
    #include <linux/in.h>
    #include <linux/inet.h>
    #include <linux/netdevice.h>
    #include <linux/if_packet.h>
    #include <linux/wireless.h>
    #include <linux/kernel.h>
    #include <linux/kmod.h>
    #include <linux/slab.h>
    #include <linux/vmalloc.h>
    #include <net/net_namespace.h>
    #include <net/ip.h>