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: David Ahern <dsahern@gmail.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
Родитель
432bdb581e
Коммит
bd3a08aaa9
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче