Skip to main content

P4: Programming Protocol-independent Packet Processor


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:

  • Basic understanding of SDN (Software-Defined Networking)
  • Basic understanding of NFV (Network Function Virtualization)
  • Basic understanding of Network Monitoring


강좌 목차

주차주차
1P4 OverviewData plane programming - What and why?
P4: Programming Protocol-independent Packet Processor (1)
P4: Programming Protocol-independent Packet Processor (2)
Lecture Notes
Discussion
2P4 BasicsP4 Architecture Model
Portable Switch Architecture (1)
Portable Switch Architecture (2)
Lecture Notes
Discussion
3P4 Language Basics (1)Programming Approach
Data Types & Parser
Match & Action Programming: Controls and Actions
Lecture Notes
Discussion
4P4 Language Basics (2)Match & Action Programming - Tables
Deparser
How to compile & run
Lecture Notes
Discussion
5Reading Week 1Reading Week 1
6P4 Programming TutorialTutorial 1 - Basic Forwarding
Tutorial 1 - Basic Forwarding (Solution)
Tutorial 2 - Basic Tunneling
Tutorial 2 - Basic Tunneling (Solution)
Lecture Notes
7P4 Runtimeprotobuf
gRPC
P4Runtime
Lecture Notes
8P4 Support in ONOSIntroduction on ONOS
P4 and P4Runtime Support in ONOS
P4 Usecases in ONOS
Lecture Notes
9P4Runtime & ONOS TutorialTutorial Overview
Tutorial 1 - Reactive Forwarding
Tutorial 2 - MyTunnel App
Lecture Notes
10Reading Week 2Reeding Week 2
11P4 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
12P4 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 컴퓨터공학과



Enroll