This repository provides English description and code/script to DEMO ECMP-ER.
- P4 Source Code under p4src/ are licensed under Apache License, Version 2.0
- XDP source code under xdp/ are indicated by the SPDX license headers in individual source files
Motivation of this work was from the growth of upstream traffic from connected cars and lack of simple and scalable way to balance such upstream traffic, which lead to scalable direction agnostic loadbalancing mechanism which could run on commodity switch/router hardware.
More details about the motivation and how ECMP-ER works are described in below slides.
- Slides: ecmper-english-IOTS2022.pdf
ECMP-ER was accepted at IOTS2022 and a paper in Japanese is available to conference attendees and paid download.
- IOTS2022 Program page (Japanese)
- Abstract (English) and download page of the IOTS2022 paper (Japanese)
Note: DEMO P4/XDP code and scripts are NOT identical to the ones used in the IOTS2022 paper which Tofino was used.
You can run ECMP-ER using BMv2 on Ubuntu (without Tofino Box) following below instructions.
- How to run demo (markdown)
- Setup BMv2 environment and Build P4/XDP
- Demo Topology and common setup
- Demo 1: Manually confirm ECMP-ER operation
- Demo 2: Apache Bench
- How to run demo slides (pdf)
- Demo Topology
- P4 Tables and Pipeline
- "controller 4 bmv2" a.k.a c4bmv2 design
- Server side XDP client logic
- Packet flow when ECMP ER is enabled / disabled (Demo 1)
- Source code and scripts
Authors of the ECMP-ER Paper (IOTS2022)
- Ryo Nakamura [1]
- Kentaro Ebisawa [2]
- Tomoko Okuzawa [2]
- Chunghan Lee [2]
- Yuji Sekiya [1]
P4 Source Code and documents on this site is created by below member with support from Authors of ECMP-ER paper.
- Kentaro Ebisawa [2]
[1] Information Technology Center, The University of Tokyo [2] Toyota Motor Corporation