925fb1e1ec
This fixes TYPE field of networkctl's output for ip6gre devices.
156 lines
2.9 KiB
C
156 lines
2.9 KiB
C
/* SPDX-License-Identifier: LGPL-2.1+ */
|
|
#pragma once
|
|
|
|
#include <linux/loop.h>
|
|
#include <linux/rtnetlink.h>
|
|
#include <net/ethernet.h>
|
|
|
|
#include "missing_ethtool.h"
|
|
#include "missing_fib_rules.h"
|
|
#include "missing_fou.h"
|
|
#include "missing_if_bridge.h"
|
|
#include "missing_if_link.h"
|
|
#include "missing_if_tunnel.h"
|
|
#include "missing_vxcan.h"
|
|
|
|
/* if.h */
|
|
/* The following two defines are actually available in the kernel headers for longer, but we define them here anyway,
|
|
* since that makes it easier to use them in conjunction with the glibc net/if.h header which conflicts with
|
|
* linux/if.h. */
|
|
#ifndef IF_OPER_UNKNOWN
|
|
#define IF_OPER_UNKNOWN 0
|
|
#endif
|
|
|
|
#ifndef IF_OPER_UP
|
|
#define IF_OPER_UP 6
|
|
#endif
|
|
|
|
#ifndef IFF_LOWER_UP
|
|
#define IFF_LOWER_UP 0x10000
|
|
#endif
|
|
|
|
#ifndef IFF_DORMANT
|
|
#define IFF_DORMANT 0x20000
|
|
#endif
|
|
|
|
/* if_addr.h */
|
|
#if !HAVE_IFA_FLAGS
|
|
#define IFA_FLAGS 8
|
|
#endif
|
|
|
|
#ifndef IFA_F_MANAGETEMPADDR
|
|
#define IFA_F_MANAGETEMPADDR 0x100
|
|
#endif
|
|
|
|
#ifndef IFA_F_NOPREFIXROUTE
|
|
#define IFA_F_NOPREFIXROUTE 0x200
|
|
#endif
|
|
|
|
#ifndef IFA_F_MCAUTOJOIN
|
|
#define IFA_F_MCAUTOJOIN 0x400
|
|
#endif
|
|
|
|
/* if_arp.h */
|
|
#ifndef ARPHRD_IP6GRE
|
|
#define ARPHRD_IP6GRE 823
|
|
#endif
|
|
|
|
/* if_bonding.h */
|
|
#ifndef BOND_XMIT_POLICY_ENCAP23
|
|
#define BOND_XMIT_POLICY_ENCAP23 3
|
|
#endif
|
|
|
|
#ifndef BOND_XMIT_POLICY_ENCAP34
|
|
#define BOND_XMIT_POLICY_ENCAP34 4
|
|
#endif
|
|
|
|
/* if_tun.h */
|
|
#ifndef IFF_MULTI_QUEUE
|
|
#define IFF_MULTI_QUEUE 0x100
|
|
#endif
|
|
|
|
/* in6.h */
|
|
#ifndef IPV6_UNICAST_IF
|
|
#define IPV6_UNICAST_IF 76
|
|
#endif
|
|
|
|
/* ip.h */
|
|
#ifndef IPV4_MIN_MTU
|
|
#define IPV4_MIN_MTU 68
|
|
#endif
|
|
|
|
/* ipv6.h */
|
|
#ifndef IPV6_MIN_MTU
|
|
#define IPV6_MIN_MTU 1280
|
|
#endif
|
|
|
|
/* loop.h */
|
|
#if !HAVE_LO_FLAGS_PARTSCAN
|
|
#define LO_FLAGS_PARTSCAN 8
|
|
#endif
|
|
|
|
#ifndef LOOP_CTL_REMOVE
|
|
#define LOOP_CTL_REMOVE 0x4C81
|
|
#endif
|
|
|
|
#ifndef LOOP_CTL_GET_FREE
|
|
#define LOOP_CTL_GET_FREE 0x4C82
|
|
#endif
|
|
|
|
/* netdevice.h */
|
|
#ifndef NET_ADDR_RANDOM
|
|
#define NET_ADDR_RANDOM 1
|
|
#endif
|
|
|
|
#ifndef NET_NAME_UNKNOWN
|
|
#define NET_NAME_UNKNOWN 0
|
|
#endif
|
|
|
|
#ifndef NET_NAME_ENUM
|
|
#define NET_NAME_ENUM 1
|
|
#endif
|
|
|
|
#ifndef NET_NAME_PREDICTABLE
|
|
#define NET_NAME_PREDICTABLE 2
|
|
#endif
|
|
|
|
#ifndef NET_NAME_USER
|
|
#define NET_NAME_USER 3
|
|
#endif
|
|
|
|
#ifndef NET_NAME_RENAMED
|
|
#define NET_NAME_RENAMED 4
|
|
#endif
|
|
|
|
/* netlink.h */
|
|
#ifndef NETLINK_LIST_MEMBERSHIPS /* b42be38b2778eda2237fc759e55e3b698b05b315 (4.2) */
|
|
#define NETLINK_LIST_MEMBERSHIPS 9
|
|
#endif
|
|
|
|
/* rtnetlink.h */
|
|
#ifndef RTA_PREF
|
|
#define RTA_PREF 20
|
|
#endif
|
|
|
|
#ifndef RTAX_QUICKACK
|
|
#define RTAX_QUICKACK 15
|
|
#endif
|
|
|
|
#ifndef RTA_EXPIRES
|
|
#define RTA_EXPIRES 23
|
|
#endif
|
|
|
|
/* Note that LOOPBACK_IFINDEX is currently not exported by the
|
|
* kernel/glibc, but hardcoded internally by the kernel. However, as
|
|
* it is exported to userspace indirectly via rtnetlink and the
|
|
* ioctls, and made use of widely we define it here too, in a way that
|
|
* is compatible with the kernel's internal definition. */
|
|
#ifndef LOOPBACK_IFINDEX
|
|
#define LOOPBACK_IFINDEX 1
|
|
#endif
|
|
|
|
/* Not exposed yet. Similar values are defined in net/ethernet.h */
|
|
#ifndef ETHERTYPE_LLDP
|
|
#define ETHERTYPE_LLDP 0x88cc
|
|
#endif
|