홍원기
포스텍 컴퓨터공학과 교수
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 정보통신대학원장
포스텍 컴퓨터공학과