{"id":16332824,"url":"https://github.com/kevinbird61/p4-researching","last_synced_at":"2025-06-25T05:07:03.398Z","repository":{"id":83114348,"uuid":"137694332","full_name":"kevinbird61/p4-researching","owner":"kevinbird61","description":"Testbed/Tutorials/Researching work on P4.","archived":false,"fork":false,"pushed_at":"2020-10-13T11:18:09.000Z","size":20443,"stargazers_count":98,"open_issues_count":4,"forks_count":25,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T22:17:02.971Z","etag":null,"topics":["bmv2","controller","docker","installation-help","learning","mininet","networking","networking-programmability","p4","p4runtime","v1model"],"latest_commit_sha":null,"homepage":"","language":"P4","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kevinbird61.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-17T23:32:57.000Z","updated_at":"2025-01-23T08:58:41.000Z","dependencies_parsed_at":"2023-03-05T14:00:21.812Z","dependency_job_id":null,"html_url":"https://github.com/kevinbird61/p4-researching","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kevinbird61/p4-researching","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbird61%2Fp4-researching","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbird61%2Fp4-researching/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbird61%2Fp4-researching/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbird61%2Fp4-researching/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinbird61","download_url":"https://codeload.github.com/kevinbird61/p4-researching/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbird61%2Fp4-researching/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261808046,"owners_count":23212688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bmv2","controller","docker","installation-help","learning","mininet","networking","networking-programmability","p4","p4runtime","v1model"],"created_at":"2024-10-10T23:33:11.925Z","updated_at":"2025-06-25T05:07:03.390Z","avatar_url":"https://github.com/kevinbird61.png","language":"P4","funding_links":[],"categories":[],"sub_categories":[],"readme":"# p4-researching\nMy Researching work on P4.\n\n\u003e Notice: Current testing environment are not based on the latest version of P4.\n\u003e           You can using the scripts under `docker/` to build a docker image for these tests.\n\u003e And all the examinations are running on software switch, a.k.a \"bmv2\", and I use `simple_switch_grpc` as demonstration.\n\u003e \n\n# Environment Setting\n\nBefore getting started with P4 programming, we need a P4-capabled environment for running those scenario. And this repository summarize several methods and provide several way to accomplish.\n\n* Build sucessfully with `Ubuntu 16.04.05`:\n    * [Installation scripts - P4](install/)\n    * [(Optional) Installation script - ONOS](https://github.com/toolbuddy/ssfw#onos-installation)\n* Also you can build your own test environment in **docker**:\n    * [Installation for Docker](https://github.com/toolbuddy/ssfw#docker-installation)\n    * [Build your own P4 testbed with docker image](docker/)\n* Using P4 virtual machine (via Oracle VirtualBox):\n    * [`P4.ova` download](http://gofile.me/39GpL/Q4KZzrzTJ) : Completed P4 environment (Updated at: `2018/9/30`).\n    * [`P4 (only with deps).ova` download](http://gofile.me/39GpL/3f01UDG0X) : For develop environment of P4-related tools.\n\n---\n\n# About this repository\n\n## P4 (with `Mininet`)\n\n* More details under [`src/`](src/)\n* Contain lots of P4 practices and scenarios, which based on the open source software switch - BMv2 and mininet, with P4Runtime support to finish those work.\n\n\u003e Notice:\n\u003e \n\u003e v0 users: You can found some tutorials in [`branch:tutorials`](https://github.com/kevinbird61/p4-researching/tree/tutorials)\n\u003e \n\u003e v1 users: Use the master branch directly.\n\n## P4 with ONOS\nLearning how to build an ONOS application which support P4. See more detail under [`onos/`](onos/)\n\n## Tracing P4Runtime\n* Look [here](/res), have some diagram about P4Runtime's dependencies.\n\n## Build network namespace\n* If you don't want to use mininet, you can use `ip netns` instead.\n* Under [`net/`](net/), have a demo script for building several network namespace.\n\n## Learning Materials \n* Provide some learning resources about Networking, which located in [course/](course/).\n* Welcome to contribute!\n\n---\n\n# Author\n\nNational Cheng Kung University, 瞿旭民 (Kevin Cyu), kevinbird61@gmail.com\n\n## Activities\n* (2018/09/12) DigitalOcean - Hsinchu: Learning P4 from example [(slide)](https://docs.google.com/presentation/d/15NPJ3wnYTEr_La7Ny-n2Q8SLTVFJhv5rDmB2Alku3z0/edit?usp=sharing), [(meetup.com)](https://www.meetup.com/DigitalOceanHsinchu/events/254314168/)\n* (2018/12/08) SDN x Cloud Native Taiwan User Group - P4 Intro \u0026 Demonstration [(slide)](https://docs.google.com/presentation/d/1xHhrrWzsu3SawG2Zf1nZWs3_l3zHLWch9q04C1B4nog/edit?usp=sharing), [(kktix.com)](https://cntug.kktix.cc/events/sdn-cntug-12)\n\n---\n\n# Reference\n\n* [p4.org - P4_16 Spec - v1.0.0](https://p4.org/p4-spec/docs/P4-16-v1.0.0-spec.html)\n* [p4.org - P4 PSA Spec - v1.0.0](https://p4.org/p4-spec/docs/PSA-v1.0.0.html)\n    * [v1model.p4](https://github.com/p4lang/p4c/blob/master/p4include/v1model.p4)\n    * [psa.p4](https://github.com/p4lang/p4c/blob/master/p4include/psa.p4)\n* [p4.org - P4Runtime Spec - v1.0.0](https://p4.org/p4-spec/docs/P4Runtime-v1.0.0.pdf)\n    * [v1/p4runtime.proto](https://github.com/p4lang/p4runtime/blob/master/proto/p4/v1/p4runtime.proto)\n    * [v1/p4data.proto](https://github.com/p4lang/p4runtime/blob/master/proto/p4/v1/p4data.proto)\n    * [config/v1/p4info.proto](https://github.com/p4lang/p4runtime/blob/master/proto/p4/config/v1/p4info.proto)\n    * [config/v1/p4types.proto](https://github.com/p4lang/p4runtime/blob/master/proto/p4/config/v1/p4types.proto)\n* [p4.org - In-band Network Telemetry(INT) Dataplane Specification](https://github.com/p4lang/p4-applications/blob/master/docs/INT.pdf)\n* [p4.org - Telemetry Report Format Specification](https://github.com/p4lang/p4-applications/blob/master/docs/telemetry_report.pdf)\n* [p4lang/tutorials](https://github.com/p4lang/tutorials)\n* [p4lang/p4factory/apps/int](https://github.com/p4lang/p4factory/tree/master/apps/int)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinbird61%2Fp4-researching","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinbird61%2Fp4-researching","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinbird61%2Fp4-researching/lists"}