Commit 1d961dc1 authored by Maciej Żenczykowski's avatar Maciej Żenczykowski
Browse files

p/android-4.9+: relax QTAGUID requirements



Q userspace will use eBPF for bandwidth measurement
and does not require QTAGUID netfilter extension.
As such we are okay with either QTAGUID or the less
functional but sufficient OWNER extension (provided
the requisite eBPF config options are also enabled).

ie. we require either XT_MATCH_QTAGUID or XT_MATCH_OWNER.

Furthermore XT_MATCH_OWNER also requires:
  CONFIG_BPF_SYSCALL=y
  CONFIG_CGROUP_BPF=y
  CONFIG_NETFILTER_XT_MATCH_BPF=y
  CONFIG_NET_CLS_BPF=y
(the first 3 of which are already base requirements on P 4.9+)

Note: while this change is complex, it *widens* the
set of valid kernel configurations.  Any kernel that passed
configuration requirements before this change will also pass
them after this change.  However additionally this allows a
Q kernel to pass on a shipped as P but then upgraded to Q
device.

Also note that as Alistair points out this doesn't work for
shipped as O then upgraded to Q devices, as:
  system/bpf/libbpf_android/BpfUtils.cpp
is still checking "first_api_level" for P, and thus will not
use eBPF and thus it would actually break without QTAGUID.

Bug: 125362907
Signed-off-by: default avatarMaciej Żenczykowski <maze@google.com>
Change-Id: Ia6ce9e857d260cc6c74dd59731555479f7d38078
parent 8c186b28
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment