mirror of
https://sourceware.org/git/glibc.git
synced 2025-04-26 15:09:05 +03:00
In the course of reviewing Linux 4.3 changes for any glibc header updates needed, I found that sysdeps/unix/sysv/linux/netpacket/packet.h was extremely out of date (last updated for Linux 2.3.15, it seems). This patch updates the sets of constants present in that header to include those added to those sets in newer kernels (include/uapi/linux/if_packet.h). Tested for x86_64 (testsuite, and that installed shared libraries are unchanged by the patch). * sysdeps/unix/sysv/linux/netpacket/packet.h (PACKET_COPY_THRESH): New macro. (PACKET_AUXDATA): Likewise. (PACKET_ORIGDEV): Likewise. (PACKET_VERSION): Likewise. (PACKET_HDRLEN): Likewise. (PACKET_RESERVE): Likewise. (PACKET_TX_RING): Likewise. (PACKET_LOSS): Likewise. (PACKET_VNET_HDR): Likewise. (PACKET_TX_TIMESTAMP): Likewise. (PACKET_TIMESTAMP): Likewise. (PACKET_FANOUT): Likewise. (PACKET_TX_HAS_OFF): Likewise. (PACKET_QDISC_BYPASS): Likewise. (PACKET_ROLLOVER_STATS): Likewise. (PACKET_FANOUT_DATA): Likewise. (PACKET_MR_UNICAST): Likewise.
81 lines
2.3 KiB
C
81 lines
2.3 KiB
C
/* Definitions for use with Linux AF_PACKET sockets.
|
|
Copyright (C) 1998-2015 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef __NETPACKET_PACKET_H
|
|
#define __NETPACKET_PACKET_H 1
|
|
|
|
struct sockaddr_ll
|
|
{
|
|
unsigned short int sll_family;
|
|
unsigned short int sll_protocol;
|
|
int sll_ifindex;
|
|
unsigned short int sll_hatype;
|
|
unsigned char sll_pkttype;
|
|
unsigned char sll_halen;
|
|
unsigned char sll_addr[8];
|
|
};
|
|
|
|
/* Packet types. */
|
|
|
|
#define PACKET_HOST 0 /* To us. */
|
|
#define PACKET_BROADCAST 1 /* To all. */
|
|
#define PACKET_MULTICAST 2 /* To group. */
|
|
#define PACKET_OTHERHOST 3 /* To someone else. */
|
|
#define PACKET_OUTGOING 4 /* Originated by us . */
|
|
#define PACKET_LOOPBACK 5
|
|
#define PACKET_FASTROUTE 6
|
|
|
|
/* Packet socket options. */
|
|
|
|
#define PACKET_ADD_MEMBERSHIP 1
|
|
#define PACKET_DROP_MEMBERSHIP 2
|
|
#define PACKET_RECV_OUTPUT 3
|
|
#define PACKET_RX_RING 5
|
|
#define PACKET_STATISTICS 6
|
|
#define PACKET_COPY_THRESH 7
|
|
#define PACKET_AUXDATA 8
|
|
#define PACKET_ORIGDEV 9
|
|
#define PACKET_VERSION 10
|
|
#define PACKET_HDRLEN 11
|
|
#define PACKET_RESERVE 12
|
|
#define PACKET_TX_RING 13
|
|
#define PACKET_LOSS 14
|
|
#define PACKET_VNET_HDR 15
|
|
#define PACKET_TX_TIMESTAMP 16
|
|
#define PACKET_TIMESTAMP 17
|
|
#define PACKET_FANOUT 18
|
|
#define PACKET_TX_HAS_OFF 19
|
|
#define PACKET_QDISC_BYPASS 20
|
|
#define PACKET_ROLLOVER_STATS 21
|
|
#define PACKET_FANOUT_DATA 22
|
|
|
|
struct packet_mreq
|
|
{
|
|
int mr_ifindex;
|
|
unsigned short int mr_type;
|
|
unsigned short int mr_alen;
|
|
unsigned char mr_address[8];
|
|
};
|
|
|
|
#define PACKET_MR_MULTICAST 0
|
|
#define PACKET_MR_PROMISC 1
|
|
#define PACKET_MR_ALLMULTI 2
|
|
#define PACKET_MR_UNICAST 3
|
|
|
|
#endif /* netpacket/packet.h */
|