]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@gmail.com>
Sat, 4 May 2019 16:13:26 +0000 (09:13 -0700)
committerDavid Ahern <dsahern@gmail.com>
Sat, 4 May 2019 16:13:26 +0000 (09:13 -0700)
Update kernel headers to commit
   a734d1f4c2fc ("net: openvswitch: return an error instead of doing BUG_ON()")

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

index fcfd7e3c52b2deccf772020914a4656a7888a37b..4ba5a99207ef4e525b45ccb9717448d6e1a7ad59 100644 (file)
@@ -133,6 +133,7 @@ enum bpf_map_type {
        BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
        BPF_MAP_TYPE_QUEUE,
        BPF_MAP_TYPE_STACK,
+       BPF_MAP_TYPE_SK_STORAGE,
 };
 
 /* Note that tracing related programs such as
@@ -168,6 +169,7 @@ enum bpf_prog_type {
        BPF_PROG_TYPE_SK_REUSEPORT,
        BPF_PROG_TYPE_FLOW_DISSECTOR,
        BPF_PROG_TYPE_CGROUP_SYSCTL,
+       BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,
 };
 
 enum bpf_attach_type {
@@ -2629,6 +2631,42 @@ union bpf_attr {
  *             was provided.
  *
  *             **-ERANGE** if resulting value was out of range.
+ *
+ * void *bpf_sk_storage_get(struct bpf_map *map, struct bpf_sock *sk, void *value, u64 flags)
+ *     Description
+ *             Get a bpf-local-storage from a sk.
+ *
+ *             Logically, it could be thought of getting the value from
+ *             a *map* with *sk* as the **key**.  From this
+ *             perspective,  the usage is not much different from
+ *             **bpf_map_lookup_elem(map, &sk)** except this
+ *             helper enforces the key must be a **bpf_fullsock()**
+ *             and the map must be a BPF_MAP_TYPE_SK_STORAGE also.
+ *
+ *             Underneath, the value is stored locally at *sk* instead of
+ *             the map.  The *map* is used as the bpf-local-storage **type**.
+ *             The bpf-local-storage **type** (i.e. the *map*) is searched
+ *             against all bpf-local-storages residing at sk.
+ *
+ *             An optional *flags* (BPF_SK_STORAGE_GET_F_CREATE) can be
+ *             used such that a new bpf-local-storage will be
+ *             created if one does not exist.  *value* can be used
+ *             together with BPF_SK_STORAGE_GET_F_CREATE to specify
+ *             the initial value of a bpf-local-storage.  If *value* is
+ *             NULL, the new bpf-local-storage will be zero initialized.
+ *     Return
+ *             A bpf-local-storage pointer is returned on success.
+ *
+ *             **NULL** if not found or there was an error in adding
+ *             a new bpf-local-storage.
+ *
+ * int bpf_sk_storage_delete(struct bpf_map *map, struct bpf_sock *sk)
+ *     Description
+ *             Delete a bpf-local-storage from a sk.
+ *     Return
+ *             0 on success.
+ *
+ *             **-ENOENT** if the bpf-local-storage cannot be found.
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -2737,7 +2775,9 @@ union bpf_attr {
        FN(sysctl_get_new_value),       \
        FN(sysctl_set_new_value),       \
        FN(strtol),                     \
-       FN(strtoul),
+       FN(strtoul),                    \
+       FN(sk_storage_get),             \
+       FN(sk_storage_delete),
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
  * function eBPF program intends to call
@@ -2813,6 +2853,9 @@ enum bpf_func_id {
 /* BPF_FUNC_sysctl_get_name flags. */
 #define BPF_F_SYSCTL_BASE_NAME         (1ULL << 0)
 
+/* BPF_FUNC_sk_storage_get flags */
+#define BPF_SK_STORAGE_GET_F_CREATE    (1ULL << 0)
+
 /* Mode for BPF_FUNC_skb_adjust_room helper. */
 enum bpf_adj_room_mode {
        BPF_ADJ_ROOM_NET,
index 8c36f63e6a38f9117504098a3676d3b1653af962..18c5b68bddee688eeafed76c57592a01185933af 100644 (file)
 #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 ] */
 #define ETH_P_EDSA     0xDADA          /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
+#define ETH_P_DSA_8021Q        0xDADB          /* Fake VLAN Header for DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
 #define ETH_P_IFE      0xED3E          /* ForCES inter-FE LFB type */
 #define ETH_P_AF_IUCV   0xFBFB         /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */
 
index 7ee74c3474bff4b39b11fc48cb6154fdb4b6aad0..8b2f993cbb773dcfb90dadc306cb98d5a66083fb 100644 (file)
@@ -1148,6 +1148,16 @@ enum {
 
 #define TCA_TAPRIO_SCHED_MAX (__TCA_TAPRIO_SCHED_MAX - 1)
 
+/* The format for the admin sched (dump only):
+ * [TCA_TAPRIO_SCHED_ADMIN_SCHED]
+ *   [TCA_TAPRIO_ATTR_SCHED_BASE_TIME]
+ *   [TCA_TAPRIO_ATTR_SCHED_ENTRY_LIST]
+ *     [TCA_TAPRIO_ATTR_SCHED_ENTRY]
+ *       [TCA_TAPRIO_ATTR_SCHED_ENTRY_CMD]
+ *       [TCA_TAPRIO_ATTR_SCHED_ENTRY_GATES]
+ *       [TCA_TAPRIO_ATTR_SCHED_ENTRY_INTERVAL]
+ */
+
 enum {
        TCA_TAPRIO_ATTR_UNSPEC,
        TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */
@@ -1156,6 +1166,9 @@ enum {
        TCA_TAPRIO_ATTR_SCHED_SINGLE_ENTRY, /* single entry */
        TCA_TAPRIO_ATTR_SCHED_CLOCKID, /* s32 */
        TCA_TAPRIO_PAD,
+       TCA_TAPRIO_ATTR_ADMIN_SCHED, /* The admin sched, only used in dump */
+       TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME, /* s64 */
+       TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */
        __TCA_TAPRIO_ATTR_MAX,
 };