Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd3a08aa authored by David Ahern's avatar David Ahern Committed by Alexei Starovoitov
Browse files

bpf: flowlabel in bpf_fib_lookup should be flowinfo



As Michal noted the flow struct takes both the flow label and priority.
Update the bpf_fib_lookup API to note that it is flowinfo and not just
the flow label.

Cc: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 432bdb58
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2629,7 +2629,7 @@ struct bpf_fib_lookup {
	union {
		/* inputs to lookup */
		__u8	tos;		/* AF_INET  */
		__be32	flowlabel;	/* AF_INET6 */
		__be32	flowinfo;	/* AF_INET6, flow_label + priority */

		/* output: metric of fib result (IPv4/IPv6 only) */
		__u32	rt_metric;
+1 −1
Original line number Diff line number Diff line
@@ -4221,7 +4221,7 @@ static int bpf_ipv6_fib_lookup(struct net *net, struct bpf_fib_lookup *params,
		fl6.flowi6_oif = 0;
		strict = RT6_LOOKUP_F_HAS_SADDR;
	}
	fl6.flowlabel = params->flowlabel;
	fl6.flowlabel = params->flowinfo;
	fl6.flowi6_scope = 0;
	fl6.flowi6_flags = 0;
	fl6.mp_hash = 0;
+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ static __always_inline int xdp_fwd_flags(struct xdp_md *ctx, u32 flags)
			return XDP_PASS;

		fib_params.family	= AF_INET6;
		fib_params.flowlabel	= *(__be32 *)ip6h & IPV6_FLOWINFO_MASK;
		fib_params.flowinfo	= *(__be32 *)ip6h & IPV6_FLOWINFO_MASK;
		fib_params.l4_protocol	= ip6h->nexthdr;
		fib_params.sport	= 0;
		fib_params.dport	= 0;