1998-03-18 14:42:25 +00:00
|
|
|
/* Definitions for use with Linux AF_PACKET sockets.
|
2023-01-06 21:08:04 +00:00
|
|
|
Copyright (C) 1998-2023 Free Software Foundation, Inc.
|
1998-03-18 14:42:25 +00:00
|
|
|
This file is part of the GNU C Library.
|
|
|
|
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
2001-07-06 04:58:11 +00:00
|
|
|
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.
|
1998-03-18 14:42:25 +00:00
|
|
|
|
|
|
|
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
|
2001-07-06 04:58:11 +00:00
|
|
|
Lesser General Public License for more details.
|
1998-03-18 14:42:25 +00:00
|
|
|
|
2001-07-06 04:58:11 +00:00
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2012-02-09 23:18:22 +00:00
|
|
|
License along with the GNU C Library; if not, see
|
Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 05:40:42 +00:00
|
|
|
<https://www.gnu.org/licenses/>. */
|
1998-03-18 14:42:25 +00:00
|
|
|
|
|
|
|
#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
|
1999-08-28 22:34:29 +00:00
|
|
|
#define PACKET_RECV_OUTPUT 3
|
|
|
|
#define PACKET_RX_RING 5
|
|
|
|
#define PACKET_STATISTICS 6
|
2015-11-23 17:52:08 +00:00
|
|
|
#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
|
2019-01-01 02:02:35 +00:00
|
|
|
#define PACKET_IGNORE_OUTGOING 23
|
1998-03-18 14:42:25 +00:00
|
|
|
|
|
|
|
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
|
2015-11-23 17:52:08 +00:00
|
|
|
#define PACKET_MR_UNICAST 3
|
1998-03-18 14:42:25 +00:00
|
|
|
|
|
|
|
#endif /* netpacket/packet.h */
|