검색 여닫기
검색
메뉴 여닫기
535
243
4
2.1천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Express Data Path 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Express Data Path
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[분류: eBPF]] == 개요 == Express Data Path (XDP)는 개발자가 network program을 eBPF로 작성하여서 NIC, Driver, Socket단에 삽입할 수 있도록 하고, 커널에서 유저로의 전환 없이, Linux network stack을 타기 전에 매우 이른 시점에 Network program을 정의할 수있도록 한다. 이를 통해서 Overhead를 줄여서 high-end, flxible network programming을 가능하게 하였다. XDP는 리눅스 커널 4.18부터 도입되었으며, 많은 Production level에서 사용되고 있다. 사용예시로는, load balancing, packet filtering, user-defined packet forwarding, security, network tracing등이 있다. == Return value == * XDP_ABORTED: 패킷을 버리고 xdp_exception을 발생시킴 * XDP_DROP: 패킷을 버림 * XDP_PASS: 패킷을 커널로 보냄 * XDP_TX: 패킷을 수신된 인터페이스로 재전송 (Forward packet to the same NIC) * XDP_REDIRECT: 패킷을 다른 인터페이스(NIC)로 전달 == 예시 == <syntaxhighlight lang=c> #include <linux/bpf.h> #include <bpf/bpf_helpers.h> SEC("xdp_prog1") int xdp_prog_drop(struct xdp_md *ctx) { return XDP_DROP; } char _license[] SEC("license") = "GPL"; // Build XDP to bpf object file clang -O2 -target bpf -c xdp_kern.c -o xdp_kern.o // Load XDP program to socket buffer sudo ip link set eno2 xdpgeneric obj xdp_kern.o sec xdp_prog1 </syntaxhighlight> == References == # https://github.com/ahn9807/eBPF-Tutorial.git
Express Data Path
문서로 돌아갑니다.