]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Drop bundled copy of linux/if_arp.h
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 15 Sep 2021 14:33:05 +0000 (16:33 +0200)
committerLuca Boccassi <luca.boccassi@gmail.com>
Tue, 21 Sep 2021 11:04:28 +0000 (12:04 +0100)
As far as I can see, we use this to get a list of ARPHRD_* defines (used in
particular for Type= in .link files). If we drop our copy, and build against
old kernel headers, the user will have a shorter list of types available.  This
seems OK, and I don't think it's worth carrying our own version of this file
just to have newest possible entries.

7c5b9952c4f6e2b72f90edbe439982528b7cf223 recently updated this file, but we'd
have to update it every time the kernel adds new entries. But if we look at
the failure carefully:

src/basic/arphrd-from-name.gperf:65:16: error: ‘ARPHRD_MCTP’ undeclared (first use in this function); did you mean ‘ARPHRD_FCPP’?
   65 | MCTP, ARPHRD_MCTP
      |                ^~
      |                ARPHRD_FCPP

we see that the list we were generating was from the system headers, so it was
only as good as the system headers anyway, without the newer entries in our
bundled copy, if there were any. So let's make things simpler by always using
system headers.

And if somebody wants to fix things so that we always have the newest list,
then we should just generate and store the converted list, not the full header.

src/basic/linux/if_arp.h [deleted file]
src/basic/meson.build

diff --git a/src/basic/linux/if_arp.h b/src/basic/linux/if_arp.h
deleted file mode 100644 (file)
index 4783af9..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- * 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.
- *
- *             Global definitions for the ARP (RFC 826) protocol.
- *
- * Version:    @(#)if_arp.h    1.0.1   04/16/93
- *
- * Authors:    Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988
- *             Portions taken from the KA9Q/NOS (v2.00m PA0GRI) source.
- *             Ross Biro
- *             Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- *             Florian La Roche,
- *             Jonathan Layes <layes@loran.com>
- *             Arnaldo Carvalho de Melo <acme@conectiva.com.br> ARPHRD_HWX25
- *
- *             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.
- */
-#ifndef _UAPI_LINUX_IF_ARP_H
-#define _UAPI_LINUX_IF_ARP_H
-
-#include <linux/netdevice.h>
-
-/* ARP protocol HARDWARE identifiers. */
-#define ARPHRD_NETROM  0               /* from KA9Q: NET/ROM pseudo    */
-#define ARPHRD_ETHER   1               /* Ethernet 10Mbps              */
-#define        ARPHRD_EETHER   2               /* Experimental Ethernet        */
-#define        ARPHRD_AX25     3               /* AX.25 Level 2                */
-#define        ARPHRD_PRONET   4               /* PROnet token ring            */
-#define        ARPHRD_CHAOS    5               /* Chaosnet                     */
-#define        ARPHRD_IEEE802  6               /* IEEE 802.2 Ethernet/TR/TB    */
-#define        ARPHRD_ARCNET   7               /* ARCnet                       */
-#define        ARPHRD_APPLETLK 8               /* APPLEtalk                    */
-#define ARPHRD_DLCI    15              /* Frame Relay DLCI             */
-#define ARPHRD_ATM     19              /* ATM                          */
-#define ARPHRD_METRICOM        23              /* Metricom STRIP (new IANA id) */
-#define        ARPHRD_IEEE1394 24              /* IEEE 1394 IPv4 - RFC 2734    */
-#define ARPHRD_EUI64   27              /* EUI-64                       */
-#define ARPHRD_INFINIBAND 32           /* InfiniBand                   */
-
-/* Dummy types for non ARP hardware */
-#define ARPHRD_SLIP    256
-#define ARPHRD_CSLIP   257
-#define ARPHRD_SLIP6   258
-#define ARPHRD_CSLIP6  259
-#define ARPHRD_RSRVD   260             /* Notional KISS type           */
-#define ARPHRD_ADAPT   264
-#define ARPHRD_ROSE    270
-#define ARPHRD_X25     271             /* CCITT X.25                   */
-#define ARPHRD_HWX25   272             /* Boards with X.25 in firmware */
-#define ARPHRD_CAN     280             /* Controller Area Network      */
-#define ARPHRD_MCTP    290
-#define ARPHRD_PPP     512
-#define ARPHRD_CISCO   513             /* Cisco HDLC                   */
-#define ARPHRD_HDLC    ARPHRD_CISCO
-#define ARPHRD_LAPB    516             /* LAPB                         */
-#define ARPHRD_DDCMP    517            /* Digital's DDCMP protocol     */
-#define ARPHRD_RAWHDLC 518             /* Raw HDLC                     */
-#define ARPHRD_RAWIP    519            /* Raw IP                       */
-
-#define ARPHRD_TUNNEL  768             /* IPIP tunnel                  */
-#define ARPHRD_TUNNEL6 769             /* IP6IP6 tunnel                */
-#define ARPHRD_FRAD    770             /* Frame Relay Access Device    */
-#define ARPHRD_SKIP    771             /* SKIP vif                     */
-#define ARPHRD_LOOPBACK        772             /* Loopback device              */
-#define ARPHRD_LOCALTLK 773            /* Localtalk device             */
-#define ARPHRD_FDDI    774             /* Fiber Distributed Data Interface */
-#define ARPHRD_BIF      775             /* AP1000 BIF                   */
-#define ARPHRD_SIT     776             /* sit0 device - IPv6-in-IPv4   */
-#define ARPHRD_IPDDP   777             /* IP over DDP tunneller        */
-#define ARPHRD_IPGRE   778             /* GRE over IP                  */
-#define ARPHRD_PIMREG  779             /* PIMSM register interface     */
-#define ARPHRD_HIPPI   780             /* High Performance Parallel Interface */
-#define ARPHRD_ASH     781             /* Nexus 64Mbps Ash             */
-#define ARPHRD_ECONET  782             /* Acorn Econet                 */
-#define ARPHRD_IRDA    783             /* Linux-IrDA                   */
-/* ARP works differently on different FC media .. so  */
-#define ARPHRD_FCPP    784             /* Point to point fibrechannel  */
-#define ARPHRD_FCAL    785             /* Fibrechannel arbitrated loop */
-#define ARPHRD_FCPL    786             /* Fibrechannel public loop     */
-#define ARPHRD_FCFABRIC        787             /* Fibrechannel fabric          */
-       /* 787->799 reserved for fibrechannel media types */
-#define ARPHRD_IEEE802_TR 800          /* Magic type ident for TR      */
-#define ARPHRD_IEEE80211 801           /* IEEE 802.11                  */
-#define ARPHRD_IEEE80211_PRISM 802     /* IEEE 802.11 + Prism2 header  */
-#define ARPHRD_IEEE80211_RADIOTAP 803  /* IEEE 802.11 + radiotap header */
-#define ARPHRD_IEEE802154        804
-#define ARPHRD_IEEE802154_MONITOR 805  /* IEEE 802.15.4 network monitor */
-
-#define ARPHRD_PHONET  820             /* PhoNet media type            */
-#define ARPHRD_PHONET_PIPE 821         /* PhoNet pipe header           */
-#define ARPHRD_CAIF    822             /* CAIF media type              */
-#define ARPHRD_IP6GRE  823             /* GRE over IPv6                */
-#define ARPHRD_NETLINK 824             /* Netlink header               */
-#define ARPHRD_6LOWPAN 825             /* IPv6 over LoWPAN             */
-#define ARPHRD_VSOCKMON        826             /* Vsock monitor header         */
-
-#define ARPHRD_VOID      0xFFFF        /* Void type, nothing is known */
-#define ARPHRD_NONE      0xFFFE        /* zero header length */
-
-/* ARP protocol opcodes. */
-#define        ARPOP_REQUEST   1               /* ARP request                  */
-#define        ARPOP_REPLY     2               /* ARP reply                    */
-#define        ARPOP_RREQUEST  3               /* RARP request                 */
-#define        ARPOP_RREPLY    4               /* RARP reply                   */
-#define        ARPOP_InREQUEST 8               /* InARP request                */
-#define        ARPOP_InREPLY   9               /* InARP reply                  */
-#define        ARPOP_NAK       10              /* (ATM)ARP NAK                 */
-
-
-/* ARP ioctl request. */
-struct arpreq {
-       struct sockaddr arp_pa;         /* protocol address              */
-       struct sockaddr arp_ha;         /* hardware address              */
-       int             arp_flags;      /* flags                         */
-       struct sockaddr arp_netmask;    /* netmask (only for proxy arps) */
-       char            arp_dev[IFNAMSIZ];
-};
-
-struct arpreq_old {
-       struct sockaddr arp_pa;         /* protocol address              */
-       struct sockaddr arp_ha;         /* hardware address              */
-       int             arp_flags;      /* flags                         */
-       struct sockaddr arp_netmask;    /* netmask (only for proxy arps) */
-};
-
-/* ARP Flag values. */
-#define ATF_COM                0x02            /* completed entry (ha valid)   */
-#define        ATF_PERM        0x04            /* permanent entry              */
-#define        ATF_PUBL        0x08            /* publish entry                */
-#define        ATF_USETRAILERS 0x10            /* has requested trailers       */
-#define ATF_NETMASK     0x20            /* want to use a netmask (only
-                                          for proxy entries) */
-#define ATF_DONTPUB    0x40            /* don't answer this addresses  */
-
-/*
- *     This structure defines an ethernet arp header.
- */
-
-struct arphdr {
-       __be16          ar_hrd;         /* format of hardware address   */
-       __be16          ar_pro;         /* format of protocol address   */
-       unsigned char   ar_hln;         /* length of hardware address   */
-       unsigned char   ar_pln;         /* length of protocol address   */
-       __be16          ar_op;          /* ARP opcode (command)         */
-
-#if 0
-        /*
-         *      Ethernet looks like this : This bit is variable sized however...
-         */
-       unsigned char           ar_sha[ETH_ALEN];       /* sender hardware address      */
-       unsigned char           ar_sip[4];              /* sender IP address            */
-       unsigned char           ar_tha[ETH_ALEN];       /* target hardware address      */
-       unsigned char           ar_tip[4];              /* target IP address            */
-#endif
-
-};
-
-
-#endif /* _UAPI_LINUX_IF_ARP_H */
index b10c4508acb2bd1dc9352098a776340171dd81f5..8fe53b20936ea21540f16174c885d7822e81eba2 100644 (file)
@@ -88,7 +88,6 @@ basic_sources = files('''
         linux/hdlc/ioctl.h
         linux/if.h
         linux/if_addr.h
-        linux/if_arp.h
         linux/if_bonding.h
         linux/if_bridge.h
         linux/if_ether.h