Welcome to our session on Data Plan Development Kit or shorter DPDK where I'm going to go and cover the DPDK fundamentals. Where this thing fits, in general, is on their journey to run multiple workload categories-- very broad categories on volume ingredients in volume server on Intel architecture. So this is, in particular, focusing on packet processing part of now very old 4 to 1 vision where, initially, we were running and then more and more migrating over the years. Application processing control processing already then in comes vertical. And with DPDK, this allows us to run packet processing type of workloads also on Intel architecture-based servers. So the fundamentals of DPDK APIs in libraries are, for example, that this supports both run to competition and pipeline models. It does not include scheduler. So for example, when it needs to access devices, it is pulling them in endless loop. So it supports various operating system 32-bit, 64-bit different types, Intel Atom and Xeon the processors. It's recognized require number of cores, and instructions include that type of memory and channels to that. So optimal packet allocation across all those different channels then happens. It supports huge pages so that it's easy to access memory in one go instead of going there multiple times. And it uses bulk concepts so that a lot of packets are processed simultaneously, and it's licensed as BSD primarily and then partly of the GPL because some parts are in Linux kernel. So it is useful for building very optimized workloads in communications vertical for packet processing. It can also be used for similar type of workloads in Cloud, enterprise, and government, and the big categories of those modules are, for example, core libraries. They are taking care of memory management, software rings, timers, and similar. Packets classification is big category, then accelerate the software libraries, statistics, quality of service, and package framework is also there. So on the bottom part of this diagram, you can see all the different type of devices that are supported. And this is, for example, starting with Ethernet devices, then there are the crypto devices, event-driven devices with their pull mode drivers, security compression, and broadband devices were added recently. So this type of environment is including a lot of sample applications. They are easy way to start when called BSD licensed needs to be adopted. And readily they will be also useful on their own. For example, a lot of performance characterization we are doing with layer 2 and layer 3 forwarding applications from there. But then these type of code samples are then integrated by all the different type of vendors into their solutions. And today, we have a great adoption of those, and there is really a lot of products available during excellent packet processing using this type of approach. [MUSIC PLAYING]