홍원기
포스텍 컴퓨터공학과 교수
University of Western Ontario Computer Science 석사
University of Waterloo Computer Science 박사
전) KT 종합기술원장 (CTO)
POSTECH 컴퓨터공학과 교수
POSTECH 정보통신대학원장
본 강좌는 데이터 평면 프로그래밍의 개념에 대해 소개하고, 프로그래머블 스위치를 프로그래밍할 수 있는 대표적인 DSL (Domain-specific Language)인 P4(Programming Protocol-independent Packet Processor)에 대해 소개합니다. 우선, P4의 기본적인 개념과 P4로 프로그래밍할 수 있는 스위치 아키텍쳐 (PISA, PSA)에 대해 소개합니다. 그리고 P4 언어에 대한 상세한 소개와 함께 P4 프로그램 작성 방법과 Mininet을 활용하여 P4 프로그램을 PC나 연구실 환경에서 쉽게 시뮬레이션 해 볼 수 있는 방법을 소개합니다. 그리고 P4Runtime과 ONOS를 사용하여 P4 target을 제어할 수 있는 방법에 대해 설명하며, P4를 활용한 다양한 어플리케이션들을 소개합니다. 본 강좌에서는 P4 프로그래밍 실습과 함께 P4Runtime 및 ONOS를 통해 P4로 작성된 데이터 평면을 제어하는 프로그래밍 실습을 포함합니다.
- 무료 버전 강좌: 강의 동영상 + 퀴즈
- 유료 버전 강좌 (수강료: 10만원): 강의 동영상 + 퀴즈 + 강의자료 + 수료증 발급
* Pre-requisites:
| 주차 | 주차 | |
|---|---|---|
| 1 | P4 Overview | Data plane programming - What and why? | 
| P4: Programming Protocol-independent Packet Processor (1) | ||
| P4: Programming Protocol-independent Packet Processor (2) | ||
| Lecture Notes | ||
| Discussion | ||
| 2 | P4 Basics | P4 Architecture Model | 
| Portable Switch Architecture (1) | ||
| Portable Switch Architecture (2) | ||
| Lecture Notes | ||
| Discussion | ||
| 3 | P4 Language Basics (1) | Programming Approach | 
| Data Types & Parser | ||
| Match & Action Programming: Controls and Actions | ||
| Lecture Notes | ||
| Discussion | ||
| 4 | P4 Language Basics (2) | Match & Action Programming - Tables | 
| Deparser | ||
| How to compile & run | ||
| Lecture Notes | ||
| Discussion | ||
| 5 | Reading Week 1 | Reading Week 1 | 
| 6 | P4 Programming Tutorial | Tutorial 1 - Basic Forwarding | 
| Tutorial 1 - Basic Forwarding (Solution) | ||
| Tutorial 2 - Basic Tunneling | ||
| Tutorial 2 - Basic Tunneling (Solution) | ||
| Lecture Notes | ||
| 7 | P4 Runtime | protobuf | 
| gRPC | ||
| P4Runtime | ||
| Lecture Notes | ||
| 8 | P4 Support in ONOS | Introduction on ONOS | 
| P4 and P4Runtime Support in ONOS | ||
| P4 Usecases in ONOS | ||
| Lecture Notes | ||
| 9 | P4Runtime & ONOS Tutorial | Tutorial Overview | 
| Tutorial 1 - Reactive Forwarding | ||
| Tutorial 2 - MyTunnel App | ||
| Lecture Notes | ||
| 10 | Reading Week 2 | Reeding Week 2 | 
| 11 | P4 Applications (1) | In-band Network Telemetry | 
| HULA: Scalable load balancing using programmable data planes | ||
| CLOVE: Congestion aware load balancing at the virtual edge | ||
| Lecture Notes | ||
| 12 | P4 Applications (2) | SONATA: Network Monitoring as a Streaming Analytics Problem | 
| NetCache: Balancing Key-Value Stores with Fast In-Network Caching | ||
| Generic External Memory for Switch Data Planes | ||
| Lecture Notes | ||
            포스텍 컴퓨터공학과 교수
University of Western Ontario Computer Science 석사
University of Waterloo Computer Science 박사
전) KT 종합기술원장 (CTO)
POSTECH 컴퓨터공학과 교수
POSTECH 정보통신대학원장
            포스텍 컴퓨터공학과