DPDK Source Tree 정리
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 설정, 디바이스 바인딩 등 사용자 유틸리티 스크립트를 제공합니다.