1 /* Definitions for use with Linux AF_PACKET sockets. 2 Copyright (C) 1998, 1999 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, write to the Free 17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 18 02111-1307 USA. */ 19 20 #ifndef __NETPACKET_PACKET_H 21 #define __NETPACKET_PACKET_H 1 22 23 struct sockaddr_ll 24 { 25 unsigned short int sll_family; 26 unsigned short int sll_protocol; 27 int sll_ifindex; 28 unsigned short int sll_hatype; 29 unsigned char sll_pkttype; 30 unsigned char sll_halen; 31 unsigned char sll_addr[8]; 32 }; 33 34 /* Packet types. */ 35 36 #define PACKET_HOST 0 /* To us. */ 37 #define PACKET_BROADCAST 1 /* To all. */ 38 #define PACKET_MULTICAST 2 /* To group. */ 39 #define PACKET_OTHERHOST 3 /* To someone else. */ 40 #define PACKET_OUTGOING 4 /* Originated by us . */ 41 #define PACKET_LOOPBACK 5 42 #define PACKET_FASTROUTE 6 43 44 /* Packet socket options. */ 45 46 #define PACKET_ADD_MEMBERSHIP 1 47 #define PACKET_DROP_MEMBERSHIP 2 48 #define PACKET_RECV_OUTPUT 3 49 #define PACKET_RX_RING 5 50 #define PACKET_STATISTICS 6 51 52 struct packet_mreq 53 { 54 int mr_ifindex; 55 unsigned short int mr_type; 56 unsigned short int mr_alen; 57 unsigned char mr_address[8]; 58 }; 59 60 #define PACKET_MR_MULTICAST 0 61 #define PACKET_MR_PROMISC 1 62 #define PACKET_MR_ALLMULTI 2 63 64 #endif /* netpacket/packet.h */ 65