<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=Express_Data_Path</id>
	<title>Express Data Path - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=Express_Data_Path"/>
	<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Express_Data_Path&amp;action=history"/>
	<updated>2026-04-29T14:20:26Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=Express_Data_Path&amp;diff=11&amp;oldid=prev</id>
		<title>Ahn9807: 새 문서: 분류: 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부터 도입되었으며,...</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Express_Data_Path&amp;diff=11&amp;oldid=prev"/>
		<updated>2023-02-03T06:22:48Z</updated>

		<summary type="html">&lt;p&gt;새 문서: &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:EBPF&quot; title=&quot;분류:EBPF&quot;&gt;분류: eBPF&lt;/a&gt;  == 개요 == Express Data Path (XDP)는 개발자가 network program을 eBPF로 작성하여서 NIC, Driver, Socket단에 삽입할 수 있도록 하고, 커널에서 유저로의 전환 없이, Linux network stack을 타기 전에 매우 이른 시점에 Network program을 정의할 수있도록 한다. 이를 통해서 Overhead를 줄여서 high-end, flxible network programming을 가능하게 하였다. XDP는 리눅스 커널 4.18부터 도입되었으며,...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[분류: eBPF]]&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
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등이 있다.&lt;br /&gt;
&lt;br /&gt;
== Return value ==&lt;br /&gt;
* XDP_ABORTED: 패킷을 버리고 xdp_exception을 발생시킴&lt;br /&gt;
* XDP_DROP: 패킷을 버림&lt;br /&gt;
* XDP_PASS: 패킷을 커널로 보냄&lt;br /&gt;
* XDP_TX: 패킷을 수신된 인터페이스로 재전송 (Forward packet to the same NIC)&lt;br /&gt;
* XDP_REDIRECT: 패킷을 다른 인터페이스(NIC)로 전달&lt;br /&gt;
&lt;br /&gt;
== 예시 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=c&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/bpf.h&amp;gt;&lt;br /&gt;
#include &amp;lt;bpf/bpf_helpers.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SEC(&amp;quot;xdp_prog1&amp;quot;)&lt;br /&gt;
int xdp_prog_drop(struct xdp_md *ctx) {&lt;br /&gt;
        return XDP_DROP;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
char _license[] SEC(&amp;quot;license&amp;quot;) = &amp;quot;GPL&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Build XDP to bpf object file&lt;br /&gt;
clang -O2 -target bpf -c xdp_kern.c -o xdp_kern.o&lt;br /&gt;
// Load XDP program to socket buffer&lt;br /&gt;
sudo ip link set eno2 xdpgeneric obj xdp_kern.o sec xdp_prog1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# https://github.com/ahn9807/eBPF-Tutorial.git&lt;/div&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
</feed>