]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@gmail.com>
Tue, 29 Sep 2020 15:13:21 +0000 (09:13 -0600)
committerDavid Ahern <dsahern@gmail.com>
Tue, 29 Sep 2020 15:13:21 +0000 (09:13 -0600)
Update kernel headers to commit:
    280095713ce2 ("Merge branch 'ibmvnic-refactor-some-send-handle-functions'")

Signed-off-by: David Ahern <dsahern@gmail.com>
include/uapi/linux/bpf.h
include/uapi/linux/devlink.h
include/uapi/linux/if_bridge.h

index 7f54a9ff75381d246f0a53897f6179ed47a8c031..0a2cbf2ddf15d5b32aa11708aa719feb97ea84fa 100644 (file)
@@ -124,6 +124,7 @@ enum bpf_cmd {
        BPF_ENABLE_STATS,
        BPF_ITER_CREATE,
        BPF_LINK_DETACH,
+       BPF_PROG_BIND_MAP,
 };
 
 enum bpf_map_type {
@@ -658,6 +659,12 @@ union bpf_attr {
                __u32           flags;
        } iter_create;
 
+       struct { /* struct used by BPF_PROG_BIND_MAP command */
+               __u32           prog_fd;
+               __u32           map_fd;
+               __u32           flags;          /* extra flags */
+       } prog_bind_map;
+
 } __attribute__((aligned(8)));
 
 /* The description below is an attempt at providing documentation to eBPF
@@ -1447,8 +1454,8 @@ union bpf_attr {
  *     Return
  *             The return value depends on the result of the test, and can be:
  *
- *             * 0, if the *skb* task belongs to the cgroup2.
- *             * 1, if the *skb* task does not belong to the cgroup2.
+ *             * 0, if current task belongs to the cgroup2.
+ *             * 1, if current task does not belong to the cgroup2.
  *             * A negative error code, if an error occurred.
  *
  * long bpf_skb_change_tail(struct sk_buff *skb, u32 len, u64 flags)
@@ -3349,38 +3356,38 @@ union bpf_attr {
  *     Description
  *             Dynamically cast a *sk* pointer to a *tcp6_sock* pointer.
  *     Return
- *             *sk* if casting is valid, or NULL otherwise.
+ *             *sk* if casting is valid, or **NULL** otherwise.
  *
  * struct tcp_sock *bpf_skc_to_tcp_sock(void *sk)
  *     Description
  *             Dynamically cast a *sk* pointer to a *tcp_sock* pointer.
  *     Return
- *             *sk* if casting is valid, or NULL otherwise.
+ *             *sk* if casting is valid, or **NULL** otherwise.
  *
  * struct tcp_timewait_sock *bpf_skc_to_tcp_timewait_sock(void *sk)
  *     Description
  *             Dynamically cast a *sk* pointer to a *tcp_timewait_sock* pointer.
  *     Return
- *             *sk* if casting is valid, or NULL otherwise.
+ *             *sk* if casting is valid, or **NULL** otherwise.
  *
  * struct tcp_request_sock *bpf_skc_to_tcp_request_sock(void *sk)
  *     Description
  *             Dynamically cast a *sk* pointer to a *tcp_request_sock* pointer.
  *     Return
- *             *sk* if casting is valid, or NULL otherwise.
+ *             *sk* if casting is valid, or **NULL** otherwise.
  *
  * struct udp6_sock *bpf_skc_to_udp6_sock(void *sk)
  *     Description
  *             Dynamically cast a *sk* pointer to a *udp6_sock* pointer.
  *     Return
- *             *sk* if casting is valid, or NULL otherwise.
+ *             *sk* if casting is valid, or **NULL** otherwise.
  *
  * long bpf_get_task_stack(struct task_struct *task, void *buf, u32 size, u64 flags)
  *     Description
  *             Return a user or a kernel stack in bpf program provided buffer.
  *             To achieve this, the helper needs *task*, which is a valid
- *             pointer to struct task_struct. To store the stacktrace, the
- *             bpf program provides *buf* with a nonnegative *size*.
+ *             pointer to **struct task_struct**. To store the stacktrace, the
+ *             bpf program provides *buf* with a nonnegative *size*.
  *
  *             The last argument, *flags*, holds the number of stack frames to
  *             skip (from 0 to 255), masked with
@@ -3410,12 +3417,12 @@ union bpf_attr {
  * long bpf_load_hdr_opt(struct bpf_sock_ops *skops, void *searchby_res, u32 len, u64 flags)
  *     Description
  *             Load header option.  Support reading a particular TCP header
- *             option for bpf program (BPF_PROG_TYPE_SOCK_OPS).
+ *             option for bpf program (**BPF_PROG_TYPE_SOCK_OPS**).
  *
  *             If *flags* is 0, it will search the option from the
- *             sock_ops->skb_data.  The comment in "struct bpf_sock_ops"
+ *             *skops*\ **->skb_data**.  The comment in **struct bpf_sock_ops**
  *             has details on what skb_data contains under different
- *             sock_ops->op.
+ *             *skops*\ **->op**.
  *
  *             The first byte of the *searchby_res* specifies the
  *             kind that it wants to search.
@@ -3435,7 +3442,7 @@ union bpf_attr {
  *             [ 254, 4, 0xeB, 0x9F, 0, 0, .... 0 ].
  *
  *             To search for the standard window scale option (3),
- *             the searchby_res should be [ 3, 0, 0, .... 0 ].
+ *             the *searchby_res* should be [ 3, 0, 0, .... 0 ].
  *             Note, kind-length must be 0 for regular option.
  *
  *             Searching for No-Op (0) and End-of-Option-List (1) are
@@ -3445,27 +3452,30 @@ union bpf_attr {
  *             of a header option.
  *
  *             Supported flags:
+ *
  *             * **BPF_LOAD_HDR_OPT_TCP_SYN** to search from the
  *               saved_syn packet or the just-received syn packet.
  *
  *     Return
- *             >0 when found, the header option is copied to *searchby_res*.
- *             The return value is the total length copied.
+ *             > 0 when found, the header option is copied to *searchby_res*.
+ *             The return value is the total length copied. On failure, a
+ *             negative error code is returned:
  *
- *             **-EINVAL** If param is invalid
+ *             **-EINVAL** if a parameter is invalid.
  *
- *             **-ENOMSG** The option is not found
+ *             **-ENOMSG** if the option is not found.
  *
- *             **-ENOENT** No syn packet available when
- *                         **BPF_LOAD_HDR_OPT_TCP_SYN** is used
+ *             **-ENOENT** if no syn packet is available when
+ *             **BPF_LOAD_HDR_OPT_TCP_SYN** is used.
  *
- *             **-ENOSPC** Not enough space.  Only *len* number of
- *                         bytes are copied.
+ *             **-ENOSPC** if there is not enough space.  Only *len* number of
+ *             bytes are copied.
  *
- *             **-EFAULT** Cannot parse the header options in the packet
+ *             **-EFAULT** on failure to parse the header options in the
+ *             packet.
  *
- *             **-EPERM** This helper cannot be used under the
- *                        current sock_ops->op.
+ *             **-EPERM** if the helper cannot be used under the current
+ *             *skops*\ **->op**.
  *
  * long bpf_store_hdr_opt(struct bpf_sock_ops *skops, const void *from, u32 len, u64 flags)
  *     Description
@@ -3483,44 +3493,44 @@ union bpf_attr {
  *             by searching the same option in the outgoing skb.
  *
  *             This helper can only be called during
- *             BPF_SOCK_OPS_WRITE_HDR_OPT_CB.
+ *             **BPF_SOCK_OPS_WRITE_HDR_OPT_CB**.
  *
  *     Return
  *             0 on success, or negative error in case of failure:
  *
- *             **-EINVAL** If param is invalid
+ *             **-EINVAL** If param is invalid.
  *
- *             **-ENOSPC** Not enough space in the header.
- *                         Nothing has been written
+ *             **-ENOSPC** if there is not enough space in the header.
+ *             Nothing has been written
  *
- *             **-EEXIST** The option has already existed
+ *             **-EEXIST** if the option already exists.
  *
- *             **-EFAULT** Cannot parse the existing header options
+ *             **-EFAULT** on failrue to parse the existing header options.
  *
- *             **-EPERM** This helper cannot be used under the
- *                        current sock_ops->op.
+ *             **-EPERM** if the helper cannot be used under the current
+ *             *skops*\ **->op**.
  *
  * long bpf_reserve_hdr_opt(struct bpf_sock_ops *skops, u32 len, u64 flags)
  *     Description
  *             Reserve *len* bytes for the bpf header option.  The
- *             space will be used by bpf_store_hdr_opt() later in
- *             BPF_SOCK_OPS_WRITE_HDR_OPT_CB.
+ *             space will be used by **bpf_store_hdr_opt**\ () later in
+ *             **BPF_SOCK_OPS_WRITE_HDR_OPT_CB**.
  *
- *             If bpf_reserve_hdr_opt() is called multiple times,
+ *             If **bpf_reserve_hdr_opt**\ () is called multiple times,
  *             the total number of bytes will be reserved.
  *
  *             This helper can only be called during
- *             BPF_SOCK_OPS_HDR_OPT_LEN_CB.
+ *             **BPF_SOCK_OPS_HDR_OPT_LEN_CB**.
  *
  *     Return
  *             0 on success, or negative error in case of failure:
  *
- *             **-EINVAL** if param is invalid
+ *             **-EINVAL** if a parameter is invalid.
  *
- *             **-ENOSPC** Not enough space in the header.
+ *             **-ENOSPC** if there is not enough space in the header.
  *
- *             **-EPERM** This helper cannot be used under the
- *                        current sock_ops->op.
+ *             **-EPERM** if the helper cannot be used under the current
+ *             *skops*\ **->op**.
  *
  * void *bpf_inode_storage_get(struct bpf_map *map, void *inode, void *value, u64 flags)
  *     Description
@@ -3560,9 +3570,9 @@ union bpf_attr {
  *
  * long bpf_d_path(struct path *path, char *buf, u32 sz)
  *     Description
- *             Return full path for given 'struct path' object, which
- *             needs to be the kernel BTF 'path' object. The path is
- *             returned in the provided buffer 'buf' of size 'sz' and
+ *             Return full path for given **struct path** object, which
+ *             needs to be the kernel BTF *path* object. The path is
+ *             returned in the provided buffer *buf* of size *sz* and
  *             is zero terminated.
  *
  *     Return
@@ -3573,7 +3583,7 @@ union bpf_attr {
  * long bpf_copy_from_user(void *dst, u32 size, const void *user_ptr)
  *     Description
  *             Read *size* bytes from user space address *user_ptr* and store
- *             the data in *dst*. This is a wrapper of copy_from_user().
+ *             the data in *dst*. This is a wrapper of **copy_from_user**\ ().
  *     Return
  *             0 on success, or a negative error in case of failure.
  */
index a08c84cb1f9a0bf711e1771bcafe74ef2b2c6a24..39f5cadc7f07c054c09cc90c11150728e10e4da9 100644 (file)
@@ -230,6 +230,28 @@ enum {
        DEVLINK_ATTR_STATS_MAX = __DEVLINK_ATTR_STATS_MAX - 1
 };
 
+/* Specify what sections of a flash component can be overwritten when
+ * performing an update. Overwriting of firmware binary sections is always
+ * implicitly assumed to be allowed.
+ *
+ * Each section must be documented in
+ * Documentation/networking/devlink/devlink-flash.rst
+ *
+ */
+enum {
+       DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT,
+       DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT,
+
+       __DEVLINK_FLASH_OVERWRITE_MAX_BIT,
+       DEVLINK_FLASH_OVERWRITE_MAX_BIT = __DEVLINK_FLASH_OVERWRITE_MAX_BIT - 1
+};
+
+#define DEVLINK_FLASH_OVERWRITE_SETTINGS _BITUL(DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT)
+#define DEVLINK_FLASH_OVERWRITE_IDENTIFIERS _BITUL(DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT)
+
+#define DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS \
+       (_BITUL(__DEVLINK_FLASH_OVERWRITE_MAX_BIT) - 1)
+
 /**
  * enum devlink_trap_action - Packet trap action.
  * @DEVLINK_TRAP_ACTION_DROP: Packet is dropped by the device and a copy is not
@@ -464,6 +486,7 @@ enum devlink_attr {
        DEVLINK_ATTR_PORT_CONTROLLER_NUMBER,    /* u32 */
 
        DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT,       /* u64 */
+       DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK,       /* bitfield32 */
 
        /* add new attributes above here, update the policy in devlink.c */
 
index bb01f8e919e885955f4e84420f718c9d757e867d..69b99901fc5ae76d597b4a7745c24f49b41d7655 100644 (file)
@@ -457,6 +457,8 @@ enum {
        MDBA_MDB_EATTR_TIMER,
        MDBA_MDB_EATTR_SRC_LIST,
        MDBA_MDB_EATTR_GROUP_MODE,
+       MDBA_MDB_EATTR_SOURCE,
+       MDBA_MDB_EATTR_RTPROT,
        __MDBA_MDB_EATTR_MAX
 };
 #define MDBA_MDB_EATTR_MAX (__MDBA_MDB_EATTR_MAX - 1)
@@ -516,6 +518,8 @@ struct br_mdb_entry {
        __u8 state;
 #define MDB_FLAGS_OFFLOAD      (1 << 0)
 #define MDB_FLAGS_FAST_LEAVE   (1 << 1)
+#define MDB_FLAGS_STAR_EXCL    (1 << 2)
+#define MDB_FLAGS_BLOCKED      (1 << 3)
        __u8 flags;
        __u16 vid;
        struct {
@@ -530,10 +534,23 @@ struct br_mdb_entry {
 enum {
        MDBA_SET_ENTRY_UNSPEC,
        MDBA_SET_ENTRY,
+       MDBA_SET_ENTRY_ATTRS,
        __MDBA_SET_ENTRY_MAX,
 };
 #define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1)
 
+/* [MDBA_SET_ENTRY_ATTRS] = {
+ *    [MDBE_ATTR_xxx]
+ *    ...
+ * }
+ */
+enum {
+       MDBE_ATTR_UNSPEC,
+       MDBE_ATTR_SOURCE,
+       __MDBE_ATTR_MAX,
+};
+#define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1)
+
 /* Embedded inside LINK_XSTATS_TYPE_BRIDGE */
 enum {
        BRIDGE_XSTATS_UNSPEC,