
홍원기
포항공과대학교
University of Western Ontario Computer Science 석사
University of Waterloo Computer Science 박사
전) KT 종합기술원장 (CTO)
포항공과대학교 컴퓨터공학과 교수
포항공과대학교 정보통신대학원장
본 강좌는 데이터 평면 프로그래밍의 개념에 대해 소개하고, 프로그래머블 스위치를 프로그래밍할 수 있는 대표적인 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 컴퓨터공학과
포스텍 컴퓨터공학과 교수
University of Western Ontario Computer Science 석사
University of Waterloo Computer Science 박사
전) KT 종합기술원장 (CTO)
POSTECH 컴퓨터공학과 교수
POSTECH 정보통신대학원장