Skip to content

Commit cdfb537

Browse files
author
Elena Crenguta Lindqvist
committed
sda
1 parent e37e328 commit cdfb537

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

itnot/index.html

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
<p>Enabling high-performance edge applications with OpenStack, OVS, and SmartNICs<p/>
3131
<aside class="notes">
3232
Thank you, Daniel, for the introduction.
33-
<br><br>How many people heard about smartNICs
33+
<br><br>How many people heard about
34+
<br>smartNICs
3435
<br>XDP?
3536
<br>BPF?
3637
<br>Openstack?
@@ -455,7 +456,7 @@
455456

456457
</font>
457458
<aside class="notes">
458-
To check if XDP it is enabled in the kernel, it's as simple as grepping for it in the kernel config file
459+
To check if XDP is enabled in the kernel, it's as simple as grepping for it in the kernel config file
459460
<br>
460461
<br>
461462
The Linux kernel configuration item CONFIG_XDP_SOCKETS:
@@ -468,37 +469,37 @@
468469
</p>
469470
<aside class="notes">
470471

471-
So XDP is a hook in the Linux kernel, not a kernel bypass but a bypass of the network stack. It is a programale layer in the kernel network stack.
472+
So XDP is a hook in the Linux kernel, not a kernel bypass but a bypass of the network stack in the linux kernel. It is a programmable layer in the kernel network stack.
472473
<br>
473-
XDP operates directly on the packet buffer.
474-
20 or 25 years ago
475-
(packets are moved into sockets , decision taken 20 years ago, and this is not the fastest way)
474+
XDP operates at the same level as DPDK, directly on the packet buffers, operating on the packet before it is moved to socket buffer.
475+
The network stack in the kernel is conceived to be slow. There was a decision taken 20 or 25 years go, that packets should be delivered into sockets.
476+
This is not the fastest way, maybe you don't need to deliver all packets to sockets, think if you need to drop some of these packets for instance.
476477
<br>
477478
<br>
478-
DPDK steals the whole NIC, we dont do that with XDP , not taking the whole NIC.
479-
<br>
480-
a filter on receive but zero copy to user space
479+
While DPDK steals the whole NIC from linux kernel, XDP does not still the NIC from the server. In XDP we put in a filter per receive queue, make decisions on the packets with zero copy to userspace. This way all the fun features in kernel are available.
481480
<br>
482481
<br>
483-
XDP can be used in two ways:
482+
XDP can be used in two modes: native mode, generic (SKB) mode
484483
<br>
485-
Native mode XDP , a driver hook , before memory allocation , small no of instructions executed before we start processing packets
484+
Native mode XDP (process packet right after DMA, just before SKB allocation), a driver hook , before memory allocation , small no of instructions executed before we start processing packets
486485
<br>
487-
limited number of drivers that support XDP
486+
Limited because we need support for XDP in the driver, but higher performance mode.
488487
<br>
489488
<br>
490-
generic mode
489+
Generic mode
491490
<br>
492-
works on any net device , driver independent , but larger number of instructions executed which mean lower performance than native mode, when it comes to packet processing
491+
IT happens after DMA and SKB allocation, it means a larger number of instructions is executed before doing something with that packet, so this means significantly lower performance than native mode.
492+
Works on any NIC device, driver independent.
493493
<br>
494494
<br>
495-
dataplane which is inside the kernel
495+
You can look at XDP and BPF with a dataplane/controlplane approach.
496+
XDP is the dataplane which is inside the kernel
497+
496498
<br>
497-
control plane in user space which is done from eBPF, userspace load eBPF program , everything goes through the BPF-syscall
499+
BPF is the control plane in user space, userspace load eBPF program.
498500
<br>
499-
the Native way is the way to go , using the XDP driver hook
500501
<br>
501-
502+
(spanning tree daemon uses BPF to filter only BPDUs are comming on that socket)
502503

503504
</aside>
504505
</section>

0 commit comments

Comments
 (0)