FOSDEM15 SDN developer room talk
DPDK performance
How to not just do a demo with DPDK
The Intel DPDK provides a platform for building high performance Network Function Virtualization applications. But it is hard to get high performance unless certain design tradeoffs are made. This talk focuses on the lessons learned in creating the Brocade vRouter using DPDK. It covers some of the architecture, locking and low level issues that all have to be dealt with to achieve 80 Million packets per second forwarding.
This presentation covers the basics about OpenvSwitch and its components. OpenvSwitch is a Open Source implementation of OpenFlow by the Nicira team.
It also also talks about OpenvSwitch and its role in OpenStack Networking
XDP in Practice: DDoS Mitigation @CloudflareC4Media
Video and slides synchronized, mp3 and slide download available at URL https://bit.ly/2NtlaER.
Gilberto Bertin discusses the architecture of Cloudflare’s automatic DDoS mitigation pipeline, the initial packet filtering solution based on Iptables, and why Cloudflare had to introduce userspace offload. Bertin also describes how they switched from a proprietary offload technology to XDP for network stack bypass and how they are using XDP to load balance traffic. Filmed at qconlondon.com.
Gilberto Bertin works as a System Engineer at Cloudflare London. After working on variety of technologies like P2P VPNs and userspace TCP/IP stacks, he joined the Cloudflare DDoS team in London to help filter all the bad internet traffic.
High-Performance Networking Using eBPF, XDP, and io_uringScyllaDB
In the networking world there are a number of ways to increase performance over naive use of basic Berkeley sockets. These techniques have ranged from polling blocking sockets, non-blocking sockets controlled by Epoll, all the way through completely bypassing the Linux kernel for maximum network performance where you talk directly to the network interface card by using something like DPDK or Netmap. All these tools have their place, and generally occupy a space from convenience to performance. But in recent years, that landscape has changed massively.. The tools available to the average Linux systems developer have improved from the creation of io_uring, to the expansion of bpf from a simple filtering language to a full-on programming environment embedded directly in the kernel. Along with that came something called XDP (express datapath). This was Linux kernel's answer to kernel-bypass networking. AF_XDP is the new socket type created by this feature, and generally works very similarly to something like DPDK. History lessons out of the way, this talk will look into, and discuss the merits of this technology, it's place in the broader ecosystem and how it can be used to attain the highest level of performance possible. This talk will dive into crucial details, such as how AF_XDP works, how it can be integrated into a larger system and finally more advanced topics such as request sharding/load balancing. There will be detailed look at the design of AF_XDP, the eBpf code used, as well as the userspace code required to drive it all. It will also include performance numbers from this setup compared to regular kernel networking. And most importantly how to put all this together to handle as much data as possible on a single modern multi-core system.
FOSDEM15 SDN developer room talk
DPDK performance
How to not just do a demo with DPDK
The Intel DPDK provides a platform for building high performance Network Function Virtualization applications. But it is hard to get high performance unless certain design tradeoffs are made. This talk focuses on the lessons learned in creating the Brocade vRouter using DPDK. It covers some of the architecture, locking and low level issues that all have to be dealt with to achieve 80 Million packets per second forwarding.
This presentation covers the basics about OpenvSwitch and its components. OpenvSwitch is a Open Source implementation of OpenFlow by the Nicira team.
It also also talks about OpenvSwitch and its role in OpenStack Networking
XDP in Practice: DDoS Mitigation @CloudflareC4Media
Video and slides synchronized, mp3 and slide download available at URL https://bit.ly/2NtlaER.
Gilberto Bertin discusses the architecture of Cloudflare’s automatic DDoS mitigation pipeline, the initial packet filtering solution based on Iptables, and why Cloudflare had to introduce userspace offload. Bertin also describes how they switched from a proprietary offload technology to XDP for network stack bypass and how they are using XDP to load balance traffic. Filmed at qconlondon.com.
Gilberto Bertin works as a System Engineer at Cloudflare London. After working on variety of technologies like P2P VPNs and userspace TCP/IP stacks, he joined the Cloudflare DDoS team in London to help filter all the bad internet traffic.
High-Performance Networking Using eBPF, XDP, and io_uringScyllaDB
In the networking world there are a number of ways to increase performance over naive use of basic Berkeley sockets. These techniques have ranged from polling blocking sockets, non-blocking sockets controlled by Epoll, all the way through completely bypassing the Linux kernel for maximum network performance where you talk directly to the network interface card by using something like DPDK or Netmap. All these tools have their place, and generally occupy a space from convenience to performance. But in recent years, that landscape has changed massively.. The tools available to the average Linux systems developer have improved from the creation of io_uring, to the expansion of bpf from a simple filtering language to a full-on programming environment embedded directly in the kernel. Along with that came something called XDP (express datapath). This was Linux kernel's answer to kernel-bypass networking. AF_XDP is the new socket type created by this feature, and generally works very similarly to something like DPDK. History lessons out of the way, this talk will look into, and discuss the merits of this technology, it's place in the broader ecosystem and how it can be used to attain the highest level of performance possible. This talk will dive into crucial details, such as how AF_XDP works, how it can be integrated into a larger system and finally more advanced topics such as request sharding/load balancing. There will be detailed look at the design of AF_XDP, the eBpf code used, as well as the userspace code required to drive it all. It will also include performance numbers from this setup compared to regular kernel networking. And most importantly how to put all this together to handle as much data as possible on a single modern multi-core system.
Using eBPF for High-Performance Networking in CiliumScyllaDB
The Cilium project is a popular networking solution for Kubernetes, based on eBPF. This talk uses eBPF code and demos to explore the basics of how Cilium makes network connections, and manipulates packets so that they can avoid traversing the kernel's built-in networking stack. You'll see how eBPF enables high-performance networking as well as deep network observability and security.
In this talk Jiří Pírko discusses the design and evolution of the VLAN implementation in Linux, the challenges and pitfalls as well as hardware acceleration and alternative implementations.
Jiří Pírko is a major contributor to kernel networking and the creator of libteam for link aggregation.
DPDK (Data Plane Development Kit) Overview by Rami Rosen
* Background and short history
* Advantages and disadvantages
- Very High speed networking acceleration in L2
- How this acceleration is achieved (hugepages, optimizations)
- rte_kni (and KCP)
- VPP (and FD.io project) , providing routing and switching.
- TLDK (Transport Layer Development Kit, TCP/UDP)
* Anatomy of a simple DPDK application.
* Development and governance model
* Testpmd: DPDK CLI tool
* DDP - Dynamic Device Profiles
Rami Rosen is a Linux Kernel expert, the author of "Linux Kernel Networking", Apress, 2014.
Rami had published two articles about DPDK in the last year:
"Network acceleration with DPDK"
https://lwn.net/Articles/725254/
"Userspace Networking with DPDK"
https://www.linuxjournal.com/content/userspace-networking-dpdk
This presentation features a walk through the Linux kernel networking stack covering the essentials and recent developments a developer needs to know. Our starting point is the network card driver as it feeds a packet into the stack. We will follow the packet as it traverses through various subsystems such as packet filtering, routing, protocol stacks, and the socket layer. We will pause here and there to look into concepts such as segmentation offloading, TCP small queues, and low latency polling. We will cover APIs exposed by the kernel that go beyond use of write()/read() on sockets and will look into how they are implemented on the kernel side.
netfilter is a framework provided by the Linux kernel that allows various networking-related operations to be implemented in the form of customized handlers.
iptables is a user-space application program that allows a system administrator to configure the tables provided by the Linux kernel firewall (implemented as different netfilter modules) and the chains and rules it stores.
Many systems use iptables/netfilter, Linux's native packet filtering/mangling framework since Linux 2.4, be it home routers or sophisticated cloud network stacks.
In this session, we will talk about the netfilter framework and its facilities, explain how basic filtering and mangling use-cases are implemented using iptables, and introduce some less common but powerful extensions of iptables.
Shmulik Ladkani, Chief Architect at Nsof Networks.
Long time network veteran and kernel geek.
Shmulik started his career at Jungo (acquired by NDS/Cisco) implementing residential gateway software, focusing on embedded Linux, Linux kernel, networking and hardware/software integration.
Some billions of forwarded packets later, Shmulik left his position as Jungo's lead architect and joined Ravello Systems (acquired by Oracle) as tech lead, developing a virtual data center as a cloud-based service, focusing around virtualization systems, network virtualization and SDN.
Recently he co-founded Nsof Networks, where he's been busy architecting network infrastructure as a cloud-based service, gazing at internet routes in astonishment, and playing the chkuku.
An Introduction to eBPF (and cBPF). Topics covered include history, implementation, program types & maps. Also gives a brief introduction to XDP and DPDK
Slides of our CoNEXT'19 presentation of "RSS++: load and state-aware receive side scaling", a technique to insure a good load-balancing among multiple cores of a server for networking application.
this slide is created for understand open vswitch more easily.
so I tried to make it practical. if you just follow up this scenario, then you will get some knowledge about OVS.
In this document, I mainly use only two command "ip" and "ovs-vsctl" to show you the ability of these commands.
Using eBPF for High-Performance Networking in CiliumScyllaDB
The Cilium project is a popular networking solution for Kubernetes, based on eBPF. This talk uses eBPF code and demos to explore the basics of how Cilium makes network connections, and manipulates packets so that they can avoid traversing the kernel's built-in networking stack. You'll see how eBPF enables high-performance networking as well as deep network observability and security.
In this talk Jiří Pírko discusses the design and evolution of the VLAN implementation in Linux, the challenges and pitfalls as well as hardware acceleration and alternative implementations.
Jiří Pírko is a major contributor to kernel networking and the creator of libteam for link aggregation.
DPDK (Data Plane Development Kit) Overview by Rami Rosen
* Background and short history
* Advantages and disadvantages
- Very High speed networking acceleration in L2
- How this acceleration is achieved (hugepages, optimizations)
- rte_kni (and KCP)
- VPP (and FD.io project) , providing routing and switching.
- TLDK (Transport Layer Development Kit, TCP/UDP)
* Anatomy of a simple DPDK application.
* Development and governance model
* Testpmd: DPDK CLI tool
* DDP - Dynamic Device Profiles
Rami Rosen is a Linux Kernel expert, the author of "Linux Kernel Networking", Apress, 2014.
Rami had published two articles about DPDK in the last year:
"Network acceleration with DPDK"
https://lwn.net/Articles/725254/
"Userspace Networking with DPDK"
https://www.linuxjournal.com/content/userspace-networking-dpdk
This presentation features a walk through the Linux kernel networking stack covering the essentials and recent developments a developer needs to know. Our starting point is the network card driver as it feeds a packet into the stack. We will follow the packet as it traverses through various subsystems such as packet filtering, routing, protocol stacks, and the socket layer. We will pause here and there to look into concepts such as segmentation offloading, TCP small queues, and low latency polling. We will cover APIs exposed by the kernel that go beyond use of write()/read() on sockets and will look into how they are implemented on the kernel side.
netfilter is a framework provided by the Linux kernel that allows various networking-related operations to be implemented in the form of customized handlers.
iptables is a user-space application program that allows a system administrator to configure the tables provided by the Linux kernel firewall (implemented as different netfilter modules) and the chains and rules it stores.
Many systems use iptables/netfilter, Linux's native packet filtering/mangling framework since Linux 2.4, be it home routers or sophisticated cloud network stacks.
In this session, we will talk about the netfilter framework and its facilities, explain how basic filtering and mangling use-cases are implemented using iptables, and introduce some less common but powerful extensions of iptables.
Shmulik Ladkani, Chief Architect at Nsof Networks.
Long time network veteran and kernel geek.
Shmulik started his career at Jungo (acquired by NDS/Cisco) implementing residential gateway software, focusing on embedded Linux, Linux kernel, networking and hardware/software integration.
Some billions of forwarded packets later, Shmulik left his position as Jungo's lead architect and joined Ravello Systems (acquired by Oracle) as tech lead, developing a virtual data center as a cloud-based service, focusing around virtualization systems, network virtualization and SDN.
Recently he co-founded Nsof Networks, where he's been busy architecting network infrastructure as a cloud-based service, gazing at internet routes in astonishment, and playing the chkuku.
An Introduction to eBPF (and cBPF). Topics covered include history, implementation, program types & maps. Also gives a brief introduction to XDP and DPDK
Slides of our CoNEXT'19 presentation of "RSS++: load and state-aware receive side scaling", a technique to insure a good load-balancing among multiple cores of a server for networking application.
this slide is created for understand open vswitch more easily.
so I tried to make it practical. if you just follow up this scenario, then you will get some knowledge about OVS.
In this document, I mainly use only two command "ip" and "ovs-vsctl" to show you the ability of these commands.
In-memory Caching: Curb Tail Latency with PelikanC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2h34ibv.
Yao Yue introduces Pelikan, a framework to implement distributed caches such as Memcached and Redis. Filmed at qconsf.com.
Yao Yue is a Distributed Systems Engineer Working on Cache at Twitter.
리눅스 스터디 1회차 in KOSMOS
VM에 설치하므로 이미지 부분은 건너뛰세요.
on Onedrive:
https://onedrive.live.com/redir?resid=c4dd3c6db99e8d1a!11192&authkey=!ALtcH-dt9PGfl58&ithint=file%2cpptx
빅데이터 개념 부터 시작해서 빅데이터 분석 플랫폼의 출현(hadoop)과 스파크의 등장배경까지 풀어서 작성된 spark 소개 자료 입니다.
스파크는 RDD에 대한 개념과 spark SQL 라이브러리에 대한 자료가 조금 자세히 설명 되어있습니다. (텅스텐엔진, 카탈리스트 옵티마이져에 대한 간략한 설명이 있습니다.)
마지막에는 간단한 설치 및 interactive 분석 실습자료가 포함되어 있습니다.
원본 ppt 를 공개해 두었으니 언제 어디서든 필요에 따라 변형하여 사용하시되 출처만 잘 남겨주시면 감사드리겠습니다.
다른 슬라이드나, 블로그에서 사용된 그림과 참고한 자료들은 작게 출처를 표시해두었는데, 본 ppt의 초기버전을 작성하면서 찾았던 일부 자료들은 출처가 불분명한 상태입니다. 자료 출처를 알려주시면 반영하여 수정해 두도록하겠습니다. (제보 부탁드립니다!)
목차
1. INTRODUCE
2. Platform
a. Northbound app & Interfaces
b. Controller Platform Services/Applications
i. Services & Applications
ii. Service Abstraction Layer/Core
c. Southbound Interfaces & Protocol Plugins
d. Data Plane Elements
3. ODL Multi Controller Distributed
4. Release Note
5. ODL & Tools Install
a. ODL install
b. Tool(Open vSwitch & Mininet) Install
6. ODL view
NetApp AI Control Plane for Kubernetes and Kubeflow
NetApp AI Data Control Plane for Kubernetes and Kubeflow
NetApp Trident and Python REST API for Kubernetes and Kubeflow
2. ㈜유미테크2㈜유미테크 DPDK
1. DPDK란?
2. Environmennt Abstraction Layer
3. Ethernet Poll Mode Driver Architecture
4. 주요 라이브러리
5. DPDK 개발 환경
6. 네트워크 카드 Driver Setting
7. Compiling a Sample Application
8. 테스트 환경 구성
9. DPDK 응용 기본 흐름도
10.향후 계획
개요
4. ㈜유미테크4㈜유미테크 DPDK
DPDK : Data plane Development Kit
- Intel Architecture 기반 패킷 처리 최적화 시스템 소프트웨어
- 패킷 처리 속도 최적화 프레임 워크 지원
- 어플리케이션 개발자는 로직 개발에 충실
x86 플랫폼에 고속 패킷 처리를 위한 라이브러리와 드라이버의 집합
- 리눅스 사용자 공간 IO 동작
- 프로파일에 필요한 모든 원소를 제공
- 고성능 패킷 처리 애플리케이션 작성
DPDK Libraries and Drivers
- Memory Manager : object pools, huge page memory, object ring, alignment
- Buffer Manager : pre-allocates fixed size buffers
- Queue Manager : safe lockless queues, no spinlocks, avoiding wait times
- Poll Mode Drivers : no asynchronous, interrupt-based signaling mechanisms
- Flow Classification : a hash based on tuple information
1.1 DPDK란?
5. ㈜유미테크5㈜유미테크 DPDK
DPDK 장점
- 고성능 패킷 처리
- 고가의 장비를 사용 하지 않아도 된다.
- CPU가 지장 받지 않고 작업을 수행 할 수 있다.
DPDK 단점
- DPDK를 사용하기 위한 랜카드 종류가 한정되어 있다. (2014. 06 현재)
• e1000 (82540, 82545, 82546)
• e1000e (82571..82574, 82583, ich8..ich10, pch..pch2)
• igb (82575..82576, 82580, i210, i211, i350, i354, dh89xxcc)
• ixgbe (82598..82599, x540)
• i40e (xl710)
1.2 DPDK 장점과 단점
6. ㈜유미테크6㈜유미테크 DPDK
활용 사례
- 윈드리버 : 실시간 가상화 소프트 웨어
• 네트워크 기능 가상화, NFV 및 클라우드 환경을 위한 윈드리버 OVP 개발
• 고속 네트워크 환경 및 물리적 디바이스에 필적하는 고성능 제공
• 네트워크 구간의 어디에서든 유연하게 운용 가능, TOC 절감
• 서비스 제공사의 네트워크 활용도 향상, 서비스 적용시간 단축
- 6WIND : 6WINDGate 소프트 웨어
• 모바일 인프라 스트럭쳐와 네트워킹 제품의 개발
1.3 DPDK 활용 사례
8. ㈜유미테크8㈜유미테크 DPDK
Core Components Architecture
- rte_timer : Timer 기능. EAL에서 제공되는 타이머 인터페이스 기반으로 DPDK 실행 단위로 타
이머 서비스를 제공
- rte_malloc : hugepages에 메모리 할당
- rte_mempool : 메모리에 있는 개체의 풀을 할당
- rte_eal + libc : 응용 프로그램 로딩, 메모리 할당. 시간 인터페이스, PCI 접근 및 로딩 지원
- rte_mbuf : IP 트래픽 및 메시지 데이터 패킷의 버퍼를 지원
- rte_ring : 크기가 고정 된 개체를 저장하거나 코어 사이의 통신을 허용하는 FIFO를 고정
1.4 Core Components
10. ㈜유미테크10㈜유미테크 DPDK
하드웨어 및 메모리 공간과 같은 낮은 수준의 리소스를 엑세스 한다.
EAL은 응용 프로그램 및 라이브러리에서 환경 특성을 숨기는 일반적인 인터페이스를 제공
자원을 할당하는 방법을 결정하는 초기화 루틴을 책임진다.
EAL – 어플리케이션과 라이브러리로부터 인터페이스에 대한 서비스를 제공
- Intel DPDK loading and launching
- Support for multi-process and multi-thread execution types
- Core affinity / assignment procedures
- System memory allocation / de-allocation
- Atomic / lock operations
- Time reference
- PCI bus access
- Trace and debug functions
- CPU feature identification
- Interrupt handling
- alarm operations
2.1 Environment Abstraction Layer
11. ㈜유미테크11㈜유미테크 DPDK
The EAL options are as follows
2.2 The EAL options are as follows
$ example –c 0x5 –n 4 …
0 1 0 1
0123
13. ㈜유미테크13㈜유미테크 DPDK
1Gbe and 10Gbe 이더넷을 폴링 모드 드라이버를 포함하며 비동기 없이 작동하도록 설계 이더
넷 컨트롤러, 신호 전달 메커니즘을 기반으로한 인터럽트
장치를 구성, 사용자 공간에서 BSD 드라이버 실행을 통해 API를 제공하고 각각의 큐를 구성
PMD는 수신 프로세스 및 사용자의 어플리세이션에서 패킷을 임의의 인터럽트 없이 신속하게
전달하는 직접적인 디스크립터
3. Ethernet Poll Mode Driver Architecture
15. ㈜유미테크15㈜유미테크 DPDK
Packet Forwarding Algorithm Suport
- 패킷 포워딩 알고리즘을 지원하는 라이브러리
librte_net
- IP 프로토콜을 정의하고 편리한 매크로를 가지고 있다.
Ring Library
- Ring Lib는 큐를 관리 할수 있다.
- 무한한 크기의 연결 리스트를 갖는다.
- rte_ring의 속성
• FIFO
• 최대 크기는 고정되고 포인터는 테이블에 저장된다.
• Lockless implementation
• Multi-consumer, single-consumer는 대기열에서 제외된다.
• Multi-producer, single-producer는 대기열에 포함된다.
• Bulk dequeue – 성공하면 지정된 개체 수를 뺀다. 그렇지 않으면 실패
• Bulk enqueue – 성공하면 지정된 개체수를 큐에 넣는다. 그렇지 않으면 실패
• Burst dequeue – 지정된 수를 충족 할 수 없는 경우 최대 사용 가능한 개체 큐에서 제거된다.
• Burst enqueue – 지정된 개체수가 성취 될 수 없는 경우에 최대 개체를 저장한다
4. 주요 라이브러리
17. ㈜유미테크17㈜유미테크 DPDK
DPDK 지원
- Kernel version : 2.6.33 이상 (개발 서버 버전: 3.13.0)
- glibc : 2.7 이상
테스트 환경 (Ubuntu 12.10)
- ixbge 모듈 기본 탑재 (인텔 10G 네트워크 드라이버)
커널 환경 설정 (hugepages)
- hugepages = 1024
- default_hugepagesz=1G hugepagesz=1G hugepages=4
- echo 2048 > /sys/kernel/mm/hugepages/hugepages-2048KB/nr_hugepages
- echo 2048 > /sys/devices/system/node/node0hugepages/hugepages-
2048KB/nr_hugepages
- mkdir /mnt/huge && mount –t hugetlbfs nodev /mnt/huge
5.1 DPDK 개발 환경
18. ㈜유미테크18㈜유미테크 DPDK
Compilation of the Intel DPDK
- Required Tools
• GNU make
• coreutils : cmp, sed, grep, arch
• gcc(version 4.5.x 이상)
• libc headers(glibc-devel.i686 / libc6-dev-i386; glibc-devel.x86_64)
• Linux kernel headers or sources required to build kernel modules
• Additional packages required for 32-bit compilation on 64-bit systems are:
glibc.i686, libgcc.i686, libstdc++.i686 and glibc-devel.i686
• Python(version 2.6 or 2.7)
- Optional Tools
• C++ Compiler(icc)
• libpcap headers and libraries to compile and use the libpcap-based poll-mode driver
This driver is disabled by default and can be enabled by setting
CONFIG_RTE_LIBRTE_PMD_PCAP=Y in the build time config file
5.1 DPDK 개발 환경
19. ㈜유미테크19㈜유미테크 DPDK
DPDK source directory
$ unzip DPDK-<version>.zip
$ cd DPDK-<version>
DPDK is composed of several directories :
- lib : Source code of Intel DPDK libraries
- app : Source code of Intel DPDK applications
- examples : Source code of Intel DPDK application examples
To install and make targets
$ make install T=x86_64-default-linuxapp-gcc
To prepare a target without building it
$ make config T=x86_64-default-linuxapp-gcc
5.2 DPDK 빌드
21. ㈜유미테크21㈜유미테크 DPDK
네트워크 카드 설정
- Kernel
6.1 Kernel Driver 모드 Setting
• IP 설정
- 경로 : /etc/network/interfaces
- 설정 내용
- 인터페이스 재시작
$ /etc/init.d/networking restart
- 인터페이스 활성화
$ ifconfig <interface name> up
- 인터페이스 비활성화
$ ifconfig <interface name> down
auto <interface name>
iface <interface name> inet static
Address <ip>
Netmask <netmask>
Network <network>
Broadcast <broadcast>
Gateway <gateway>
Dns-nameservers <dns-nameservers>
Dns-search <dns-search>
• 라우팅 설정
- 특정 IP에서 오는 패킷을 특정 인터페이스로 수신
$ route add –net <ip> netmask <netmask> dev <interface name>
- 설정된 라우팅 테이블 삭제
$ route net –net <ip> netmask <netmask> dev <interface name>
- 리눅스 재시작 시 라우팅 테이블 설정
- 경로 : /etc/network/interface
Up route add –net <ip> netmask <netmask> dev <interface name>
22. ㈜유미테크22㈜유미테크 DPDK
네트워크 카드 설정
- Loading the Intel DPDK igb_uio Module
$ cd <DPDK>/x86_64-default-linuxapp-gcc
$ sudo modprobe uio
$ sudo insmod kmod/igb_uio.ko
- Binding and Unbinding Network Ports to / from the igb_uio Module
$ ./tools/pci_unbinnd.py – status
6.2 UIO Driver 모드 Setting
23. ㈜유미테크23㈜유미테크 DPDK
네트워크 카드 설정
- To bind device eth2, 0000:0a:00.0, to the igb_uio driver :
$ ./tools/pci_unbind.py – bind=igb_uio 0a:00.0 or ./tools/pci_unbind.py – bind=igb_uio eth2
$ ./tools/pci_unbind.py – bind=igb_uio 0a:00.1 or ./tools/pci_unbind.py – bind=igb_uio eth3
• Routing table indicates that interface 0000:0a:00.1 is active. Not modifying 메시지
발생 시 설정 하려는 인터페이스를 사용하지 않는 상태로 변경 후 다시 위 의 명령어를
실행
6.2 UIO Driver 모드 Setting
25. ㈜유미테크25㈜유미테크 DPDK
When compiling an application in the Linux* environment on the Intel DPDK, the following
variables must be exported :
- RTE_SDK – Points to the Intel DPDK installation directory
$ export RTE_SDK=/home/ymtech/dpdk/DPDK-1.6.0
- RTE_TARGET – Points to the Intel DPDK target environment directory
$ export RTE_TARGET=x86_64-default-linuxapp-gcc
Sample – helloworld
- helloworld 위치로 이동
7. Compiling a Sample Application
31. ㈜유미테크31㈜유미테크 DPDK
9. DPDK 응용 기본 흐름도
시작
(main)
EAL 초기화
(rte_eal_inet)
종료
메모리 할당
(rte_mempool_cre
ate)
드라이버 초기화
(rte_pmd_init_all)
등록된 PCI Driver
확인
(rte_eal_pci_probe)
드라이버가 초기화
된 이더넷 장치의 수
(rte_eth_dev_count )
이더넷 장치의 상황
에 맞는 정보 검색
(rte_eth_dev_info_
get)
이더넷 장치를 구성
(rte_eth_dev_confi
gure)
이더넷 장치의 주소
를 검색
(rte_eth_macaddr_
get)
이더넷 장치에 대한
수신 큐를 할당
(rte_eth_rx_queue_
setup)
이더넷 장치 시작
(rrte_eth_dev_start)
모든 lcores 함수를
실행
(rte_eal_mp_remot
e_launch)
패킷이 수신되면 그
에 대한 포인터를
rte_mbuf 구조에 저
장(rte_eth_rx_burst)
수신된 패킷의 수
확인
수신된 패킷의 메
모리 해제
(rte_pktmbuf_free)
While
1초 주기로 수신
된 패킷 확인