Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| summerofcode2018projects:ebpf [2018/06/05 06:15] – YutaroHayakawa | summerofcode2018projects: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. | + | 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, | + | Especially from the networking community perspective, |
| + | software/ | ||
| + | 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:// | https:// | ||
| + | |||
| + | https:// | ||
| ===== Useful links ===== | ===== Useful links ===== | ||
| Line 67: | Line 83: | ||
| Week3: https:// | Week3: https:// | ||
| + | |||
| + | Week4: Attended to BSDCan2018. Made presentation about this work and got a lot of useful feedbacks. | ||
| + | |||
| + | HP: https:// | ||
| + | |||
| + | Video: https:// | ||
| + | |||
| + | Week5: https:// | ||
| + | |||
| + | Week6: https:// | ||
| + | |||
| + | Week7: https:// | ||
| + | |||
| + | Week8: https:// | ||
| + | |||
| + | Week9: https:// | ||
| + | |||
| + | Week10: https:// | ||
| + | |||
| + | Week11: https:// | ||
| + | |||
| + | Week12: https:// | ||