Helper function bpf_cgrp_storage_get
Definition
Copyright (c) 2015 The Libbpf Authors. All rights reserved.
Get a bpf_local_storage from the cgroup.
Logically, it could be thought of as getting the value from a map with cgroup as the key. From this perspective, the usage is not much different from bpf_map_lookup_elem(map, &cgroup) except this helper enforces the key must be a cgroup struct and the map must also be a BPF_MAP_TYPE_CGRP_STORAGE.
In reality, the local-storage value is embedded directly inside of the cgroup object itself, rather than being located in the BPF_MAP_TYPE_CGRP_STORAGE map. When the local-storage value is queried for some map on a cgroup object, the kernel will perform an O(n) iteration over all of the live local-storage values for that cgroup object until the local-storage value for the map is found.
An optional flags (BPF_LOCAL_STORAGE_GET_F_CREATE) can be used such that a new bpf_local_storage will be created if one does not exist. value can be used together with BPF_LOCAL_STORAGE_GET_F_CREATE to specify the initial value of a bpf_local_storage. If value is NULL, the new bpf_local_storage will be zero initialized.
Returns
A bpf_local_storage pointer is returned on success.
NULL if not found or there was an error in adding a new bpf_local_storage.
static void *(* const bpf_cgrp_storage_get)(void *map, struct cgroup *cgroup, void *value, __u64 flags) = (void *) 210;
Usage
Docs could be improved
This part of the docs is incomplete, contributions are very welcome
Program types
This helper call can be used in the following program types:
BPF_PROG_TYPE_CGROUP_DEVICEBPF_PROG_TYPE_CGROUP_SKBBPF_PROG_TYPE_CGROUP_SOCKBPF_PROG_TYPE_CGROUP_SOCKOPTBPF_PROG_TYPE_CGROUP_SOCK_ADDRBPF_PROG_TYPE_CGROUP_SYSCTLBPF_PROG_TYPE_FLOW_DISSECTORBPF_PROG_TYPE_KPROBEBPF_PROG_TYPE_LSMBPF_PROG_TYPE_LWT_INBPF_PROG_TYPE_LWT_OUTBPF_PROG_TYPE_LWT_SEG6LOCALBPF_PROG_TYPE_LWT_XMITBPF_PROG_TYPE_NETFILTERBPF_PROG_TYPE_PERF_EVENTBPF_PROG_TYPE_RAW_TRACEPOINTBPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLEBPF_PROG_TYPE_SCHED_ACTBPF_PROG_TYPE_SCHED_CLSBPF_PROG_TYPE_SK_LOOKUPBPF_PROG_TYPE_SK_MSGBPF_PROG_TYPE_SK_REUSEPORTBPF_PROG_TYPE_SK_SKBBPF_PROG_TYPE_SOCKET_FILTERBPF_PROG_TYPE_SOCK_OPSBPF_PROG_TYPE_STRUCT_OPSBPF_PROG_TYPE_SYSCALLBPF_PROG_TYPE_TRACEPOINTBPF_PROG_TYPE_TRACINGBPF_PROG_TYPE_XDP
Map types
This helper call can be used with the following map types:
Example
Docs could be improved
This part of the docs is incomplete, contributions are very welcome