From 8701983198b5071060efc630c07cf23ded72f628 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Mon, 3 Feb 2025 22:04:26 -0800 Subject: [PATCH] bpf: don't attempt to load LPM_TRIE on < 4.14 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Test: TreeHugger Bug: 394212739 Signed-off-by: Maciej Żenczykowski Change-Id: Ia71951ef1a34eeeb30097de0b9d3ddb821f7e72f --- bpf/loader/NetBpfLoad.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bpf/loader/NetBpfLoad.cpp b/bpf/loader/NetBpfLoad.cpp index 53c7d4969a..04d7492fcb 100644 --- a/bpf/loader/NetBpfLoad.cpp +++ b/bpf/loader/NetBpfLoad.cpp @@ -729,6 +729,12 @@ static int createMaps(const char* elfPath, ifstream& elfFile, vector& } enum bpf_map_type type = md[i].type; + if (type == BPF_MAP_TYPE_LPM_TRIE && !isAtLeastKernelVersion(4, 14, 0)) { + // On Linux Kernels older than 4.14 this map type doesn't exist - autoskip. + ALOGD("skipping LPM_TRIE map %s - requires kver 4.14+", mapNames[i].c_str()); + mapFds.push_back(unique_fd()); + continue; + } if (type == BPF_MAP_TYPE_DEVMAP && !isAtLeastKernelVersion(4, 14, 0)) { // On Linux Kernels older than 4.14 this map type doesn't exist, but it can kind // of be approximated: ARRAY has the same userspace api, though it is not usable