Markdown Version | Session Recording
Session Date/Time: 18 Mar 2024 23:30
bpf
Summary
The BPF working group meeting covered several topics including updates to the BPF ISA specification document, discussion of the indirect call instruction (callx), and a presentation on implementing PDM (Performance and Diagnostic Metrics) using eBPF. Key decisions were made regarding how to handle the term "code pointer" in the ISA document. Action items were created to address IANA considerations and solicit further review of the specification.
Key Discussion Points
- BPF ISA Specification Update (Dave):
- Progress since IETF 118 including addressing 19 ISA-specific issues.
- Discussion of editorial changes including renaming the document to include "ISA" and standardizing documentation of 4-bit and 2-bit fields.
- Clarifications around 64-bit immediate instructions.
- Extensive discussion on conformance groups, including their definition, purpose, and how they relate to RFC compliance and vendor implementations.
- Implementation report on BPF Conformance and Preval verifier.
- Processes for adding and deprecating instructions using conformance groups.
- Discussion about outstanding items during working group last call including a typo in the IANA considerations and the meaning of "helper function address".
- Indirect Call Instruction (callx) (Dave):
- Explanation of how Clang and GCC generate
callxinstructions and their use of relocations. - Discussion about whether to document
callxin the IETF or leave it to compiler documentation. - Arguments were made that callx should not be documented as it was never correctly implemented and may be redefined in the future.
- Concerns about potential misuse and incorrect implementations were raised.
- Explanation of how Clang and GCC generate
- PDM Implementation using eBPF (Nalini, Samog, Sheena):
- Advantages of using eBPF for extension header implementation (portability, safety via verifier).
- Details on implementing PDM using TC eBPF.
- Performance results (CPU cycles, network throughput, packet processing latency) compared to a kernel implementation.
- Discussion of future work (optimization, high-performance environment testing, flexibility for other extension headers).
- Pain points of the implementation.
Decisions and Action Items
- Decision: Change the term "code pointer" in the ISA document to "code address", and also change "data pointer" to "data address", to be more accurate.
- Action: Dave will generate a patch.
- Action: Andy to file an issue regarding clarification of provisional registration flows, for discussion on the mailing list.
- Action: Solicit more reviews of the ISA document. Christophe volunteered.
- Decision: Do not document callx in the ISA document at this time. Leave the possibility open to create an IETF document at a later date.
- Action: Send a patch note for clang.
Next Steps
- Continue discussion of
helper function addressclarification on the mailing list. - Implement and test the "code address" patch.
- Await prototype for indirect calls (6 months?).
- Samog and Sheena share the code on the list.