In this blog series, we are presenting the five P4 projects accepted for this year’s Google Summer of Code (GSoC). The first one is Polyglot P4TC.
GSoC Project
Polyglot P4TC: Python and Rust API Wrappers for Linux TC-based P4
P4TC enables programmable packet processing in the Linux kernel via TC and eBPF, but its control plane is limited to the tc CLI and shell scripts. This project delivers idiomatic Python (cffi) and Rust (bindgen) wrappers for P4TC’s C API, covering both provisioning and runtime CRUDSP operations. Deliverables include: (1) a Python package (p4tc_py) with context managers and type hints, (2) a Rust crate (p4tc-rs) with safe ownership semantics and Drop-based cleanup, (3) ported tutorial examples in both languages, and (4) API documentation with a shell-vs-Python-vs-Rust comparison guide.
Project Mentors: Jamal Hadi Salim and Victor Nogueira Evangelos Haleplidis
Contributor: Attaullah Ansari
Attaullah is an Integrated MSc student in Mathematics and Computing at BIT Mesra, India. He started out in competitive programming, then picked up Beej’s Guide to Network programming one semester and never looked back. Attaullah is mostly interested in how things work under the hood: kernels, networks and the code that sits between userspace and hardware.
Relevant Links
To learn more about P4TC, watch Jamal’s Developer Day Presentation “P4TC Provisioning And Runtime Control API”