DPDK (Data Plane Development Kit)는 고성능 패킷 처리를 위한 오픈 소스 라이브러리 및 드라이버 모음입니다.
여기서는 DPDK의 주요 계층 구조와 핵심 기능들을 살펴보고, 개발자를 위한 분석 팁과 유용한 자료들을 소개합니다.


DPDK의 계층별 구조 분석

DPDK는 크게 6개의 주요 계층으로 구성되어 있으며, 각 계층은 특정한 역할을 수행하며 유기적으로 연결되어 고성능 패킷 처리를 가능하게 합니다.

1. Core Layer (핵심 인프라 계층)

가장 기반이 되는 계층으로, 기본적인 실행 환경과 메모리 시스템을 설정합니다. **EAL (Environment Abstraction Layer)**은 rte_eal_init() 함수를 통해 초기화되며, CPU core affinity, NUMA (Non-Uniform Memory Access) 등을 지원하여 최적의 성능을 위한 기반을 제공합니다. 또한, Linux, FreeBSD와 같은 다양한 운영체제 및 플랫폼을 추상화하고, Timer, log, atomic 연산, memory barriers 등의 유틸리티를 제공합니다.

메모리 관리 측면에서는 고정 크기의 메모리 예약 영역인 Memzone (rte_memzone_reserve), 오브젝트 풀 생성 및 관리를 위한 Mempool (rte_mempool_create), 패킷 버퍼 구조체인 Mbuf (rte_pktmbuf_*), 그리고 Lockless 큐인 Ring buffer (rte_ring_create) 등을 제공하여 효율적인 메모리 사용과 빠른 데이터 접근을 가능하게 합니다.

2. Device Layer (드라이버 계층)

다양한 하드웨어 디바이스에 대한 추상화 및 드라이버를 제공하는 계층입니다. Bus Drivers는 PCI, VDEV (Virtual Device) 등을 지원하며, **Poll Mode Drivers (PMDs)**는 인터럽트 방식 대신 폴링 방식을 사용하여 패킷 수신 오버헤드를 줄이고 높은 처리량을 제공합니다. 이더넷 (ethdev: Intel, Mellanox, virtio 등), 암호화 (cryptodev: AESNI, QAT, OpenSSL), 압축 (compressdev: zlib, QAT), 이벤트 처리 (eventdev: hardware/software event scheduler), 머신러닝 추론 (mldev), 그리고 Rawdev, Regex, DMA 등의 다양한 장치를 지원합니다. 관련 디렉토리는 /drivers/, /lib/ethdev, /lib/cryptodev 등이 있습니다.

3. Packet Processing (패킷 처리 계층)

실질적인 패킷 처리 로직을 담당하는 계층입니다. Flow Classification을 위해 rte_flow API를 통해 NIC 하드웨어 오프로드 필터링을 지원하며, ACL (Access Control List), FDIR (Flow Director), Five-tuple filtering 등의 기능을 제공합니다. Lookup & Routing을 위해서는 Hash table, LPM (Longest Prefix Match) 등의 알고리즘을 제공하며, Exact match, LRU caching 등을 지원합니다. 또한, Load Balancing을 위한 RSS (Receive Side Scaling) 및 NIC Queue 관리 기능을 제공하며, IPv4, IPv6, TCP, UDP, IP fragmentation, IPsec, PDCP 등 다양한 Protocol Libraries를 포함하고 있습니다.

4. Scheduling & Frameworks (처리 프레임워크)

패킷 처리 흐름을 제어하고 고수준의 처리 기능을 제공하는 계층입니다. Eventdev는 비동기 이벤트 기반 처리를 통해 멀티큐 환경에 효율적으로 대응할 수 있도록 지원하며, Service Cores를 통해 특정 기능을 별도의 코어에 할당할 수 있습니다. Pipeline Framework를 통해 다단계 처리 그래프를 구성할 수 있으며, Graph API를 통해 DAG (Directed Acyclic Graph) 형태의 처리 플로우를 유연하게 구성할 수 있습니다.

5. Tools & Control (도구 및 제어 인터페이스)

시스템 구성, 디버깅, 성능 측정 등 운영에 필요한 유틸리티를 제공하는 계층입니다. CLI/Configuration을 위한 명령줄 파서 (rte_cmdline)와 runtime 설정 지원 기능을 제공하며, Telemetry API를 통해 소켓 기반으로 시스템 통계를 JSON 포맷 등으로 제공합니다. 주기적인 작업 예약을 위한 Timer (rte_timer), 그리고 디버깅 및 추적을 위한 Tracepoints, log level, PMD logging, DPDK 전용 로그 (rte_log, RTE_LOGTYPE_*) 등의 기능을 제공합니다.

6. Applications & Examples (활용 및 샘플)

DPDK를 활용한 레퍼런스 애플리케이션 및 예제 코드를 제공합니다. 대표적인 예로 다양한 NIC 기능을 테스트할 수 있는 TestPMD, 그리고 L2/L3 패킷 포워딩 예제인 l2fwd, l3fwd 등이 있습니다. 이 외에도 /examples/ 디렉토리에는 IPsec, KNI (Kernel Network Interface), VHOST, VMXNET3 등 다양한 기능의 예제 코드가 포함되어 있습니다. 관련 디렉토리는 /app/, /examples/, /usertools/ 입니다.

개발자를 위한 DPDK 분석 팁

DPDK 기반 개발을 진행하면서 소스 코드를 효과적으로 분석하는 것은 매우 중요합니다. 다음은 DPDK 소스 트리 기반 분석 가이드와 개발 팁입니다.

소스 트리 기반 분석 가이드

  • /lib/: 핵심 라이브러리 (eal, mempool, ethdev, hash 등)
  • /drivers/: PMD 구현체 (각 NIC 및 장치별 하위 디렉토리)
  • /app/: 기본 DPDK 애플리케이션 (testpmd 등)
  • /examples/: 기능별 예제 코드
  • /doc/: Doxygen 기반 문서
  • /usertools/: 스크립트 및 시스템 셋업 도구 (dpdk-setup.sh, dpdk-devbind.py)

개발자 분석 팁

  • rte_* API 호출 추적: grep rte_mempool_create, rte_eth_rx_burst, rte_flow_validate 등으로 핵심 흐름을 파악할 수 있습니다.
  • MAINTAINERS 파일: 각 모듈 담당자 및 디렉토리 역할을 파악하는 데 유용합니다.
  • meson.build: 빌드 대상 모듈 및 라이브러리를 확인하는 데 도움이 됩니다.

이 글에서는 고성능 패킷 처리를 위한 핵심 기술인 DPDK의 주요 계층 구조와 핵심 기능들을 살펴보았습니다. DPDK는 복잡하면서도 강력한 기능을 제공하며, 네트워크 성능 향상을 위한 다양한 가능성을 제시합니다.

참고 링크

고성능 패킷 처리를 위한 핵심 기술인 DPDK의 첫걸음, 즉 환경 설정과 빌드 시스템에 대한 심층 분석을 제공합니다. 이 글을 통해 DPDK 개발 환경을 구축하고, 다양한 빌드 옵션을 이해하여 자신에게 최적화된 개발 환경을 만들 수 있습니다.

개발 환경 설정 (Setting up the Development Environment)

DPDK 개발을 시작하기 위한 환경 설정은 다음과 같은 주요 단계를 포함합니다.

필수 소프트웨어 설치

DPDK를 빌드하고 실행하기 위해서는 기본적인 개발 도구들이 필요합니다.

  • 운영체제: Linux (Ubuntu, CentOS, Fedora 등) 환경을 권장합니다.
  • 컴파일러: GCC (GNU Compiler Collection) 최신 버전을 권장합니다.
  • 빌드 도구: Make, Meson (최신 DPDK 버전)
  • Python: 빌드 스크립트 및 유틸리티 실행에 필요합니다.
  • 개발 라이브러리: libnuma-dev, libpcap-dev, libxml2-dev, libssl-dev 등 (운영체제별로 다를 수 있습니다)
  • Hugepages 설정: DPDK는 대용량 메모리 할당 및 관리를 위해 Hugepages를 사용합니다. 시스템에 Hugepages를 설정해야 합니다.
# Hugepages 설정 예시 (2MB 페이지 1024개 할당)
sudo sysctl vm.nr_hugepages=1024
# 설정 확인
  cat /proc/meminfo | grep HugePages

DPDK 소스 코드 다운로드

DPDK 소스 코드는 공식 웹사이트 (https://www.dpdk.org/) 또는 GitHub (https://github.com/DPDK/dpdk)에서 다운로드할 수 있습니다. 안정적인 사용을 위해서는 릴리즈 버전을 다운로드하는 것을 권장합니다.

git clone https://github.com/DPDK/dpdk.git
cd dpdk
git checkout <원하는_버전> # 예: git checkout v23.09

DPDK 빌드 시스템 이해 (Understanding the DPDK Build System)

DPDK는 다양한 환경과 요구 사항을 지원하기 위해 여러 빌드 시스템을 제공합니다. 초기에는 Make 기반의 빌드 시스템을 사용했지만, 최신 버전에서는 Meson 빌드 시스템을 기본으로 채택하고 있습니다.

Make 기반 빌드 시스템 (Legacy)

과거 DPDK 버전에서 주로 사용된 Make 기반 빌드 시스템은 설정 파일(.config)을 통해 다양한 옵션을 설정하고 빌드를 수행합니다.

  • 설정: make config T=x86_64-native-linuxapp-gcc 와 같이 타겟 아키텍처 및 환경을 지정하여 설정 파일을 생성합니다.
  • 빌드: make -j<CPU 코어 수> 명령을 사용하여 빌드를 수행합니다.
  • 장점: 비교적 간단하고 익숙한 방식입니다.
  • 단점: 빌드 속도가 느리고, 의존성 관리가 복잡할 수 있습니다.

Meson 빌드 시스템 (Modern)

최신 DPDK 버전에서 권장하는 Meson은 더 빠르고 유연한 빌드 시스템입니다.

  • 설정: meson build 명령으로 빌드 디렉토리를 생성하고, meson configure -Doption=value 와 같이 다양한 빌드 옵션을 설정할 수 있습니다.
  • 빌드: ninja -C build 명령을 사용하여 빌드를 수행합니다. Ninja는 Meson과 함께 사용되는 고속 빌드 도구입니다.
  • 장점: 빠른 빌드 속도, 명확한 의존성 관리, 다양한 빌드 옵션 제공, 크로스 컴파일 지원이 용이합니다.
  • 단점: Make에 비해 상대적으로 새로운 시스템이라 익숙하지 않을 수 있습니다.

주요 빌드 옵션 (Key Build Options)

DPDK 빌드 시 설정할 수 있는 주요 옵션들은 다음과 같습니다.

  • --target / T: 타겟 아키텍처 및 환경을 지정합니다 (예: x86_64-native-linuxapp-gcc, arm64-dpaa2-linuxapp-arm64-gcc).
  • --enable-debug / CONFIG_RTE_BUILD_DEBUG: 디버깅 심볼을 포함한 빌드를 활성화합니다.
  • --enable-tests / CONFIG_RTE_BUILD_TESTS: 테스트 코드를 함께 빌드합니다.
  • --enable-drivers=... / CONFIG_RTE_DRIVERS: 특정 드라이버만 빌드하거나 제외할 수 있습니다.
  • --enable-bpf / CONFIG_RTE_LIBRTE_BPF: BPF (Berkeley Packet Filter) 지원을 활성화합니다.
  • --enable-cryptodev=... / CONFIG_RTE_LIBRTE_PMD_CRYPTO: 암호화 장치 드라이버를 활성화합니다.

Meson 빌드 시스템에서는 meson configure 명령과 meson_options.txt 파일을 통해 더 많은 옵션을 확인할 수 있습니다.

Make vs. Meson/Ninja: DPDK 빌드 시스템 비교

비교 항목 Make Meson/Ninja
빌드 속도 느림, 수동 병렬 처리 필요 (make -j) 매우 빠름, 기본적으로 병렬 빌드 수행 (ninja)
의존성 관리 수동 의존성 관리 필요, 재빌드 범위 과잉 발생 가능 자동 의존성 추적 및 효율적인 incremental build 지원
설정 파일 구조 단일 Makefile에 집중되어 있어 유지보수 어려움 meson.build 기반의 계층적 설정 구조, 가독성과 관리성 우수
설정 유연성 커스터마이징 가능하지만 복잡함 다양한 옵션을 meson configure로 직관적으로 조정 가능
크로스 컴파일 가능하지만 별도 환경설정과 추가 작업 필요 cross file을 통한 표준화된 방식 제공, 설정 간편
학습 곡선 낮음 (기존 GNU Make 사용자에 친숙함) 약간 높음 (Meson 문법과 설정 방식에 익숙해져야 함)
모듈성 / 유지보수성 낮음, 대형 프로젝트에서 구조적 한계 높음, 서브디렉토리별 설정 가능
플랫폼 지원 플랫폼 간 이식성 낮음 다양한 플랫폼 지원, 기본적으로 크로스 플랫폼 지향
최신 DPDK 호환성 점차 비공식화됨, DPDK 20.11 이후 deprecated DPDK의 공식 빌드 시스템으로 적극 지원
빌드 옵션 관리 매크로나 Makefile 직접 수정 필요 meson configure 명령으로 동적 설정 가능
도구 생태계 연동 기존 autotools와 호환성 있음 pkg-config, Python 스크립트와의 통합 우수

DPDK 빌드 시스템 이해하기

DPDK는 20.11 버전 이후부터 기존의 make 기반 시스템을 벗어나 Meson + Ninja 조합을 기본 빌드 시스템으로 채택했습니다. 이 시스템은 현대적인 C/C++ 프로젝트에 최적화된 빌드 환경을 제공하며, 설정의 명확성, 빠른 빌드 속도, 유지보수성 측면에서 기존 시스템을 능가합니다.

✅ 기본 빌드 흐름

# 1. Meson으로 빌드 디렉토리 초기화
meson setup build

# 2. 해당 디렉토리로 이동
cd build

# 3. Ninja를 이용한 실제 빌드 수행
ninja

🔍 설정 확인 및 수정

Meson은 configure 명령을 통해 현재 설정 상태를 확인하고 수정할 수 있습니다.

meson configure

 

출력 예시:

buildtype      : debugoptimized
platform       : native
examples       : true

필요시 meson configure -D<옵션>=<값> 형식으로 실시간 설정 변경이 가능합니다.

⚙️ 빌드 설정 최적화 팁

DPDK는 매우 유연한 설정을 지원하므로, 환경에 맞는 빌드 최적화가 가능합니다. 빌드 성능, 실행 최적화, 디버깅 편의성을 고려하여 아래와 같은 설정을 조합할 수 있습니다.

1. buildtype 설정

-Dbuildtype=release        # 성능 최적화용 (기본)
-Dbuildtype=debug          # 디버깅 전용 빌드
-Dbuildtype=debugoptimized # 디버깅 + 최적화 병행 (추천)

2. 예제 코드 포함 여부

-Dexamples=true   # 예제 코드 빌드 포함
-Dexamples=false  # 예제 코드 제외 (빌드 시간 단축)

3. 특정 라이브러리 활성/비활성

예: pcap 라이브러리 사용 여부

-Dpcap=true  # libpcap 지원 활성화

4. CPU 최적화 (native)

현재 시스템의 CPU 아키텍처에 맞춰 자동 최적화 빌드:

meson setup build -Dplatform=native


또는 커스텀 native.txt 파일 사용:

# native.txt
[built-in options]
c_args = ['-march=native']
c_link_args = ['-march=native']
meson setup build --native-file native.txt

5. 빌드 캐시 삭제 후 재설정 (클린 빌드)

rm -rf build
meson setup build

첫 번째 DPDK 애플리케이션 빌드 및 실행 (Building and Running Your First DPDK Application)

DPDK 빌드가 성공적으로 완료되면, 예제 애플리케이션을 통해 DPDK의 동작 방식을 확인할 수 있습니다. examples 폴더에는 다양한 예제 코드가 제공됩니다.

cd examples/l2fwd
# Make 기반 빌드시
sudo make -j$(nproc)

# Meson 기반 빌드시 (빌드 디렉토리 내에서)
sudo ninja l2fwd

# 애플리케이션 실행 (Hugepages 설정 및 네트워크 인터페이스 확인 필요)
sudo ./build/l2fwd -p 0x1 -n 1 -- -p 1 -q 1

위 명령어는 간단한 Layer-2 Forwarding (L2Fwd) 예제를 실행하는 것으로, -p 옵션으로 사용할 네트워크 포트의 비트마스크를 지정하고, -n 옵션으로 사용할 메모리 채널 수를 지정합니다. -- 이후의 옵션은 애플리케이션 자체에 전달되는 인자입니다.

'Tech. Study > DPDK' 카테고리의 다른 글

[DPDK] 구조 분석 및 요약 : 의존성 단위  (0) 2025.05.15
DPDK Source Tree 정리  (0) 2025.05.02
DPDK (Data Plane Development Kit) 란 ?  (0) 2019.07.05

DPDK 소스 코드는 성능 테스트 앱, 빌드/개발 도구, 플랫폼 설정, 문서, 다양한 장치 드라이버, 자동화 테스트, 기능별 예제, 커널/사용자 모드 드라이버, 핵심 라이브러리, 라이선스, 유틸리티 등을 포함합니다. 
고성능 패킷 처리를 위한 모든 것을 담고 있어요!

📁 DPDK 25.03 소스 트리 구조 분석

📁 dpdk/
├── 📁 app/                # 테스트 및 성능 확인용 주요 애플리케이션 (예: testpmd)
├── 📁 buildtools/         # 빌드 지원 스크립트 (pkg-config 생성 등 도구 제공)
├── 📁 config/             # 플랫폼 및 타겟별 컴파일 설정 정의
├── 📁 devtools/           # 코드 스타일 검사, 자동 린트, 릴리스 도구 등 개발 보조 스크립트
├── 📁 doc/                # HTML/PDF 문서 생성용 소스와 스크립트 포함
├── 📁 drivers/            # 하드웨어/소프트웨어 드라이버 (PMD) 모음, 종류별 서브디렉터리 존재
├── 📁 dts/                # Python 기반 자동화 테스트 프레임워크 (TestSuite, framework 등 포함)
├── 📁 examples/           # 다양한 기능의 최소 예제 코드 (문서와 연계됨)
├── 📁 kernel/             # Linux 커널용 드라이버 (kni, igb_uio 등 포함)
├── 📁 lib/                # DPDK의 핵심 기능을 구성하는 라이브러리 모음 (eal, ethdev 등)
├── 📁 license/            # SPDX 및 라이선스 검증 도구와 정보
├── 📁 usertools/          # hugepage 설정, NIC 바인딩 등 유저 모드 유틸리티 스크립트
├── 📄 ABI_VERSION         # 현재 ABI 버전 문자열 정의
├── 📄 MAINTAINERS         # 각 서브시스템의 유지관리자 정보
├── 📄 Makefile            # Meson 빌드 시스템에 대한 wrapper 역할
├── 📄 README              # DPDK 프로젝트 개요 및 빌드 안내
├── 📄 VERSION             # 현재 릴리스 버전 문자열 (예: 25.03.0)
├── 📄 meson.build         # Meson 빌드 시스템 루트 설정 파일
└── 📄 meson_options.txt   # Meson 빌드 옵션 정의 (예: 드라이버 on/off)

 DPDK 폴더별 요약

- `app/`: 성능 측정이나 기능 확인용 주요 애플리케이션을 포함합니다.    
- `buildtools/`: 빌드 환경 구성을 돕는 보조 스크립트 모음입니다.    
- `config/`: 다양한 플랫폼과 타겟을 위한 컴파일 설정을 제공합니다.    
- `devtools/`: 코드 검사, 릴리스 준비 등 개발 보조 도구가 들어 있습니다.    
- `doc/`: 문서 빌드를 위한 소스와 설정을 포함합니다.    
- `drivers/`: 네트워크, 암호화 등 다양한 장치 드라이버(PMD)가 모여 있습니다.    
- `dts/`: Python 기반의 자동화 테스트 스위트가 포함된 테스트 프레임워크입니다.    
- `examples/`: 각 기능을 보여주는 최소 구성의 예제 코드가 들어 있습니다.    
- `kernel/`: 커널 모드에서 사용되는 드라이버 모듈(예: `igb_uio`, `kni`)이 포함됩니다.    
- `lib/`: DPDK의 핵심 기능을 제공하는 라이브러리 모듈들이 포함되어 있습니다.    
- `license/`: 라이선스 검증 및 SPDX 관련 도구와 정보가 들어 있습니다.    
- `usertools/`: hugepage 설정, 디바이스 바인딩 등 사용자 유틸리티 스크립트를 제공합니다.

 

 

* 2019-07-09 현재 Napatech에서 제공되는 자료입니다.

 

Installing Napatech DPDK


Napatech DPDK is a fork of DPDK that supports Napatech drivers and SmartNICs.

DPDK documentation


Installing, compiling and running DPDK is quite complex. A full description can be found here:

* DPDK에 대한 세부 설치 내용은 아래 DPDK 공식 홈페이지 문서를 참고하셔야 됩니다. Napatech에서는 DPDK에 관련된 간단한 설치 방법만 제공하고 자세한 내용에 대해서는 언급하고 있지 않습니다. 

·         
http://dpdk.org/doc/quick-start
·         http://dpdk.org/doc/guides/linux_gsg/index.html


Napatech DPDK readme


The latest Napatech DPDK 
readme file can be found at https://github.com/napatech/dpdk/blob/master/ntacc_readme.md
The readme file contains information on how to compile Napatech DPDK and set up the Napatech driver for DPDK.
* Napatech에서 제공중인 DPDK에 대한 Version, Configuration, 지원 범위에 대해서는 Github의 readme 파일에 내용이 있습니다. 


Getting and compiling Napatech DPDK

Napatech DPDK can be downloaded or cloned from: https://github.com/napatech/dpdk/releases.
The environment variable NAPATECH3_PATH must be set to the Napatech driver installation root before compiling DPDK. The default installation root is /opt/napatech3.
* 본 문서에서는 Napatech Software Installation에 대해서는 생략합니다. Napatech Software Installation 관련해서는 Installation Guide를 참고하시기 바랍니다. 
** DPDK 설치 전에 반드시 Napatech Software Package가 설치되어 있어야 합니다.

# export NAPATECH3_PATH=/opt/napatech3

To get and compile Napatech DPDK, locate the latest release at https://github.com/napatech/dpdk/releases. In this example, the v18.08.0_1.9release is used:

# wget 
https://github.com/napatech/dpdk/archive/v18.08.0_1.9.tar.gz   
# tar xvf v18.08.0_1.9.tar.gz
# cd dpdk-v18.08.0_1.9/
# make config T=x86_64-native-linuxapp-gcc install
# make -j

DPDK and hugepages

To run any DPDK application, the Linux kernel option hugepages must be enabled.
Edit the file 
/etc/default/grub and change or add to the following line:
* DPDK Application 사용을 위해서는 Kernel Option에서 Hugepages 를 반드시 사용하여야 합니다.


GRUB_CMDLINE_LINUX_DEFAULT="default_hugepagesz=1G hugepagesz=1G hugepages=2"

If you are using UEFI based boot, run this after editing /etc/default/grub:

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Else run this:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

DPDK(Data Plane Development Kit) 소개

DPDK는 다양한 CPU 아키텍처에서 실행되는 패킷 처리 작업을 가속화하는 라이브러리로 구성된 데이터 플레인 개발 키트(Data Plane Development Kit)입니다.
사람들이 통신하는 방식에 네트워크가 기본이 되는 세계에서 무선 코어 및 액세스, 유선 인프라, 라우터, 로드 밸런서, 방화벽, 비디오 스트리밍, VoIP 등과 같은 애플리케이션에 성능, 처리량 및 대기 시간이 점점 더 중요 해지고 있습니다.
DPDK는 매우 빠른 패킷 처리를 가능하게 함으로써 통신 업계가 모바일 네트워크 용 백본 및 클라우드로에서 음성 처리와 같은 성능에 민감한 응용 프로그램을 이동할 수 있게합니다.
또한 원래 ETSI NFV White Paper 에서 NFV (Network Functions Virtualization)를 위한 핵심 기술을 가능케 하는 것으로 확인되었습니다.

DPDK의 역사

DPDK 2010 년에 Intel에서 제작되었으며 허용 된 오픈 소스 라이선스에 따라 사용할 수 있습니다.
오픈 소스 커뮤니티는 2013 6WIND에 의해 DPDK.org에 설립되었으며 프로젝트의 지속적인 확장을 촉진했습니다.
그 이후로 커뮤니티는 기여자들, 패치 그리고 기여 조직에 관심으로 지속적으로 성장해 왔으며 5 개 주요 릴리스는 25 개 서로 다른 조직의 160 명 이상이 인원이 참여하여 완성되었습니다.
DPDK는 이제 여러 공급 업체의 모든 주요 CPU 아키텍처와 NIC를 지원하므로 여러 플랫폼에서 사용이 가능한 응용 프로그램에 이상적입니다.

특징 

DPDK는 빠른 패킷 처리를위한 일련의 라이브러리 및 드라이버입니다.
DPDK는 다양한 CPU 아키텍처에서 실행되는 패킷 처리 작업을 가속화하는 라이브러리로 구성된 데이터 플레인 개발 키트입니다.

  • 모든 프로세서에서 실행되도록 설계됨

  • 대부분 Linux 사용자 환경에서 실행됨

  • DPDK 오픈 소스 BSD 라이센스가 부여된 프로젝트

Architecture

 

안정화 릴리즈( Stable Release)

안정화 릴리스의 지침을 설명하는 문서 페이지가 따로 있습니다안정적 포인트 릴리즈는 메인라인 릴리즈에 따른다.
-rc 태그 후와 최종 버전 후에, 관련 버그 수정은 안정적 유지관리자에 의해 "버스트"에서 각각의 분기점으로 되돌아간다.
개발자는 stable@dpdk.org에만 패치를 보내 특정 패치를 제공할 수 있다( dev@dpdk.org는 피함).
관련 버그 수정이 모두 분기점으로 되돌간 후 회귀 테스트가 실행되고 명확한 경우 안정화 릴리스가 발표됩니다.
일반적으로 새로운 안정화 버전은 테스트 결과에 따라 메인라인 릴리즈  1-2 주 정도 후 발표됩니다.

스케쥴

19.08 

  • Proposal deadline: June 3, 2019
    Integration deadline: July 1, 2019
    Release: August 1, 2019

19.11 

  • Proposal deadline: September 6, 2019
    Integration deadline: October 11, 2019
    Release: November 8, 2019

출처 : DPDK 공식 홈페이지 내용 https://www.dpdk.org/

 

Home - DPDK

DPDK China · June 24th, 2019 Shanghai, China Attend DPDK China, co-located with Kubecon+CloudNativeCon+Open Source Summit, June 24th, 2019. Let’s discuss the present and future, including DPDK roadmap suggestions, container networking, P4, hardware acceler

www.dpdk.org

 

+ Recent posts