]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@kernel.org>
Fri, 4 Mar 2022 16:10:50 +0000 (09:10 -0700)
committerDavid Ahern <dsahern@kernel.org>
Fri, 4 Mar 2022 16:12:40 +0000 (09:12 -0700)
Update kernel headers to commit:
    1039135aedfc ("net: ethernet: sun: Remove redundant code")

Signed-off-by: David Ahern <dsahern@kernel.org>
include/uapi/linux/bpf.h
include/uapi/linux/if_ether.h
include/uapi/linux/if_link.h
include/uapi/linux/rtnetlink.h
include/uapi/linux/xfrm.h

index 4eb522822d9d1ddee467468c1dcf084dddad4f17..3b05552b3db5814c71bf768a7e5e4d03a549067d 100644 (file)
@@ -5086,6 +5086,37 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure. On error
  *             *dst* buffer is zeroed out.
+ *
+ * long bpf_skb_set_delivery_time(struct sk_buff *skb, u64 dtime, u32 dtime_type)
+ *     Description
+ *             Set a *dtime* (delivery time) to the __sk_buff->tstamp and also
+ *             change the __sk_buff->delivery_time_type to *dtime_type*.
+ *
+ *             When setting a delivery time (non zero *dtime*) to
+ *             __sk_buff->tstamp, only BPF_SKB_DELIVERY_TIME_MONO *dtime_type*
+ *             is supported.  It is the only delivery_time_type that will be
+ *             kept after bpf_redirect_*().
+ *
+ *             If there is no need to change the __sk_buff->delivery_time_type,
+ *             the delivery time can be directly written to __sk_buff->tstamp
+ *             instead.
+ *
+ *             *dtime* 0 and *dtime_type* BPF_SKB_DELIVERY_TIME_NONE
+ *             can be used to clear any delivery time stored in
+ *             __sk_buff->tstamp.
+ *
+ *             Only IPv4 and IPv6 skb->protocol are supported.
+ *
+ *             This function is most useful when it needs to set a
+ *             mono delivery time to __sk_buff->tstamp and then
+ *             bpf_redirect_*() to the egress of an iface.  For example,
+ *             changing the (rcv) timestamp in __sk_buff->tstamp at
+ *             ingress to a mono delivery time and then bpf_redirect_*()
+ *             to sch_fq@phy-dev.
+ *     Return
+ *             0 on success.
+ *             **-EINVAL** for invalid input
+ *             **-EOPNOTSUPP** for unsupported delivery_time_type and protocol
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -5280,6 +5311,7 @@ union bpf_attr {
        FN(xdp_load_bytes),             \
        FN(xdp_store_bytes),            \
        FN(copy_from_user_task),        \
+       FN(skb_set_delivery_time),      \
        /* */
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -5469,6 +5501,12 @@ union {                                  \
        __u64 :64;                      \
 } __attribute__((aligned(8)))
 
+enum {
+       BPF_SKB_DELIVERY_TIME_NONE,
+       BPF_SKB_DELIVERY_TIME_UNSPEC,
+       BPF_SKB_DELIVERY_TIME_MONO,
+};
+
 /* user accessible mirror of in-kernel sk_buff.
  * new fields can only be added to the end of this structure
  */
@@ -5509,7 +5547,8 @@ struct __sk_buff {
        __u32 gso_segs;
        __bpf_md_ptr(struct bpf_sock *, sk);
        __u32 gso_size;
-       __u32 :32;              /* Padding, future use. */
+       __u8  delivery_time_type;
+       __u32 :24;              /* Padding, future use. */
        __u64 hwtstamp;
 };
 
index 804f9b394ac892cf77eaa93ecdb678b33c3cd89b..6fae288c2ca84f10e92231a3e491859780774fd8 100644 (file)
                                         * over Ethernet
                                         */
 #define ETH_P_PAE      0x888E          /* Port Access Entity (IEEE 802.1X) */
+#define ETH_P_PROFINET 0x8892          /* PROFINET                     */
 #define ETH_P_REALTEK  0x8899          /* Multiple proprietary protocols */
 #define ETH_P_AOE      0x88A2          /* ATA over Ethernet            */
+#define ETH_P_ETHERCAT 0x88A4          /* EtherCAT                     */
 #define ETH_P_8021AD   0x88A8          /* 802.1ad Service VLAN         */
 #define ETH_P_802_EX1  0x88B5          /* 802.1 Local Experimental 1.  */
 #define ETH_P_PREAUTH  0x88C7          /* 802.11 Preauthentication */
index 85097a62c3c57cc3ae12367c6d68499cce56df01..5f36ff8e8c26125084bb6db81877e60021708d0e 100644 (file)
@@ -245,6 +245,21 @@ struct rtnl_link_stats64 {
        __u64   rx_nohandler;
 };
 
+/* Subset of link stats useful for in-HW collection. Meaning of the fields is as
+ * for struct rtnl_link_stats64.
+ */
+struct rtnl_hw_stats64 {
+       __u64   rx_packets;
+       __u64   tx_packets;
+       __u64   rx_bytes;
+       __u64   tx_bytes;
+       __u64   rx_errors;
+       __u64   tx_errors;
+       __u64   rx_dropped;
+       __u64   tx_dropped;
+       __u64   multicast;
+};
+
 /* The struct should be in sync with struct ifmap */
 struct rtnl_link_ifmap {
        __u64   mem_start;
@@ -535,6 +550,7 @@ enum {
        IFLA_BRPORT_MRP_IN_OPEN,
        IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
        IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
+       IFLA_BRPORT_LOCKED,
        __IFLA_BRPORT_MAX
 };
 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -710,7 +726,55 @@ enum ipvlan_mode {
 #define IPVLAN_F_PRIVATE       0x01
 #define IPVLAN_F_VEPA          0x02
 
+/* Tunnel RTM header */
+struct tunnel_msg {
+       __u8 family;
+       __u8 flags;
+       __u16 reserved2;
+       __u32 ifindex;
+};
+
 /* VXLAN section */
+
+/* include statistics in the dump */
+#define TUNNEL_MSG_FLAG_STATS  0x01
+
+#define TUNNEL_MSG_VALID_USER_FLAGS TUNNEL_MSG_FLAG_STATS
+
+/* Embedded inside VXLAN_VNIFILTER_ENTRY_STATS */
+enum {
+       VNIFILTER_ENTRY_STATS_UNSPEC,
+       VNIFILTER_ENTRY_STATS_RX_BYTES,
+       VNIFILTER_ENTRY_STATS_RX_PKTS,
+       VNIFILTER_ENTRY_STATS_RX_DROPS,
+       VNIFILTER_ENTRY_STATS_RX_ERRORS,
+       VNIFILTER_ENTRY_STATS_TX_BYTES,
+       VNIFILTER_ENTRY_STATS_TX_PKTS,
+       VNIFILTER_ENTRY_STATS_TX_DROPS,
+       VNIFILTER_ENTRY_STATS_TX_ERRORS,
+       VNIFILTER_ENTRY_STATS_PAD,
+       __VNIFILTER_ENTRY_STATS_MAX
+};
+#define VNIFILTER_ENTRY_STATS_MAX (__VNIFILTER_ENTRY_STATS_MAX - 1)
+
+enum {
+       VXLAN_VNIFILTER_ENTRY_UNSPEC,
+       VXLAN_VNIFILTER_ENTRY_START,
+       VXLAN_VNIFILTER_ENTRY_END,
+       VXLAN_VNIFILTER_ENTRY_GROUP,
+       VXLAN_VNIFILTER_ENTRY_GROUP6,
+       VXLAN_VNIFILTER_ENTRY_STATS,
+       __VXLAN_VNIFILTER_ENTRY_MAX
+};
+#define VXLAN_VNIFILTER_ENTRY_MAX      (__VXLAN_VNIFILTER_ENTRY_MAX - 1)
+
+enum {
+       VXLAN_VNIFILTER_UNSPEC,
+       VXLAN_VNIFILTER_ENTRY,
+       __VXLAN_VNIFILTER_MAX
+};
+#define VXLAN_VNIFILTER_MAX    (__VXLAN_VNIFILTER_MAX - 1)
+
 enum {
        IFLA_VXLAN_UNSPEC,
        IFLA_VXLAN_ID,
@@ -742,6 +806,7 @@ enum {
        IFLA_VXLAN_GPE,
        IFLA_VXLAN_TTL_INHERIT,
        IFLA_VXLAN_DF,
+       IFLA_VXLAN_VNIFILTER, /* only applicable with COLLECT_METADATA mode */
        __IFLA_VXLAN_MAX
 };
 #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
@@ -1155,6 +1220,17 @@ enum {
 
 #define IFLA_STATS_FILTER_BIT(ATTR)    (1 << (ATTR - 1))
 
+enum {
+       IFLA_STATS_GETSET_UNSPEC,
+       IFLA_STATS_GET_FILTERS, /* Nest of IFLA_STATS_LINK_xxx, each a u32 with
+                                * a filter mask for the corresponding group.
+                                */
+       IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS, /* 0 or 1 as u8 */
+       __IFLA_STATS_GETSET_MAX,
+};
+
+#define IFLA_STATS_GETSET_MAX (__IFLA_STATS_GETSET_MAX - 1)
+
 /* These are embedded into IFLA_STATS_LINK_XSTATS:
  * [IFLA_STATS_LINK_XSTATS]
  * -> [LINK_XSTATS_TYPE_xxx]
@@ -1172,10 +1248,21 @@ enum {
 enum {
        IFLA_OFFLOAD_XSTATS_UNSPEC,
        IFLA_OFFLOAD_XSTATS_CPU_HIT, /* struct rtnl_link_stats64 */
+       IFLA_OFFLOAD_XSTATS_HW_S_INFO,  /* HW stats info. A nest */
+       IFLA_OFFLOAD_XSTATS_L3_STATS,   /* struct rtnl_hw_stats64 */
        __IFLA_OFFLOAD_XSTATS_MAX
 };
 #define IFLA_OFFLOAD_XSTATS_MAX (__IFLA_OFFLOAD_XSTATS_MAX - 1)
 
+enum {
+       IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC,
+       IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST,          /* u8 */
+       IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED,             /* u8 */
+       __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX,
+};
+#define IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX \
+       (__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX - 1)
+
 /* XDP section */
 
 #define XDP_FLAGS_UPDATE_IF_NOEXIST    (1U << 0)
index 80bc1040838298e3075ab76a45588e7b2f524cfb..0b3358d75efa96f47ade58a10bc971b09d4e55ef 100644 (file)
@@ -146,6 +146,8 @@ enum {
 #define RTM_NEWSTATS RTM_NEWSTATS
        RTM_GETSTATS = 94,
 #define RTM_GETSTATS RTM_GETSTATS
+       RTM_SETSTATS,
+#define RTM_SETSTATS RTM_SETSTATS
 
        RTM_NEWCACHEREPORT = 96,
 #define RTM_NEWCACHEREPORT RTM_NEWCACHEREPORT
@@ -185,6 +187,13 @@ enum {
        RTM_GETNEXTHOPBUCKET,
 #define RTM_GETNEXTHOPBUCKET   RTM_GETNEXTHOPBUCKET
 
+       RTM_NEWTUNNEL = 120,
+#define RTM_NEWTUNNEL  RTM_NEWTUNNEL
+       RTM_DELTUNNEL,
+#define RTM_DELTUNNEL  RTM_DELTUNNEL
+       RTM_GETTUNNEL,
+#define RTM_GETTUNNEL  RTM_GETTUNNEL
+
        __RTM_MAX,
 #define RTM_MAX                (((__RTM_MAX + 3) & ~3) - 1)
 };
@@ -754,6 +763,10 @@ enum rtnetlink_groups {
 #define RTNLGRP_BRVLAN         RTNLGRP_BRVLAN
        RTNLGRP_MCTP_IFADDR,
 #define RTNLGRP_MCTP_IFADDR    RTNLGRP_MCTP_IFADDR
+       RTNLGRP_TUNNEL,
+#define RTNLGRP_TUNNEL         RTNLGRP_TUNNEL
+       RTNLGRP_STATS,
+#define RTNLGRP_STATS          RTNLGRP_STATS
        __RTNLGRP_MAX
 };
 #define RTNLGRP_MAX    (__RTNLGRP_MAX - 1)
index 3ffa107c70507fbc069079ab0fb315747dc5e85d..06ad9afb5f2987744fc4518b5af9a51349d10549 100644 (file)
@@ -511,6 +511,12 @@ struct xfrm_user_offload {
        int                             ifindex;
        __u8                            flags;
 };
+/* This flag was exposed without any kernel code that supporting it.
+ * Unfortunately, strongswan has the code that uses sets this flag,
+ * which makes impossible to reuse this bit.
+ *
+ * So leave it here to make sure that it won't be reused by mistake.
+ */
 #define XFRM_OFFLOAD_IPV6      1
 #define XFRM_OFFLOAD_INBOUND   2