Sorry, I should clarify. The code in sd-device related to BPF I don't understand. What is the 'input' in BPF?<br><br><br>Sent from ProtonMail mobile<br><br><br><br>-------- Original Message --------<br>On 14 Sep. 2021, 5:24 pm, Lennart Poettering < lennart@poettering.net> wrote:<blockquote class="protonmail_quote"><br><p dir="ltr">On Di, 14.09.21 01:08, Ryan McClue (re.mcclue@protonmail.com) wrote:</p>
<p dir="ltr">> I understand this is slightly off-topic, but I'm completely new to<br>
> BPF. Analyzing libudev source and Internet I understand the general<br>
> idea. However, I don't understand how information/what information<br>
> is passed to the filter from the socket. For example, in my case the<br>
> socket payload, i.e. buf_str =<br>
> add@/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4:1.0/input/input38/event14</p>
<p dir="ltr">> 1. How do I pass this string to the sock_filter/sock_fprog<br>
> structures?</p>
<p dir="ltr">You don't. The bpf filtering, and in particular the bloom filter that<br>
is used for that is mostly internal to udev, and not something that is<br>
consider official API and should be reimplemented.</p>
<p dir="ltr">Use sd-device/libudev, it implements all of this, and is the only official API<br>
to the bpf bloom filter stuff udev does there.</p>
<p dir="ltr">Lennart</p>
<p dir="ltr">--<br>
Lennart Poettering, Berlin<br>
</p>
</div>