glibc (2.38)

(root)/
include/
netpacket/
packet.h
       1  /* Definitions for use with Linux AF_PACKET sockets.
       2     Copyright (C) 1998-2023 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, see
      17     <https://www.gnu.org/licenses/>.  */
      18  
      19  #ifndef __NETPACKET_PACKET_H
      20  #define __NETPACKET_PACKET_H	1
      21  
      22  struct sockaddr_ll
      23    {
      24      unsigned short int sll_family;
      25      unsigned short int sll_protocol;
      26      int sll_ifindex;
      27      unsigned short int sll_hatype;
      28      unsigned char sll_pkttype;
      29      unsigned char sll_halen;
      30      unsigned char sll_addr[8];
      31    };
      32  
      33  /* Packet types.  */
      34  
      35  #define PACKET_HOST		0		/* To us.  */
      36  #define PACKET_BROADCAST	1		/* To all.  */
      37  #define PACKET_MULTICAST	2		/* To group.  */
      38  #define PACKET_OTHERHOST	3		/* To someone else.  */
      39  #define PACKET_OUTGOING		4		/* Originated by us . */
      40  #define PACKET_LOOPBACK		5
      41  #define PACKET_FASTROUTE	6
      42  
      43  /* Packet socket options.  */
      44  
      45  #define PACKET_ADD_MEMBERSHIP		1
      46  #define PACKET_DROP_MEMBERSHIP		2
      47  #define	PACKET_RECV_OUTPUT		3
      48  #define	PACKET_RX_RING			5
      49  #define	PACKET_STATISTICS		6
      50  #define	PACKET_COPY_THRESH		7
      51  #define	PACKET_AUXDATA			8
      52  #define	PACKET_ORIGDEV			9
      53  #define	PACKET_VERSION			10
      54  #define	PACKET_HDRLEN			11
      55  #define	PACKET_RESERVE			12
      56  #define	PACKET_TX_RING			13
      57  #define	PACKET_LOSS			14
      58  #define	PACKET_VNET_HDR			15
      59  #define	PACKET_TX_TIMESTAMP		16
      60  #define	PACKET_TIMESTAMP		17
      61  #define	PACKET_FANOUT			18
      62  #define	PACKET_TX_HAS_OFF		19
      63  #define	PACKET_QDISC_BYPASS		20
      64  #define	PACKET_ROLLOVER_STATS		21
      65  #define	PACKET_FANOUT_DATA		22
      66  #define	PACKET_IGNORE_OUTGOING		23
      67  
      68  struct packet_mreq
      69    {
      70      int mr_ifindex;
      71      unsigned short int mr_type;
      72      unsigned short int mr_alen;
      73      unsigned char mr_address[8];
      74    };
      75  
      76  #define PACKET_MR_MULTICAST	0
      77  #define PACKET_MR_PROMISC	1
      78  #define PACKET_MR_ALLMULTI	2
      79  #define PACKET_MR_UNICAST	3
      80  
      81  #endif	/* netpacket/packet.h */