bpf: remove KVER_NONE macro

We require 4.9+ for S, and M-2025-11 requires S+.

Generated via:
  removal of #define KVER_NONE then:
  for f in clatd.c netd.c offload.c include/bpf_helpers.h; do sed -r -i 's/KVER_NONE/KVER_4_9/' $f; done

plus addition of space to make things line up

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0661974304163a880a6cc8178f0db1173c1ef22f
This commit is contained in:
Maciej Żenczykowski 2025-08-05 17:28:41 -07:00
commit 22d6747b28
4 changed files with 26 additions and 27 deletions

View file

@ -252,9 +252,9 @@ DEFINE_BPF_PROG_KVER(schedcls, ingress6_clat_ether, 4_14, AID_SYSTEM, KVER_4_14)
return nat64(skb, ETHER, KVER_4_14);
}
DEFINE_BPF_PROG_KVER_RANGE(schedcls, ingress6_clat_ether, 4_9, AID_SYSTEM, KVER_NONE, KVER_4_14)
DEFINE_BPF_PROG_KVER_RANGE(schedcls, ingress6_clat_ether, 4_9, AID_SYSTEM, KVER_4_9, KVER_4_14)
(struct __sk_buff* skb) {
return nat64(skb, ETHER, KVER_NONE);
return nat64(skb, ETHER, KVER_4_9);
}
DEFINE_BPF_PROG_KVER(schedcls, ingress6_clat_rawip, 4_14, AID_SYSTEM, KVER_4_14)
@ -262,9 +262,9 @@ DEFINE_BPF_PROG_KVER(schedcls, ingress6_clat_rawip, 4_14, AID_SYSTEM, KVER_4_14)
return nat64(skb, RAWIP, KVER_4_14);
}
DEFINE_BPF_PROG_KVER_RANGE(schedcls, ingress6_clat_rawip, 4_9, AID_SYSTEM, KVER_NONE, KVER_4_14)
DEFINE_BPF_PROG_KVER_RANGE(schedcls, ingress6_clat_rawip, 4_9, AID_SYSTEM, KVER_4_9, KVER_4_14)
(struct __sk_buff* skb) {
return nat64(skb, RAWIP, KVER_NONE);
return nat64(skb, RAWIP, KVER_4_9);
}
DEFINE_BPF_MAP_GRW(clat_egress4_map, HASH, ClatEgress4Key, ClatEgress4Value, 16, AID_SYSTEM)

View file

@ -61,7 +61,6 @@
struct kver_uint { unsigned int kver; };
#define KVER_(v) ((struct kver_uint){ .kver = (v) })
#define KVER(a, b, c) KVER_(((a) << 24) + ((b) << 16) + (c))
#define KVER_NONE KVER_(0)
#define KVER_4_9 KVER(4, 9, 0)
#define KVER_4_14 KVER(4, 14, 0)
#define KVER_4_19 KVER(4, 19, 0)
@ -371,7 +370,7 @@ static long (*bpf_sk_storage_delete_unsafe) (const void* sk_storage,
selinux, pindir, min_loader, max_loader, mapFlags) \
DEFINE_BPF_MAP_BASE(the_map, TYPE, sizeof(KeyType), sizeof(ValueType), \
num_entries, usr, grp, md, selinux, pindir, \
KVER_NONE, KVER_INF, min_loader, max_loader, mapFlags); \
KVER_4_9, KVER_INF, min_loader, max_loader, mapFlags); \
DEFINE_LIBBPF_MAP(the_map, TYPE, KeyType, ValueType, num_entries); \
BPF_MAP_ASSERT_OK(BPF_MAP_TYPE_##TYPE, (num_entries), (md)); \
_Static_assert(sizeof(KeyType) < 1024, "aosp/2370288 requires < 1024 byte keys"); \
@ -586,8 +585,8 @@ static long (*bpf_trace_printk)(const char* fmt, int fmt_size, ...) = (void*) BP
// programs with no kernel version requirements
#define DEFINE_BPF_PROG(TYPE, NAME, VER, prog_gid) \
DEFINE_BPF_PROG_KVER_RANGE_OPT(TYPE, NAME, VER, prog_gid, KVER_NONE, KVER_INF, \
DEFINE_BPF_PROG_KVER_RANGE_OPT(TYPE, NAME, VER, prog_gid, KVER_4_9, KVER_INF, \
MANDATORY)
#define DEFINE_OPTIONAL_BPF_PROG(TYPE, NAME, VER, prog_gid) \
DEFINE_BPF_PROG_KVER_RANGE_OPT(TYPE, NAME, VER, prog_gid, KVER_NONE, KVER_INF, \
DEFINE_BPF_PROG_KVER_RANGE_OPT(TYPE, NAME, VER, prog_gid, KVER_4_9, KVER_INF, \
OPTIONAL)

View file

@ -131,7 +131,7 @@ DEFINE_BPF_MAP_EXT(local_net_blocked_uid_map, HASH, uint32_t, bool, -1000,
DEFINE_NETD_BPF_PROG_KVER_RANGE(TYPE, NAME, VER, min_kv, KVER_INF)
#define DEFINE_NETD_BPF_PROG(TYPE, NAME, VER) \
DEFINE_NETD_BPF_PROG_KVER(TYPE, NAME, VER, KVER_NONE)
DEFINE_NETD_BPF_PROG_KVER(TYPE, NAME, VER, KVER_4_9)
#define DEFINE_NETD_V_BPF_PROG_KVER(TYPE, NAME, VER, minKV) \
DEFINE_BPF_PROG_EXT(TYPE, NAME, VER, AID_ROOT, AID_ROOT, minKV, \
@ -140,7 +140,7 @@ DEFINE_BPF_MAP_EXT(local_net_blocked_uid_map, HASH, uint32_t, bool, -1000,
// programs that only need to be usable by the system server
#define DEFINE_SYS_BPF_PROG(TYPE, NAME, VER) \
DEFINE_BPF_PROG_EXT(TYPE, NAME, VER, AID_ROOT, AID_NET_ADMIN, KVER_NONE, KVER_INF, \
DEFINE_BPF_PROG_EXT(TYPE, NAME, VER, AID_ROOT, AID_NET_ADMIN, KVER_4_9, KVER_INF, \
BPFLOADER_MIN_VER, BPFLOADER_MAX_VER, MANDATORY, \
"net_shared", DEFAULT_BPF_PIN_SUBDIR)
@ -641,9 +641,9 @@ return bpf_traffic_account(skb, INGRESS, KVER_4_19, SDK_LEVEL_T);
}
// Android T 4.9 & T/U 4.14
DEFINE_NETD_BPF_PROG_KVER_RANGE(cgroupskb, ingress_stats, 4_9, KVER_NONE, KVER_4_19)
DEFINE_NETD_BPF_PROG_KVER_RANGE(cgroupskb, ingress_stats, 4_9, KVER_4_9, KVER_4_19)
(struct __sk_buff* skb) {
return bpf_traffic_account(skb, INGRESS, KVER_NONE, SDK_LEVEL_T);
return bpf_traffic_account(skb, INGRESS, KVER_4_9, SDK_LEVEL_T);
}
// ----- cgroupskb/egress/stats -----
@ -682,9 +682,9 @@ return bpf_traffic_account(skb, EGRESS, KVER_4_19, SDK_LEVEL_T);
}
// Android T 4.9 & T/U 4.14
DEFINE_NETD_BPF_PROG_KVER_RANGE(cgroupskb, egress_stats, 4_9, KVER_NONE, KVER_4_19)
DEFINE_NETD_BPF_PROG_KVER_RANGE(cgroupskb, egress_stats, 4_9, KVER_4_9, KVER_4_19)
(struct __sk_buff* skb) {
return bpf_traffic_account(skb, EGRESS, KVER_NONE, SDK_LEVEL_T);
return bpf_traffic_account(skb, EGRESS, KVER_4_9, SDK_LEVEL_T);
}
// -----
@ -704,7 +704,7 @@ DEFINE_XTBPF_PROG(skfilter, egress_xtbpf, )
}
uint32_t key = skb->ifindex;
update_iface_stats_map(skb, &key, EGRESS, KVER_NONE);
update_iface_stats_map(skb, &key, EGRESS, KVER_4_9);
return XTBPF_MATCH;
}
@ -717,7 +717,7 @@ DEFINE_XTBPF_PROG(skfilter, ingress_xtbpf, )
// Keep that in mind when moving this out of iptables xt_bpf and into tc ingress (or xdp).
uint32_t key = skb->ifindex;
update_iface_stats_map(skb, &key, INGRESS, KVER_NONE);
update_iface_stats_map(skb, &key, INGRESS, KVER_4_9);
return XTBPF_MATCH;
}
@ -726,7 +726,7 @@ DEFINE_SYS_BPF_PROG(schedact, ingress_account, )
if (is_received_skb(skb)) {
// Account for ingress traffic before tc drops it.
uint32_t key = skb->ifindex;
update_iface_stats_map(skb, &key, INGRESS, KVER_NONE);
update_iface_stats_map(skb, &key, INGRESS, KVER_4_9);
}
return TC_ACT_UNSPEC;
}

View file

@ -269,15 +269,15 @@ DEFINE_BPF_PROG_KVER(schedcls, tether_upstream6_ether, 5_4, AID_NETWORK_STACK, K
// implementation for 4.9/4.14/4.19
DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_downstream6_ether, , AID_NETWORK_STACK,
KVER_NONE, KVER_5_4)
KVER_4_9, KVER_5_4)
(struct __sk_buff* skb) {
return do_forward6(skb, ETHER, DOWNSTREAM, KVER_NONE);
return do_forward6(skb, ETHER, DOWNSTREAM, KVER_4_9);
}
DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_upstream6_ether, , AID_NETWORK_STACK,
KVER_NONE, KVER_5_4)
KVER_4_9, KVER_5_4)
(struct __sk_buff* skb) {
return do_forward6(skb, ETHER, UPSTREAM, KVER_NONE);
return do_forward6(skb, ETHER, UPSTREAM, KVER_4_9);
}
// Note: section names must be unique to prevent programs from appending to each other,
@ -319,13 +319,13 @@ DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_upstream6_rawip, 4_14, AID_NETWORK_S
// and define no-op stubs for pre-4.14 kernels.
DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_downstream6_rawip, stub, AID_NETWORK_STACK,
KVER_NONE, KVER_4_14)
KVER_4_9, KVER_4_14)
(__unused struct __sk_buff* skb) {
return TC_ACT_PIPE;
}
DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_upstream6_rawip, stub, AID_NETWORK_STACK,
KVER_NONE, KVER_4_14)
KVER_4_9, KVER_4_14)
(__unused struct __sk_buff* skb) {
return TC_ACT_PIPE;
}
@ -774,13 +774,13 @@ DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_upstream4_ether, 4_14, AID_NETWORK_S
// RAWIP: 4.9-P/Q, 4.14-P/Q & 4.19-Q kernels -- without bpf_skb_change_head() for tc programs
DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_downstream4_rawip, stub, AID_NETWORK_STACK,
KVER_NONE, KVER_5_4)
KVER_4_9, KVER_5_4)
(__unused struct __sk_buff* skb) {
return TC_ACT_PIPE;
}
DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_upstream4_rawip, stub, AID_NETWORK_STACK,
KVER_NONE, KVER_5_4)
KVER_4_9, KVER_5_4)
(__unused struct __sk_buff* skb) {
return TC_ACT_PIPE;
}
@ -788,13 +788,13 @@ DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_upstream4_rawip, stub, AID_NETWORK_S
// ETHER: 4.9-P/Q kernel
DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_downstream4_ether, stub, AID_NETWORK_STACK,
KVER_NONE, KVER_4_14)
KVER_4_9, KVER_4_14)
(__unused struct __sk_buff* skb) {
return TC_ACT_PIPE;
}
DEFINE_BPF_PROG_KVER_RANGE(schedcls, tether_upstream4_ether, stub, AID_NETWORK_STACK,
KVER_NONE, KVER_4_14)
KVER_4_9, KVER_4_14)
(__unused struct __sk_buff* skb) {
return TC_ACT_PIPE;
}