History

tools headers uapi: Refresh linux/bpf.h copy

To get the changes in: 4c79579b44b1 ("bpf: Change bpf_fib_lookup to return lookup status") That do not entail changes in tools/perf/ use of it, elliminating the following perf build warning: Warning: Kernel ABI header at 'tools/include/uapi/linux/bpf.h' differs from latest version at 'include/uapi/linux/bpf.h'

Arnaldo Carvalho de Melo committed 8 years ago

Commit fc73bfd1 parent 7def16d1 file · +23 −5Browse files

Unified · Split

tools/include/uapi/linux/bpf.h+23−5
@@ -1857,7 +1857,8 @@ union bpf_attr { · 1856 unmodified lines
18571857 * is resolved), the nexthop address is returned in ipv4_dst
18581858 * or ipv6_dst based on family, smac is set to mac address of
18591859 * egress device, dmac is set to nexthop mac address, rt_metric
1860− * is set to metric from route (IPv4/IPv6 only).
1860+ * is set to metric from route (IPv4/IPv6 only), and ifindex
1861+ * is set to the device index of the nexthop from the FIB lookup.
18611862 *
18621863 * *plen* argument is the size of the passed in struct.
18631864 * *flags* argument can be a combination of one or more of the
@@ -1873,9 +1874,10 @@ union bpf_attr { · 9 unmodified lines
18731874 * *ctx* is either **struct xdp_md** for XDP programs or
18741875 * **struct sk_buff** tc cls_act programs.
18751876 * Return
1876− * Egress device index on success, 0 if packet needs to continue
1877− * up the stack for further processing or a negative error in case
1878− * of failure.
1877+ * * < 0 if any input argument is invalid
1878+ * * 0 on success (packet is forwarded, nexthop neighbor exists)
1879+ * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
1880+ * * packet is not forwarded or needs assist from full stack
18791881 *
18801882 * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags)
18811883 * Description
@@ -2612,6 +2614,18 @@ struct bpf_raw_tracepoint_args { · 730 unmodified lines
26122614 #define BPF_FIB_LOOKUP_DIRECT BIT(0)
26132615 #define BPF_FIB_LOOKUP_OUTPUT BIT(1)
26142616
2617+enum {
2618+ BPF_FIB_LKUP_RET_SUCCESS, /* lookup successful */
2619+ BPF_FIB_LKUP_RET_BLACKHOLE, /* dest is blackholed; can be dropped */
2620+ BPF_FIB_LKUP_RET_UNREACHABLE, /* dest is unreachable; can be dropped */
2621+ BPF_FIB_LKUP_RET_PROHIBIT, /* dest not allowed; can be dropped */
2622+ BPF_FIB_LKUP_RET_NOT_FWDED, /* packet is not forwarded */
2623+ BPF_FIB_LKUP_RET_FWD_DISABLED, /* fwding is not enabled on ingress */
2624+ BPF_FIB_LKUP_RET_UNSUPP_LWT, /* fwd requires encapsulation */
2625+ BPF_FIB_LKUP_RET_NO_NEIGH, /* no neighbor entry for nh */
2626+ BPF_FIB_LKUP_RET_FRAG_NEEDED, /* fragmentation required to fwd */
2627+};
2628+
26152629 struct bpf_fib_lookup {
26162630 /* input: network family for lookup (AF_INET, AF_INET6)
26172631 * output: network family of egress nexthop
@@ -2625,7 +2639,11 @@ struct bpf_fib_lookup { · 7 unmodified lines
26252639
26262640 /* total length of packet from network header - used for MTU check */
26272641 __u16 tot_len;
2628− __u32 ifindex; /* L3 device index for lookup */
2642+
2643+ /* input: L3 device index for lookup
2644+ * output: device index from FIB lookup
2645+ */
2646+ __u32 ifindex;
26292647
26302648 union {
26312649 /* inputs to lookup */