]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@kernel.org>
Mon, 2 Aug 2021 16:25:09 +0000 (10:25 -0600)
committerStephen Hemminger <stephen@networkplumber.org>
Wed, 1 Sep 2021 19:51:44 +0000 (12:51 -0700)
Update kernel headers to commit:
    1187c8c4642d ("net: phy: mscc: make some arrays static const, makes object smaller")

Signed-off-by: David Ahern <dsahern@kernel.org>
include/uapi/linux/bpf.h
include/uapi/linux/if_arp.h
include/uapi/linux/if_bridge.h
include/uapi/linux/if_ether.h
include/uapi/linux/if_link.h
include/uapi/linux/in.h
include/uapi/linux/in6.h
include/uapi/linux/lwtunnel.h
include/uapi/linux/pkt_cls.h
include/uapi/linux/tc_act/tc_skbmod.h

index f4bdc0e52ddf7a3d08c09829150145ad7fe88a47..dd5475725e1e237d0e0421d807fb021a2e57618d 100644 (file)
@@ -324,9 +324,6 @@ union bpf_iter_link_info {
  *             **BPF_PROG_TYPE_SK_LOOKUP**
  *                     *data_in* and *data_out* must be NULL.
  *
- *             **BPF_PROG_TYPE_XDP**
- *                     *ctx_in* and *ctx_out* must be NULL.
- *
  *             **BPF_PROG_TYPE_RAW_TRACEPOINT**,
  *             **BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE**
  *
@@ -3249,7 +3246,7 @@ union bpf_attr {
  * long bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
  *     Description
  *             Select a **SO_REUSEPORT** socket from a
- *             **BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*.
+ *             **BPF_MAP_TYPE_REUSEPORT_SOCKARRAY** *map*.
  *             It checks the selected socket is matching the incoming
  *             request in the socket buffer.
  *     Return
@@ -4780,6 +4777,76 @@ union bpf_attr {
  *             Execute close syscall for given FD.
  *     Return
  *             A syscall result.
+ *
+ * long bpf_timer_init(struct bpf_timer *timer, struct bpf_map *map, u64 flags)
+ *     Description
+ *             Initialize the timer.
+ *             First 4 bits of *flags* specify clockid.
+ *             Only CLOCK_MONOTONIC, CLOCK_REALTIME, CLOCK_BOOTTIME are allowed.
+ *             All other bits of *flags* are reserved.
+ *             The verifier will reject the program if *timer* is not from
+ *             the same *map*.
+ *     Return
+ *             0 on success.
+ *             **-EBUSY** if *timer* is already initialized.
+ *             **-EINVAL** if invalid *flags* are passed.
+ *             **-EPERM** if *timer* is in a map that doesn't have any user references.
+ *             The user space should either hold a file descriptor to a map with timers
+ *             or pin such map in bpffs. When map is unpinned or file descriptor is
+ *             closed all timers in the map will be cancelled and freed.
+ *
+ * long bpf_timer_set_callback(struct bpf_timer *timer, void *callback_fn)
+ *     Description
+ *             Configure the timer to call *callback_fn* static function.
+ *     Return
+ *             0 on success.
+ *             **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier.
+ *             **-EPERM** if *timer* is in a map that doesn't have any user references.
+ *             The user space should either hold a file descriptor to a map with timers
+ *             or pin such map in bpffs. When map is unpinned or file descriptor is
+ *             closed all timers in the map will be cancelled and freed.
+ *
+ * long bpf_timer_start(struct bpf_timer *timer, u64 nsecs, u64 flags)
+ *     Description
+ *             Set timer expiration N nanoseconds from the current time. The
+ *             configured callback will be invoked in soft irq context on some cpu
+ *             and will not repeat unless another bpf_timer_start() is made.
+ *             In such case the next invocation can migrate to a different cpu.
+ *             Since struct bpf_timer is a field inside map element the map
+ *             owns the timer. The bpf_timer_set_callback() will increment refcnt
+ *             of BPF program to make sure that callback_fn code stays valid.
+ *             When user space reference to a map reaches zero all timers
+ *             in a map are cancelled and corresponding program's refcnts are
+ *             decremented. This is done to make sure that Ctrl-C of a user
+ *             process doesn't leave any timers running. If map is pinned in
+ *             bpffs the callback_fn can re-arm itself indefinitely.
+ *             bpf_map_update/delete_elem() helpers and user space sys_bpf commands
+ *             cancel and free the timer in the given map element.
+ *             The map can contain timers that invoke callback_fn-s from different
+ *             programs. The same callback_fn can serve different timers from
+ *             different maps if key/value layout matches across maps.
+ *             Every bpf_timer_set_callback() can have different callback_fn.
+ *
+ *     Return
+ *             0 on success.
+ *             **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier
+ *             or invalid *flags* are passed.
+ *
+ * long bpf_timer_cancel(struct bpf_timer *timer)
+ *     Description
+ *             Cancel the timer and wait for callback_fn to finish if it was running.
+ *     Return
+ *             0 if the timer was not active.
+ *             1 if the timer was active.
+ *             **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier.
+ *             **-EDEADLK** if callback_fn tried to call bpf_timer_cancel() on its
+ *             own timer which would have led to a deadlock otherwise.
+ *
+ * u64 bpf_get_func_ip(void *ctx)
+ *     Description
+ *             Get address of the traced function (for tracing and kprobe programs).
+ *     Return
+ *             Address of the traced function.
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -4951,6 +5018,11 @@ union bpf_attr {
        FN(sys_bpf),                    \
        FN(btf_find_by_name_kind),      \
        FN(sys_close),                  \
+       FN(timer_init),                 \
+       FN(timer_set_callback),         \
+       FN(timer_start),                \
+       FN(timer_cancel),               \
+       FN(get_func_ip),                \
        /* */
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -6077,6 +6149,11 @@ struct bpf_spin_lock {
        __u32   val;
 };
 
+struct bpf_timer {
+       __u64 :64;
+       __u64 :64;
+} __attribute__((aligned(8)));
+
 struct bpf_sysctl {
        __u32   write;          /* Sysctl is being read (= 0) or written (= 1).
                                 * Allows 1,2,4-byte read, but no write.
index dbfbc227deb8ed7d2e4b696e601e40f838bf57e3..12d06bb6d87d995d9f85449a64a3009ce43ca957 100644 (file)
@@ -54,6 +54,7 @@
 #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
index 2298a43f7562699652bd524ae31d2ab81d77f687..907745f47dec8745eadd3416885ea2dd2b5812fe 100644 (file)
@@ -479,16 +479,22 @@ enum {
 
 /* flags used in BRIDGE_VLANDB_DUMP_FLAGS attribute to affect dumps */
 #define BRIDGE_VLANDB_DUMPF_STATS      (1 << 0) /* Include stats in the dump */
+#define BRIDGE_VLANDB_DUMPF_GLOBAL     (1 << 1) /* Dump global vlan options only */
 
 /* Bridge vlan RTM attributes
  * [BRIDGE_VLANDB_ENTRY] = {
  *     [BRIDGE_VLANDB_ENTRY_INFO]
  *     ...
  * }
+ * [BRIDGE_VLANDB_GLOBAL_OPTIONS] = {
+ *     [BRIDGE_VLANDB_GOPTS_ID]
+ *     ...
+ * }
  */
 enum {
        BRIDGE_VLANDB_UNSPEC,
        BRIDGE_VLANDB_ENTRY,
+       BRIDGE_VLANDB_GLOBAL_OPTIONS,
        __BRIDGE_VLANDB_MAX,
 };
 #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1)
@@ -538,6 +544,15 @@ enum {
 };
 #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
 
+enum {
+       BRIDGE_VLANDB_GOPTS_UNSPEC,
+       BRIDGE_VLANDB_GOPTS_ID,
+       BRIDGE_VLANDB_GOPTS_RANGE,
+       BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING,
+       __BRIDGE_VLANDB_GOPTS_MAX
+};
+#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1)
+
 /* Bridge multicast database attributes
  * [MDBA_MDB] = {
  *     [MDBA_MDB_ENTRY] = {
@@ -629,6 +644,7 @@ enum {
        MDBA_ROUTER_PATTR_TYPE,
        MDBA_ROUTER_PATTR_INET_TIMER,
        MDBA_ROUTER_PATTR_INET6_TIMER,
+       MDBA_ROUTER_PATTR_VID,
        __MDBA_ROUTER_PATTR_MAX
 };
 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
@@ -720,12 +736,14 @@ struct br_mcast_stats {
 
 /* bridge boolean options
  * BR_BOOLOPT_NO_LL_LEARN - disable learning from link-local packets
+ * BR_BOOLOPT_MCAST_VLAN_SNOOPING - control vlan multicast snooping
  *
  * IMPORTANT: if adding a new option do not forget to handle
  *            it in br_boolopt_toggle/get and bridge sysfs
  */
 enum br_boolopt_id {
        BR_BOOLOPT_NO_LL_LEARN,
+       BR_BOOLOPT_MCAST_VLAN_SNOOPING,
        BR_BOOLOPT_MAX
 };
 
index 8e6f2c3f4876873bb59be479cca0c932d73e7594..84e01c081ae8377c60a2720570aa0c7490f03bf2 100644 (file)
 #define ETH_P_MAP      0x00F9          /* Qualcomm multiplexing and
                                         * aggregation protocol
                                         */
+#define ETH_P_MCTP     0x00FA          /* Management component transport
+                                        * protocol packets
+                                        */
 
 /*
  *     This is an Ethernet frame header.
index 5195ed93eff465d135d80a860de942da1f2304e2..62512efc4f73eae618ef7922092f8b3ca9849ea2 100644 (file)
@@ -1258,4 +1258,14 @@ struct ifla_rmnet_flags {
        __u32   mask;
 };
 
+/* MCTP section */
+
+enum {
+       IFLA_MCTP_UNSPEC,
+       IFLA_MCTP_NET,
+       __IFLA_MCTP_MAX,
+};
+
+#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
+
 #endif /* _LINUX_IF_LINK_H */
index 5b15419dea3482de729c79fb0892786b072d044f..8e2de9fccccbb3298e6d12ac5c5c35506408cfe5 100644 (file)
@@ -188,11 +188,22 @@ struct ip_mreq_source {
 };
 
 struct ip_msfilter {
-       __be32          imsf_multiaddr;
-       __be32          imsf_interface;
-       __u32           imsf_fmode;
-       __u32           imsf_numsrc;
-       __be32          imsf_slist[1];
+       union {
+               struct {
+                       __be32          imsf_multiaddr_aux;
+                       __be32          imsf_interface_aux;
+                       __u32           imsf_fmode_aux;
+                       __u32           imsf_numsrc_aux;
+                       __be32          imsf_slist[1];
+               };
+               struct {
+                       __be32          imsf_multiaddr;
+                       __be32          imsf_interface;
+                       __u32           imsf_fmode;
+                       __u32           imsf_numsrc;
+                       __be32          imsf_slist_flex[];
+               };
+       };
 };
 
 #define IP_MSFILTER_SIZE(numsrc) \
index 7e3a58e6040f28156d4818d60c08000999c2d236..a17363e043bdace46d4abc014e4640466ef618dc 100644 (file)
@@ -145,6 +145,7 @@ struct in6_flowlabel_req {
 #define IPV6_TLV_PADN          1
 #define IPV6_TLV_ROUTERALERT   5
 #define IPV6_TLV_CALIPSO       7       /* RFC 5570 */
+#define IPV6_TLV_IOAM          49      /* TEMPORARY IANA allocation for IOAM */
 #define IPV6_TLV_JUMBO         194
 #define IPV6_TLV_HAO           201     /* home address option */
 
index b7c0191fd1b5f240291dc24dcc525a2520d19b81..78f0ecd1fe8e091af5cc051bc5b2ddac403ddd37 100644 (file)
@@ -14,6 +14,7 @@ enum lwtunnel_encap_types {
        LWTUNNEL_ENCAP_BPF,
        LWTUNNEL_ENCAP_SEG6_LOCAL,
        LWTUNNEL_ENCAP_RPL,
+       LWTUNNEL_ENCAP_IOAM6,
        __LWTUNNEL_ENCAP_MAX,
 };
 
index 025c40fef93d82a7fec026bc34a58b6dcae2d190..6836ccb9c45dcba1e0f9e89061d39a1e2409a28a 100644 (file)
@@ -22,6 +22,7 @@ enum {
        __TCA_ACT_MAX
 };
 
+/* See other TCA_ACT_FLAGS_ * flags in include/net/act_api.h. */
 #define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 /* Don't use percpu allocator for
                                         * actions stats.
                                         */
index c525b3503797d4b7ddb278915cd70b34996372ec..af6ef2cfbf3db8ef86937c4c9c85bfc7451c9b04 100644 (file)
@@ -17,6 +17,7 @@
 #define SKBMOD_F_SMAC  0x2
 #define SKBMOD_F_ETYPE 0x4
 #define SKBMOD_F_SWAPMAC 0x8
+#define SKBMOD_F_ECN   0x10
 
 struct tc_skbmod {
        tc_gen;