{"id":16332850,"url":"https://github.com/kevinbird61/p4-play","last_synced_at":"2025-09-18T16:38:40.791Z","repository":{"id":50213275,"uuid":"118848873","full_name":"kevinbird61/P4-Play","owner":"kevinbird61","description":"Record something useful information and experiments on P4. ","archived":false,"fork":false,"pushed_at":"2021-06-01T21:48:57.000Z","size":8562,"stargazers_count":4,"open_issues_count":4,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T11:47:07.268Z","etag":null,"topics":["learning","mininet","networking","p4"],"latest_commit_sha":null,"homepage":"https://kevinbird61.github.io/P4-Play/","language":"Python","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}},"created_at":"2018-01-25T02:08:31.000Z","updated_at":"2025-02-26T13:36:43.000Z","dependencies_parsed_at":"2022-09-24T08:21:31.623Z","dependency_job_id":null,"html_url":"https://github.com/kevinbird61/P4-Play","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kevinbird61/P4-Play","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbird61%2FP4-Play","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbird61%2FP4-Play/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbird61%2FP4-Play/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbird61%2FP4-Play/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinbird61","download_url":"https://codeload.github.com/kevinbird61/P4-Play/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinbird61%2FP4-Play/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275797595,"owners_count":25530253,"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","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["learning","mininet","networking","p4"],"created_at":"2024-10-10T23:33:16.387Z","updated_at":"2025-09-18T16:38:40.748Z","avatar_url":"https://github.com/kevinbird61.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# P4-Play\nRecord something useful information and experiments on P4. \n\n## Usage\n\nThis repository will record some information about how I learn P4 from hardly without any knowledge about networking. \nSo it will have some basic concept about `networking command in Linux`, `mininet API learning`, and some `P4 spec` knowledge I read from [`p4.org/specs`](https://p4.org/specs/), like `PSA`, `P4_16`. All the practices will base on `P4_16` to illustrate.\n\n* Repository Structure\n    * [Installation](Installation/)\n        * About install the p4 develop requirement environment. See more under this folder.\n    * [P4-playground](P4-playground/)\n        * [multiswitch](P4-playground/multiswitch)\n            * Using `mininet` with python API support\n            * Contain some experiments with P4 and multiple switches scenario.\n                * `basic forwarding`\n                * `multi-hop route inspection`\n                * `load balancing (ECMP)`\n        * [run-directly](P4-playground/run-directly)\n            * Using `ip` command to build the network environment with single switch.\n            * And then using `simple_switch` with P4 directly.\n        * [run-mininet](P4-playground/run-mininet)\n            * Using `mininet` to build the network environment with single switch.\n            * And then using `p4_mininet.py` as P4 class.\n            * Implement the basic forwarding scenario.\n        * [net_build](P4-playground/net_build)\n            * python script for building those scenario.\n        * [psa](P4-playground/psa)\n            * Record some P4 programs.\n    * [Resource](Resource/)\n        * Contain the image usage, flowchart source.\n    * [docs](docs/)\n        * Recording some useful information when you coding an P4 program.\n        * And using `papogen` to generate them into static webpages.\n\n## Some notes \n\n* Check out docs/\n    * using command `make` to generate it.\n    * using `papogen` as generator.\n\n## About me\n\n* [kevinbird61(Kevin Cyu, 瞿旭民)](https://github.com/kevinbird61)\n    * Nation Cheng-Kung University. Major in `Software-defined network`, especially focus on `P4`.\n\n## Some learning notes \n\n\u003e This part record about some learning notes of mine, (About `P4`)\n\u003e Might help somebody know about `P4` quickly !\n\n* [P4 Introduction/with tutorial - `Chinese`](http://slides.com/kevinbird61/p4/fullscreen)\n\n## Reference\n\nRecord some good website about catch up P4 concept.\n\n* [Official website of P4](https://p4.org/specs/)\n    * The latest specification about P4.\n* [SDNLAB - P4](https://www.sdnlab.com/tag/p4/)\n    * Some useful information in Chinese.\n* [p4lang - github](https://github.com/p4lang)\n    * tutorials about P4 goes here.\n* [Some good learning materials](LEARNING_MATERIALS.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinbird61%2Fp4-play","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinbird61%2Fp4-play","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinbird61%2Fp4-play/lists"}