mirror of
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git
synced 2024-11-17 06:53:26 +08:00
Merge branch 'net-next'
This commit is contained in:
commit
e4d5edba68
@ -8,6 +8,38 @@
|
||||
* Copyright (c) 2002-2007 Volkswagen Group Electronic Research
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of Volkswagen nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* Alternatively, provided that this notice is retained in full, this
|
||||
* software may be distributed under the terms of the GNU General
|
||||
* Public License ("GPL") version 2, in which case the provisions of the
|
||||
* GPL apply INSTEAD OF those given above.
|
||||
*
|
||||
* The provided data structures and external interfaces from this code
|
||||
* are not restricted to be used by modules with a GPL compatible license.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
* DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef CAN_H
|
||||
|
@ -96,6 +96,7 @@ struct can_ctrlmode {
|
||||
#define CAN_CTRLMODE_3_SAMPLES 0x04 /* Triple sampling mode */
|
||||
#define CAN_CTRLMODE_ONE_SHOT 0x08 /* One-Shot mode */
|
||||
#define CAN_CTRLMODE_BERR_REPORTING 0x10 /* Bus-error reporting */
|
||||
#define CAN_CTRLMODE_FD 0x20 /* CAN FD mode */
|
||||
|
||||
/*
|
||||
* CAN device statistics
|
||||
@ -122,6 +123,8 @@ enum {
|
||||
IFLA_CAN_RESTART_MS,
|
||||
IFLA_CAN_RESTART,
|
||||
IFLA_CAN_BERR_COUNTER,
|
||||
IFLA_CAN_DATA_BITTIMING,
|
||||
IFLA_CAN_DATA_BITTIMING_CONST,
|
||||
__IFLA_CAN_MAX
|
||||
};
|
||||
|
||||
|
@ -27,65 +27,91 @@
|
||||
#define IFALIASZ 256
|
||||
#include <linux/hdlc/ioctl.h>
|
||||
|
||||
/* Standard interface flags (netdevice->flags). */
|
||||
#define IFF_UP 0x1 /* interface is up */
|
||||
#define IFF_BROADCAST 0x2 /* broadcast address valid */
|
||||
#define IFF_DEBUG 0x4 /* turn on debugging */
|
||||
#define IFF_LOOPBACK 0x8 /* is a loopback net */
|
||||
#define IFF_POINTOPOINT 0x10 /* interface is has p-p link */
|
||||
#define IFF_NOTRAILERS 0x20 /* avoid use of trailers */
|
||||
#define IFF_RUNNING 0x40 /* interface RFC2863 OPER_UP */
|
||||
#define IFF_NOARP 0x80 /* no ARP protocol */
|
||||
#define IFF_PROMISC 0x100 /* receive all packets */
|
||||
#define IFF_ALLMULTI 0x200 /* receive all multicast packets*/
|
||||
/**
|
||||
* enum net_device_flags - &struct net_device flags
|
||||
*
|
||||
* These are the &struct net_device flags, they can be set by drivers, the
|
||||
* kernel and some can be triggered by userspace. Userspace can query and
|
||||
* set these flags using userspace utilities but there is also a sysfs
|
||||
* entry available for all dev flags which can be queried and set. These flags
|
||||
* are shared for all types of net_devices. The sysfs entries are available
|
||||
* via /sys/class/net/<dev>/flags. Flags which can be toggled through sysfs
|
||||
* are annotated below, note that only a few flags can be toggled and some
|
||||
* other flags are always always preserved from the original net_device flags
|
||||
* even if you try to set them via sysfs. Flags which are always preserved
|
||||
* are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__
|
||||
* are annotated below as such.
|
||||
*
|
||||
* You should have a pretty good reason to be extending these flags.
|
||||
*
|
||||
* @IFF_UP: interface is up. Can be toggled through sysfs.
|
||||
* @IFF_BROADCAST: broadcast address valid. Volatile.
|
||||
* @IFF_DEBUG: turn on debugging. Can be toggled through sysfs.
|
||||
* @IFF_LOOPBACK: is a loopback net. Volatile.
|
||||
* @IFF_POINTOPOINT: interface is has p-p link. Volatile.
|
||||
* @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs.
|
||||
* Volatile.
|
||||
* @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile.
|
||||
* @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile.
|
||||
* @IFF_PROMISC: receive all packets. Can be toggled through sysfs.
|
||||
* @IFF_ALLMULTI: receive all multicast packets. Can be toggled through
|
||||
* sysfs.
|
||||
* @IFF_MASTER: master of a load balancer. Volatile.
|
||||
* @IFF_SLAVE: slave of a load balancer. Volatile.
|
||||
* @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs.
|
||||
* @IFF_PORTSEL: can set media type. Can be toggled through sysfs.
|
||||
* @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs.
|
||||
* @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled
|
||||
* through sysfs.
|
||||
* @IFF_LOWER_UP: driver signals L1 up. Volatile.
|
||||
* @IFF_DORMANT: driver signals dormant. Volatile.
|
||||
* @IFF_ECHO: echo sent packets. Volatile.
|
||||
*/
|
||||
enum net_device_flags {
|
||||
IFF_UP = 1<<0, /* sysfs */
|
||||
IFF_BROADCAST = 1<<1, /* __volatile__ */
|
||||
IFF_DEBUG = 1<<2, /* sysfs */
|
||||
IFF_LOOPBACK = 1<<3, /* __volatile__ */
|
||||
IFF_POINTOPOINT = 1<<4, /* __volatile__ */
|
||||
IFF_NOTRAILERS = 1<<5, /* sysfs */
|
||||
IFF_RUNNING = 1<<6, /* __volatile__ */
|
||||
IFF_NOARP = 1<<7, /* sysfs */
|
||||
IFF_PROMISC = 1<<8, /* sysfs */
|
||||
IFF_ALLMULTI = 1<<9, /* sysfs */
|
||||
IFF_MASTER = 1<<10, /* __volatile__ */
|
||||
IFF_SLAVE = 1<<11, /* __volatile__ */
|
||||
IFF_MULTICAST = 1<<12, /* sysfs */
|
||||
IFF_PORTSEL = 1<<13, /* sysfs */
|
||||
IFF_AUTOMEDIA = 1<<14, /* sysfs */
|
||||
IFF_DYNAMIC = 1<<15, /* sysfs */
|
||||
IFF_LOWER_UP = 1<<16, /* __volatile__ */
|
||||
IFF_DORMANT = 1<<17, /* __volatile__ */
|
||||
IFF_ECHO = 1<<18, /* __volatile__ */
|
||||
};
|
||||
|
||||
#define IFF_MASTER 0x400 /* master of a load balancer */
|
||||
#define IFF_SLAVE 0x800 /* slave of a load balancer */
|
||||
|
||||
#define IFF_MULTICAST 0x1000 /* Supports multicast */
|
||||
|
||||
#define IFF_PORTSEL 0x2000 /* can set media type */
|
||||
#define IFF_AUTOMEDIA 0x4000 /* auto media select active */
|
||||
#define IFF_DYNAMIC 0x8000 /* dialup device with changing addresses*/
|
||||
|
||||
#define IFF_LOWER_UP 0x10000 /* driver signals L1 up */
|
||||
#define IFF_DORMANT 0x20000 /* driver signals dormant */
|
||||
|
||||
#define IFF_ECHO 0x40000 /* echo sent packets */
|
||||
#define IFF_UP IFF_UP
|
||||
#define IFF_BROADCAST IFF_BROADCAST
|
||||
#define IFF_DEBUG IFF_DEBUG
|
||||
#define IFF_LOOPBACK IFF_LOOPBACK
|
||||
#define IFF_POINTOPOINT IFF_POINTOPOINT
|
||||
#define IFF_NOTRAILERS IFF_NOTRAILERS
|
||||
#define IFF_RUNNING IFF_RUNNING
|
||||
#define IFF_NOARP IFF_NOARP
|
||||
#define IFF_PROMISC IFF_PROMISC
|
||||
#define IFF_ALLMULTI IFF_ALLMULTI
|
||||
#define IFF_MASTER IFF_MASTER
|
||||
#define IFF_SLAVE IFF_SLAVE
|
||||
#define IFF_MULTICAST IFF_MULTICAST
|
||||
#define IFF_PORTSEL IFF_PORTSEL
|
||||
#define IFF_AUTOMEDIA IFF_AUTOMEDIA
|
||||
#define IFF_DYNAMIC IFF_DYNAMIC
|
||||
#define IFF_LOWER_UP IFF_LOWER_UP
|
||||
#define IFF_DORMANT IFF_DORMANT
|
||||
#define IFF_ECHO IFF_ECHO
|
||||
|
||||
#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\
|
||||
IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)
|
||||
|
||||
/* Private (from user) interface flags (netdevice->priv_flags). */
|
||||
#define IFF_802_1Q_VLAN 0x1 /* 802.1Q VLAN device. */
|
||||
#define IFF_EBRIDGE 0x2 /* Ethernet bridging device. */
|
||||
#define IFF_SLAVE_INACTIVE 0x4 /* bonding slave not the curr. active */
|
||||
#define IFF_MASTER_8023AD 0x8 /* bonding master, 802.3ad. */
|
||||
#define IFF_MASTER_ALB 0x10 /* bonding master, balance-alb. */
|
||||
#define IFF_BONDING 0x20 /* bonding master or slave */
|
||||
#define IFF_SLAVE_NEEDARP 0x40 /* need ARPs for validation */
|
||||
#define IFF_ISATAP 0x80 /* ISATAP interface (RFC4214) */
|
||||
#define IFF_MASTER_ARPMON 0x100 /* bonding master, ARP mon in use */
|
||||
#define IFF_WAN_HDLC 0x200 /* WAN HDLC device */
|
||||
#define IFF_XMIT_DST_RELEASE 0x400 /* dev_hard_start_xmit() is allowed to
|
||||
* release skb->dst
|
||||
*/
|
||||
#define IFF_DONT_BRIDGE 0x800 /* disallow bridging this ether dev */
|
||||
#define IFF_DISABLE_NETPOLL 0x1000 /* disable netpoll at run-time */
|
||||
#define IFF_MACVLAN_PORT 0x2000 /* device used as macvlan port */
|
||||
#define IFF_BRIDGE_PORT 0x4000 /* device used as bridge port */
|
||||
#define IFF_OVS_DATAPATH 0x8000 /* device used as Open vSwitch
|
||||
* datapath port */
|
||||
#define IFF_TX_SKB_SHARING 0x10000 /* The interface supports sharing
|
||||
* skbs on transmit */
|
||||
#define IFF_UNICAST_FLT 0x20000 /* Supports unicast filtering */
|
||||
#define IFF_TEAM_PORT 0x40000 /* device used as team port */
|
||||
#define IFF_SUPP_NOFCS 0x80000 /* device supports sending custom FCS */
|
||||
#define IFF_LIVE_ADDR_CHANGE 0x100000 /* device supports hardware address
|
||||
* change when it's running */
|
||||
#define IFF_MACVLAN 0x200000 /* Macvlan device */
|
||||
|
||||
|
||||
#define IF_GET_IFACE 0x0001 /* for querying only */
|
||||
#define IF_GET_PROTO 0x0002
|
||||
|
||||
|
@ -68,11 +68,11 @@
|
||||
#define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */
|
||||
#define ETH_P_WCCP 0x883E /* Web-cache coordination protocol
|
||||
* defined in draft-wilson-wrec-wccp-v2-00.txt */
|
||||
#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */
|
||||
#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */
|
||||
#define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */
|
||||
#define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */
|
||||
#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */
|
||||
#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */
|
||||
#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */
|
||||
#define ETH_P_LINK_CTL 0x886c /* HPNA, wlan link local tunnel */
|
||||
#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport
|
||||
* over Ethernet
|
||||
@ -89,6 +89,8 @@
|
||||
#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
|
||||
#define ETH_P_TDLS 0x890D /* TDLS */
|
||||
#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
|
||||
#define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */
|
||||
#define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */
|
||||
#define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
#define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
#define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
|
@ -186,6 +186,9 @@ struct tcp_info {
|
||||
__u32 tcpi_rcv_space;
|
||||
|
||||
__u32 tcpi_total_retrans;
|
||||
|
||||
__u64 tcpi_pacing_rate;
|
||||
__u64 tcpi_max_pacing_rate;
|
||||
};
|
||||
|
||||
/* for TCP_MD5SIG socket option */
|
||||
|
@ -11,12 +11,15 @@
|
||||
#define TCP_METRICS_GENL_VERSION 0x1
|
||||
|
||||
enum tcp_metric_index {
|
||||
TCP_METRIC_RTT,
|
||||
TCP_METRIC_RTTVAR,
|
||||
TCP_METRIC_RTT, /* in ms units */
|
||||
TCP_METRIC_RTTVAR, /* in ms units */
|
||||
TCP_METRIC_SSTHRESH,
|
||||
TCP_METRIC_CWND,
|
||||
TCP_METRIC_REORDERING,
|
||||
|
||||
TCP_METRIC_RTT_US, /* in usec units */
|
||||
TCP_METRIC_RTTVAR_US, /* in usec units */
|
||||
|
||||
/* Always last. */
|
||||
__TCP_METRIC_MAX,
|
||||
};
|
||||
|
@ -298,6 +298,8 @@ enum xfrm_attr_type_t {
|
||||
XFRMA_TFCPAD, /* __u32 */
|
||||
XFRMA_REPLAY_ESN_VAL, /* struct xfrm_replay_esn */
|
||||
XFRMA_SA_EXTRA_FLAGS, /* __u32 */
|
||||
XFRMA_PROTO, /* __u8 */
|
||||
XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */
|
||||
__XFRMA_MAX
|
||||
|
||||
#define XFRMA_MAX (__XFRMA_MAX - 1)
|
||||
@ -474,6 +476,14 @@ struct xfrm_user_mapping {
|
||||
__be16 new_sport;
|
||||
};
|
||||
|
||||
struct xfrm_address_filter {
|
||||
xfrm_address_t saddr;
|
||||
xfrm_address_t daddr;
|
||||
__u16 family;
|
||||
__u8 splen;
|
||||
__u8 dplen;
|
||||
};
|
||||
|
||||
/* backwards compatibility for userspace */
|
||||
#define XFRMGRP_ACQUIRE 1
|
||||
#define XFRMGRP_EXPIRE 2
|
||||
|
@ -1136,7 +1136,30 @@ static int xfrm_state_list_or_deleteall(int argc, char **argv, int deleteall)
|
||||
}
|
||||
|
||||
} else {
|
||||
if (rtnl_wilddump_request(&rth, preferred_family, XFRM_MSG_GETSA) < 0) {
|
||||
struct xfrm_address_filter addrfilter = {
|
||||
.saddr = filter.xsinfo.saddr,
|
||||
.daddr = filter.xsinfo.id.daddr,
|
||||
.family = filter.xsinfo.family,
|
||||
.splen = filter.id_src_mask,
|
||||
.dplen = filter.id_dst_mask,
|
||||
};
|
||||
struct {
|
||||
struct nlmsghdr n;
|
||||
char buf[NLMSG_BUF_SIZE];
|
||||
} req = {
|
||||
.n.nlmsg_len = NLMSG_HDRLEN,
|
||||
.n.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST,
|
||||
.n.nlmsg_type = XFRM_MSG_GETSA,
|
||||
.n.nlmsg_seq = rth.dump = ++rth.seq,
|
||||
};
|
||||
|
||||
if (filter.xsinfo.id.proto)
|
||||
addattr8(&req.n, sizeof(req), XFRMA_PROTO,
|
||||
filter.xsinfo.id.proto);
|
||||
addattr_l(&req.n, sizeof(req), XFRMA_ADDRESS_FILTER,
|
||||
&addrfilter, sizeof(addrfilter));
|
||||
|
||||
if (rtnl_send(&rth, (void *)&req, req.n.nlmsg_len) < 0) {
|
||||
perror("Cannot send dump request");
|
||||
exit(1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user