On Thu, Jul 19, 2018 at 2:49 PM, Hyunseok <[email protected]> wrote: > Thanks for your reply. > > BPF_TABLE("extern") seems to work only if the eBPF program is loaded by the > same userspace process which creates the map, like in this example.
No. The example uses a locally-created map to illustrate the process, but a pinned map works in a similar way. The user space application: . using bpf_obj_get to get a FD for the pinned map. . create TableDesc with the FD. . Add TableDesc to the local_ts. . Create a BPF object with the local_ts. . ... In the bpf program itself, declare the pinned map with "extern" type. > > But, what if a map is created (and pinned) by process A, and an eBPF program > is loaded by another process B? > Is there any way for the eBPF program to access the pinned map? Just follow the above process, it should work. Facebook has used the same mechanism for a while to access externally-pinned maps. > > bpf_obj_get cannot be used by eBPF programs as it is a userspace API. bpf_obj_get() intends to be used in userspace, not kernel. > > > On Thu, Jul 19, 2018 at 3:33 PM, Y Song <[email protected]> wrote: >> >> The following is an example in C++ to import an external map to BPF >> modules. >> https://github.com/iovisor/bcc/blob/master/examples/cpp/UseExternalMap.cc >> You can use libbpf function `bpf_obj_get` to get a map fd in the above >> example. >> >> On Wed, Jul 18, 2018 at 11:48 AM, <[email protected]> wrote: >> > Hi, >> > >> > I have an eBPF map created and pinned by a userspace process. >> > >> > Now I would like several eBPF programs to access this pinned eBPF map. >> > >> > Is there any bcc APIs that can be used? >> > >> > BPF_TABLE(), etc creates a new eBPF map, not loads an existing pinned >> > map. >> > >> > Thanks, >> > -hs >> > > > -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#1389): https://lists.iovisor.org/g/iovisor-dev/message/1389 Mute This Topic: https://lists.iovisor.org/mt/23673879/21656 Group Owner: [email protected] Unsubscribe: https://lists.iovisor.org/g/iovisor-dev/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
