summerofcode2018projects:ebpf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
summerofcode2018projects:ebpf [2018/06/05 06:15] – YutaroHayakawasummerofcode2018projects:ebpf [2018/08/07 07:17] (current) – YutaroHayakawa
Line 3: Line 3:
 ===== Project description ===== ===== Project description =====
  
-eBPF is an in-kernel virtual machine with an independent 64-bit instruction set architecture with C calling convention.  It was appeared in the Linux kernel in 2014 as an extension to the existing BPF.  Compared to the classic BPF, the instruction set is extended to make it a highly-flexible domain-specific language. Recently Linux proposes many eBPF programmable kernel features like dynamic tracing, resource control, and so on.+eBPF is an in-kernel virtual machine with an independent 64-bit instruction set architecture with C calling convention. 
 +It was appeared in the Linux kernel in 2014 as an extension to the existing BPF. Compared to the classic BPF, the 
 +instruction set is extended to make it a highly-flexible domain-specific language. Recently Linux proposes many 
 +eBPF programmable kernel features like dynamic tracing, resource control, and so on.
  
-Especially from the networking community perspective, it is a hot technology for programming high performance software/hardware packet processor such as Linux XDP (eXpress Data Path), %%OpenVSwitch%% or Netronome NFP (Netronome Flow Processor) card. It is also used as an backend for the high level network dataplane description language such as P4 or iptables.+Especially from the networking community perspective, it is a hot technology for programming high performance 
 +software/hardware packet processor such as Linux XDP (eXpress Data Path), %%OpenVSwitch%% or Netronome 
 +NFP (Netronome Flow Processor) card. It is also used as an backend for the high level network dataplane description
  
-In this project, we will implement eBPF for %%FreeBSD%% which has very basic functionality and apply it to VALE software switch for demonstrating how it is useful for %%FreeBSD%%.+language such as P4 or iptables. 
 + 
 +In this project, we will implement eBPF for %%FreeBSD%% which has very basic functionality and apply it to VALE software 
 + 
 +switch for demonstrating how it is useful for %%FreeBSD%%.
  
 ===== Deliverables ===== ===== Deliverables =====
  
 In this project, we will deliver two things. In this project, we will deliver two things.
 +
 1. Basic eBPF implementation for %%FreeBSD%% (eBPF itself) 1. Basic eBPF implementation for %%FreeBSD%% (eBPF itself)
 +
 2. eBPF extension module for VALE software switch (application) 2. eBPF extension module for VALE software switch (application)
  
Line 39: Line 50:
  
 Week 11-12: Make document Week 11-12: Make document
 +
 Document the following things. Document the following things.
 +
 How to use eBPF for %%FreeBSD%% and vale-bpf with some example codes How to use eBPF for %%FreeBSD%% and vale-bpf with some example codes
 +
 Design decision and future works Design decision and future works
  
Line 46: Line 60:
  
 https://github.com/YutaroHayakawa/generic-ebpf https://github.com/YutaroHayakawa/generic-ebpf
 +
 +https://github.com/YutaroHayakawa/vale-bpf
  
 ===== Useful links ===== ===== Useful links =====
Line 67: Line 83:
  
 Week3: https://docs.google.com/document/d/15jvbmQJXeLdjo7LwOJai-M-qVdvie8E-eO7a8FHz65Q/edit?usp=sharing Week3: https://docs.google.com/document/d/15jvbmQJXeLdjo7LwOJai-M-qVdvie8E-eO7a8FHz65Q/edit?usp=sharing
 +
 +Week4: Attended to BSDCan2018. Made presentation about this work and got a lot of useful feedbacks.
 +
 +HP: https://www.bsdcan.org/2018/schedule/events/963.en.html
 +
 +Video: https://www.youtube.com/watch?v=4vGZm2qlEBY
 +
 +Week5: https://docs.google.com/document/d/1cnnBRJ-yxcDMOAJ0uGtVj1uHlGadtRjUqTGviQD1Th8/edit?usp=sharing
 +
 +Week6: https://docs.google.com/document/d/1_zAJVBmazYa80HxPvOAk0hQeyVUmOANN3hU6drPUNxI/edit?usp=sharing
 +
 +Week7: https://docs.google.com/document/d/1Oj26geeb2FrAKHc32vkfLDA2Venb5wLfumEiDDXO0yM/edit?usp=sharing
 +
 +Week8: https://docs.google.com/document/d/1S7iSXiDDOc8XW34z-zVEVXRq4ZC6jKMuXdz-1ndJslk/edit?usp=sharing
 +
 +Week9: https://docs.google.com/document/d/1r2xk9sk3G9aNH7VwcU1UejsIqjl-M9LTh2Zt7bsKSdE/edit?usp=sharing
 +
 +Week10: https://docs.google.com/document/d/1Hj3q8rU1u_LCmRbciud-83WGDpmj1xDWQ_FfPfDY8DA/edit?usp=sharing
 +
 +Week11: https://docs.google.com/document/d/1YVDtD8MDswnDamWZ_19RQVZ5K2t3AWcQeAvNlQakO9c/edit?usp=sharing
 +
 +Week12: https://docs.google.com/document/d/1x5OH_u-Lpf_2lkeLAlNH8cNLZn2O1euaUzxpBs1ph-o/edit?usp=sharing
  
  • summerofcode2018projects/ebpf.1528179309.txt.gz
  • Last modified: 2018/06/05 06:15
  • by YutaroHayakawa