Download presentation
Presentation is loading. Please wait.
Published byLorraine Nicholson Modified 5년 전
1
P4 : Programming Protocol-Independent Packet Processors
컴퓨터공학과 이지운
2
개요 P4:Programming Protocol-Independent Packet Processors 요약 Openflow
P4 Language Finishing Q&A
3
P4:Programming Protocol-Independent Packet Processors 요약
OpenFlow is simple Multiple Stages of heterogeneous table Still not enough (e.g., VXLAN, NVGRE, STT, …) Future SDN Switches? Configurable Packet parser Not tied to a specific header format Flexible match+action table Mutiple tables (in series and/or parallel) Able to match on all defined fileds General packet-processing primitives copy, add, remove and modify For both header fields and meta-data New Geneation of Switch ASCISs Intel FlexPipe RMT [SIGCOMM’13] Cisco Doppler But, Programming these chips is HARD Custom, vendor-specific interfaces Low-level, akin to microcode programming Need a Higher-Level Interface! thress Goals! Reconfigurability Procotol Independence Target independence
4
P4:Programming Protocol-Independent Packet Processors 요약 (2)
Conclusion OpenFlow 1.x Vendor-agnostic API But, only for fixed-function switches Alternate future Reconfigurability Procotol Independence Target independence P4 Language : proposal
5
Chapter 1 OpenFlow
6
OpenFlow SDN을 구현하기 위해 처음으로 제정된 표준 인터페이스
OpenFlow 스위치, OpenFlow 컨 트롤러로 구성되며, 흐름(flow) 정보를 제어하여 패킷의 전달 경로 및 방식을 결정
7
OpenFlow History
8
OpenFlow 동작 방식 OpenFlow 스위치 내부에는 패킷 전달 경로와 방식에 대한 정보를 가지고 있는 FlowTable이라 는 것이 존재 패킷이 발생하면 제일 먼저 FlowTable이 해당 패킷에 대한 정보를 가지고 있는지 확인 패킷에 대한 정보가 존재하면 그에 맞춰 패킷을 처리하고, 정보가 존재하지 않으면 해당 패 킷에 대한 제어 정보를 OpenFlow 컨트롤러에 요청 스위치로부터 제어 정보를 요청받은 OpenFlow 컨트롤러는 내부에 존재하는 패킷 제어 정보 를 확인하고, 해당 결과를 OpenFlow 스위치에 전달 OpenFlow 컨트롤러 내의 패킷 제어 정보는 외부의 프로그램에서 API를 통해 입력할 수 있음 OpenFlow 스위치는 컨트롤러로부터 전달 받은 제어 정보를 FlowTable에 저장하고, 이후 동일 한 패킷이 발생하면 FlowTable에 있는 정보를 활용하여 패킷을 전달
9
OpenFlow 패킷 제어 정보 (1) OpenFlow에서 패킷을 제어하는 정보는 FlowTable에 저장되어 있으며, 다음 그림과 같이 Header Fields, Counters, Actions로 구성된다. 헤더 필드(header fields)에는 스위치 포트, 이더넷 및 프로토콜 정보, 출발지(source)/목적지(destination)의 MAC·IP·포트·우선순위가 저장 헤더 필드 정보와 패킷의 정보의 일치 여부에 따라, 발생한 패킷이 FlowTable에 존재하는지 결정
10
OpenFlow 패킷 제어 정보 (2) 액션(actions)은 패킷 정보가 헤더 필드 정보와 일치할 때 어떻게 패킷을 처리할지에 대한 정보를 담고 있으 며, 처리 방식은 다음 3가지가 있음 스위치에 정의되어 있는 경로에 따라 패킷 전달 정해진 하나의 포트 또는 여러 개의 포트로 패킷 전달(전달 경로 변경) 패킷이 더 이상 전달되지 못하도록 차단(drop) 카운터(counters)는 FlowTable에 제어 정보가 등록된 순간부터 현재까지의 시간을 측정하는 용도로 사용 FlowTable에 등록된 제어 정보는 영구적으로 저장하거나 정해진 시간 동안만 유지할 수 있는데, 카운터는 후 자의 경우 생명 주기(life cycle) 관리에 사용
11
Chapter 2 P4 Language
12
P4 Language Packet forward dataplanes 의 프로그래밍을 허용할 수 있도록 설계 되었으며, 파이썬과는 달리 네트워 크 데이터 전송에 최적화 되어 있는 특정 언어 특히 Packet forwarding applications 을 목표로 하고 있으며, 3가지 목표를 충족시키도록 설계되어 있음
13
P4’s 3 Goals Target Independence
Program without knowledge of switch details Rely on complier to configure target switch Protocol Independence Configure a packet parser Match-actions not tied to any specific network protocols Define a set of type match-action table Reconfigurability Change parsing and processing in the field
14
P4 Language Configuration achieved with a program language describing parsing and control Flow tables populated with Classic Openflow (1.x) Complier maps parser and tables to specialized hardware or software
15
Match-Action Forwarding Abstraction (OpenFlow 1.x)
16
P4 Configuration abstractions (1)
Header Ordered list of fields with name and width Parser State machine traversing the packet to extract header fields Action Function Custom functions made of primitive actions (add_field, remove_header, longest prefix, range, etc... ) Control Flow Table application order, conditionals, functions Stateful memories Counter, meters and registers which persist across packets
17
P4 Configuration abstractions (2)
18
P4 Configuration abstractions (3)
Flow of Control from one table to the next Collection of Functions, conditions, and tables
19
P4 Complier Parser Programmable parser :translate to state machine
Fixed parser : verify the description is consistent Control program Target-independent : table graph of dependencies Target-dependent : Mapping to switch resource Rule Translation Verify that rules agree with the table types Translate the rules to the physical tables
20
P4 Compling to taget switches
Software switches Directly map the table graph to switch tables Use data structure for exact/prefix/ternary match H/W Swtiches with RAM and TCAM RAM : Hash table for tables with exact match TCAM : for tables with wildcards in the match Switches with parallel table Analyze table graph for possible concurrency
21
P4 Compling to taget switches
Software switches Directly map the table graph to switch tables Use data structure for exact/prefix/ternary match H/W Swtiches with RAM and TCAM RAM : Hash table for tables with exact match TCAM : for tables with wildcards in the match Switches with parallel table Analyze table graph for possible concurrency Applying actions at the end of pipeline Use meta-data to perform actins at the end
22
Summary (1)
23
Summary (2)
24
Finishing
25
Q&A
Similar presentations