Network Interface Controller Drivers Release 19.02.0

Total Page:16

File Type:pdf, Size:1020Kb

Network Interface Controller Drivers Release 19.02.0 Network Interface Controller Drivers Release 19.02.0 February 02, 2019 CONTENTS 1 Overview of Networking Drivers1 2 Features Overview4 2.1 Speed capabilities...................................4 2.2 Link status.......................................4 2.3 Link status event....................................4 2.4 Removal event.....................................5 2.5 Queue status event..................................5 2.6 Rx interrupt.......................................5 2.7 Lock-free Tx queue..................................5 2.8 Fast mbuf free.....................................6 2.9 Free Tx mbuf on demand...............................6 2.10 Queue start/stop....................................6 2.11 MTU update......................................6 2.12 Jumbo frame......................................6 2.13 Scattered Rx......................................7 2.14 LRO...........................................7 2.15 TSO...........................................7 2.16 Promiscuous mode..................................7 2.17 Allmulticast mode...................................8 2.18 Unicast MAC filter...................................8 2.19 Multicast MAC filter..................................8 2.20 RSS hash.......................................8 2.21 Inner RSS.......................................8 2.22 RSS key update....................................9 2.23 RSS reta update....................................9 2.24 VMDq..........................................9 2.25 SR-IOV.........................................9 2.26 DCB...........................................9 2.27 VLAN filter....................................... 10 2.28 Ethertype filter..................................... 10 2.29 N-tuple filter...................................... 10 2.30 SYN filter........................................ 10 2.31 Tunnel filter....................................... 10 2.32 Flexible filter...................................... 11 2.33 Hash filter....................................... 11 2.34 Flow director...................................... 11 2.35 Flow control...................................... 11 2.36 Flow API........................................ 11 i 2.37 Rate limitation..................................... 11 2.38 Traffic mirroring.................................... 12 2.39 Inline crypto...................................... 12 2.40 CRC offload...................................... 12 2.41 VLAN offload...................................... 12 2.42 QinQ offload...................................... 13 2.43 L3 checksum offload................................. 13 2.44 L4 checksum offload................................. 13 2.45 Timestamp offload................................... 14 2.46 MACsec offload.................................... 14 2.47 Inner L3 checksum.................................. 14 2.48 Inner L4 checksum.................................. 14 2.49 Packet type parsing.................................. 15 2.50 Timesync........................................ 15 2.51 Rx descriptor status.................................. 15 2.52 Tx descriptor status.................................. 15 2.53 Basic stats....................................... 16 2.54 Extended stats..................................... 16 2.55 Stats per queue.................................... 16 2.56 FW version....................................... 16 2.57 EEPROM dump.................................... 16 2.58 Module EEPROM dump................................ 17 2.59 Registers dump.................................... 17 2.60 LED........................................... 17 2.61 Multiprocess aware.................................. 17 2.62 BSD nic_uio...................................... 17 2.63 Linux UIO........................................ 17 2.64 Linux VFIO....................................... 18 2.65 Other kdrv....................................... 18 2.66 ARMv7......................................... 18 2.67 ARMv8......................................... 18 2.68 Power8......................................... 18 2.69 x86-32......................................... 18 2.70 x86-64......................................... 18 2.71 Usage doc....................................... 18 2.72 Design doc....................................... 19 2.73 Perf doc......................................... 19 2.74 Runtime Rx queue setup............................... 19 2.75 Runtime Tx queue setup............................... 19 2.76 Other dev ops not represented by a Feature.................... 19 3 Compiling and testing a PMD for a NIC 21 3.1 Driver Compilation................................... 21 3.2 Running testpmd in Linux............................... 22 4 AF_PACKET Poll Mode Driver 24 4.1 Options and inherent limitations........................... 24 4.2 Prerequisites...................................... 25 4.3 Set up an af_packet interface............................. 25 5 ARK Poll Mode Driver 26 5.1 Overview........................................ 26 ii 5.2 Device Parameters.................................. 27 5.3 Data Path Interface.................................. 27 5.4 Configuration Information............................... 27 5.5 Building DPDK..................................... 28 5.6 Supported ARK RTL PCIe Instances........................ 28 5.7 Supported Operating Systems............................ 28 5.8 Supported Features.................................. 28 5.9 Unsupported Features................................ 29 5.10 Pre-Requisites..................................... 29 5.11 Usage Example.................................... 29 6 Aquantia Atlantic DPDK Driver 30 6.1 Supported features.................................. 30 6.2 Configuration Information............................... 30 7 AVP Poll Mode Driver 32 7.1 Features and Limitations of the AVP PMD...................... 32 7.2 Prerequisites...................................... 33 7.3 Launching a VM with an AVP type network attachment.............. 33 8 AXGBE Poll Mode Driver 34 8.1 Supported Features.................................. 34 8.2 Configuration Information............................... 34 8.3 Building DPDK..................................... 35 8.4 Prerequisites and Pre-conditions........................... 35 8.5 Usage Example.................................... 35 9 BNX2X Poll Mode Driver 36 9.1 Supported Features.................................. 36 9.2 Non-supported Features............................... 36 9.3 Co-existence considerations............................. 36 9.4 Supported QLogic NICs................................ 37 9.5 Prerequisites...................................... 37 9.6 Pre-Installation Configuration............................. 37 9.7 Driver compilation and testing............................ 37 9.8 SR-IOV: Prerequisites and sample Application Notes............... 37 10 BNXT Poll Mode Driver 40 10.1 Limitations....................................... 40 11 CXGBE Poll Mode Driver 41 11.1 Features........................................ 41 11.2 Limitations....................................... 41 11.3 Supported Chelsio T5 NICs.............................. 42 11.4 Supported Chelsio T6 NICs.............................. 42 11.5 Supported SR-IOV Chelsio NICs........................... 42 11.6 Prerequisites...................................... 42 11.7 Pre-Installation Configuration............................. 42 11.8 Driver compilation and testing............................ 43 11.9 Linux.......................................... 43 11.10FreeBSD........................................ 46 11.11Sample Application Notes............................... 49 iii 12 DPAA Poll Mode Driver 50 12.1 NXP DPAA (Data Path Acceleration Architecture - Gen 1)............. 50 12.2 DPAA DPDK - Poll Mode Driver Overview...................... 51 12.3 Whitelisting & Blacklisting............................... 52 12.4 Supported DPAA SoCs................................ 53 12.5 Prerequisites...................................... 53 12.6 Pre-Installation Configuration............................. 53 12.7 Driver compilation and testing............................ 54 12.8 Limitations....................................... 54 13 DPAA2 Poll Mode Driver 56 13.1 NXP DPAA2 (Data Path Acceleration Architecture Gen2)............. 56 13.2 DPAA2 DPDK - Poll Mode Driver Overview..................... 60 13.3 Supported DPAA2 SoCs............................... 62 13.4 Prerequisites...................................... 62 13.5 Pre-Installation Configuration............................. 62 13.6 Driver compilation and testing............................ 63 13.7 Enabling logs...................................... 63 13.8 Whitelisting & Blacklisting............................... 63 13.9 Limitations....................................... 64 14 Driver for VM Emulated Devices 65 14.1 Validated Hypervisors................................. 65 14.2 Recommended Guest Operating System in Virtual Machine........... 65 14.3 Setting Up a KVM Virtual Machine.......................... 65 14.4 Known Limitations of Emulated Devices....................... 67 15 ENA Poll Mode Driver 68 15.1 Overview........................................ 68 15.2 Management Interface................................ 68 15.3 Data Path Interface.................................. 69 15.4 Configuration information............................... 69 15.5 Building DPDK..................................... 70 15.6 Supported ENA adapters............................... 70 15.7 Supported Operating Systems...........................
Recommended publications
  • MLNX OFED Documentation Rev 5.0-2.1.8.0
    MLNX_OFED Documentation Rev 5.0-2.1.8.0 Exported on May/21/2020 06:13 AM https://docs.mellanox.com/x/JLV-AQ Notice This document is provided for information purposes only and shall not be regarded as a warranty of a certain functionality, condition, or quality of a product. NVIDIA Corporation (“NVIDIA”) makes no representations or warranties, expressed or implied, as to the accuracy or completeness of the information contained in this document and assumes no responsibility for any errors contained herein. NVIDIA shall have no liability for the consequences or use of such information or for any infringement of patents or other rights of third parties that may result from its use. This document is not a commitment to develop, release, or deliver any Material (defined below), code, or functionality. NVIDIA reserves the right to make corrections, modifications, enhancements, improvements, and any other changes to this document, at any time without notice. Customer should obtain the latest relevant information before placing orders and should verify that such information is current and complete. NVIDIA products are sold subject to the NVIDIA standard terms and conditions of sale supplied at the time of order acknowledgement, unless otherwise agreed in an individual sales agreement signed by authorized representatives of NVIDIA and customer (“Terms of Sale”). NVIDIA hereby expressly objects to applying any customer general terms and conditions with regards to the purchase of the NVIDIA product referenced in this document. No contractual obligations are formed either directly or indirectly by this document. NVIDIA products are not designed, authorized, or warranted to be suitable for use in medical, military, aircraft, space, or life support equipment, nor in applications where failure or malfunction of the NVIDIA product can reasonably be expected to result in personal injury, death, or property or environmental damage.
    [Show full text]
  • Storage Administration Guide Storage Administration Guide SUSE Linux Enterprise Server 12 SP4
    SUSE Linux Enterprise Server 12 SP4 Storage Administration Guide Storage Administration Guide SUSE Linux Enterprise Server 12 SP4 Provides information about how to manage storage devices on a SUSE Linux Enterprise Server. Publication Date: September 24, 2021 SUSE LLC 1800 South Novell Place Provo, UT 84606 USA https://documentation.suse.com Copyright © 2006– 2021 SUSE LLC and contributors. All rights reserved. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled “GNU Free Documentation License”. For SUSE trademarks, see https://www.suse.com/company/legal/ . All other third-party trademarks are the property of their respective owners. Trademark symbols (®, ™ etc.) denote trademarks of SUSE and its aliates. Asterisks (*) denote third-party trademarks. All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither SUSE LLC, its aliates, the authors nor the translators shall be held liable for possible errors or the consequences thereof. Contents About This Guide xii 1 Available Documentation xii 2 Giving Feedback xiv 3 Documentation Conventions xiv 4 Product Life Cycle and Support xvi Support Statement for SUSE Linux Enterprise Server xvii • Technology Previews xviii I FILE SYSTEMS AND MOUNTING 1 1 Overview
    [Show full text]
  • Linux on the Road
    Linux on the Road Linux with Laptops, Notebooks, PDAs, Mobile Phones and Other Portable Devices Werner Heuser <wehe[AT]tuxmobil.org> Linux Mobile Edition Edition Version 3.22 TuxMobil Berlin Copyright © 2000-2011 Werner Heuser 2011-12-12 Revision History Revision 3.22 2011-12-12 Revised by: wh The address of the opensuse-mobile mailing list has been added, a section power management for graphics cards has been added, a short description of Intel's LinuxPowerTop project has been added, all references to Suspend2 have been changed to TuxOnIce, links to OpenSync and Funambol syncronization packages have been added, some notes about SSDs have been added, many URLs have been checked and some minor improvements have been made. Revision 3.21 2005-11-14 Revised by: wh Some more typos have been fixed. Revision 3.20 2005-11-14 Revised by: wh Some typos have been fixed. Revision 3.19 2005-11-14 Revised by: wh A link to keytouch has been added, minor changes have been made. Revision 3.18 2005-10-10 Revised by: wh Some URLs have been updated, spelling has been corrected, minor changes have been made. Revision 3.17.1 2005-09-28 Revised by: sh A technical and a language review have been performed by Sebastian Henschel. Numerous bugs have been fixed and many URLs have been updated. Revision 3.17 2005-08-28 Revised by: wh Some more tools added to external monitor/projector section, link to Zaurus Development with Damn Small Linux added to cross-compile section, some additions about acoustic management for hard disks added, references to X.org added to X11 sections, link to laptop-mode-tools added, some URLs updated, spelling cleaned, minor changes.
    [Show full text]
  • Flexible Lustre Management
    Flexible Lustre management Making less work for Admins ORNL is managed by UT-Battelle for the US Department of Energy How do we know Lustre condition today • Polling proc / sysfs files – The knocking on the door model – Parse stats, rpc info, etc for performance deviations. • Constant collection of debug logs – Heavy parsing for common problems. • The death of a node – Have to examine kdumps and /or lustre dump Origins of a new approach • Requirements for Linux kernel integration. – No more proc usage – Migration to sysfs and debugfs – Used to configure your file system. – Started in lustre 2.9 and still on going. • Two ways to configure your file system. – On MGS server run lctl conf_param … • Directly accessed proc seq_files. – On MSG server run lctl set_param –P • Originally used an upcall to lctl for configuration • Introduced in Lustre 2.4 but was broken until lustre 2.12 (LU-7004) – Configuring file system works transparently before and after sysfs migration. Changes introduced with sysfs / debugfs migration • sysfs has a one item per file rule. • Complex proc files moved to debugfs • Moving to debugfs introduced permission problems – Only debugging files should be their. – Both debugfs and procfs have scaling issues. • Moving to sysfs introduced the ability to send uevents – Item of most interest from LUG 2018 Linux Lustre client talk. – Both lctl conf_param and lctl set_param –P use this approach • lctl conf_param can set sysfs attributes without uevents. See class_modify_config() – We get life cycle events for free – udev is now involved. What do we get by using udev ? • Under the hood – uevents are collect by systemd and then processed by udev rules – /etc/udev/rules.d/99-lustre.rules – SUBSYSTEM=="lustre", ACTION=="change", ENV{PARAM}=="?*", RUN+="/usr/sbin/lctl set_param '$env{PARAM}=$env{SETTING}’” • You can create your own udev rule – http://reactivated.net/writing_udev_rules.html – /lib/udev/rules.d/* for examples – Add udev_log="debug” to /etc/udev.conf if you have problems • Using systemd for long task.
    [Show full text]
  • Dm-X: Protecting Volume-Level Integrity for Cloud Volumes and Local
    dm-x: Protecting Volume-level Integrity for Cloud Volumes and Local Block Devices Anrin Chakraborti Bhushan Jain Jan Kasiak Stony Brook University Stony Brook University & Stony Brook University UNC, Chapel Hill Tao Zhang Donald Porter Radu Sion Stony Brook University & Stony Brook University & Stony Brook University UNC, Chapel Hill UNC, Chapel Hill ABSTRACT on Amazon’s Virtual Private Cloud (VPC) [2] (which provides The verified boot feature in recent Android devices, which strong security guarantees through network isolation) store deploys dm-verity, has been overwhelmingly successful in elim- data on untrusted storage devices residing in the public cloud. inating the extremely popular Android smart phone rooting For example, Amazon VPC file systems, object stores, and movement [25]. Unfortunately, dm-verity integrity guarantees databases reside on virtual block devices in the Amazon are read-only and do not extend to writable volumes. Elastic Block Storage (EBS). This paper introduces a new device mapper, dm-x, that This allows numerous attack vectors for a malicious cloud efficiently (fast) and reliably (metadata journaling) assures provider/untrusted software running on the server. For in- volume-level integrity for entire, writable volumes. In a direct stance, to ensure SEC-mandated assurances of end-to-end disk setup, dm-x overheads are around 6-35% over ext4 on the integrity, banks need to guarantee that the external cloud raw volume while offering additional integrity guarantees. For storage service is unable to remove log entries documenting cloud storage (Amazon EBS), dm-x overheads are negligible. financial transactions. Yet, without integrity of the storage device, a malicious cloud storage service could remove logs of a coordinated attack.
    [Show full text]
  • Course Outline & Schedule
    Course Outline & Schedule Call US 408-759-5074 or UK +44 20 7620 0033 Suse Linux Advanced System Administration Curriculum Linux Course Code SLASA Duration 5 Day Course Price $2,425 Course Description This instructor led SUSE Linux Advanced System Administration training course is designed to teach the advanced administration, security, networking and performance tasks required on a SUSE Linux Enterprise system. Targeted to closely follow the official LPI curriculum (generic Linux), this course together with the SUSE Linux System Administration course will enable the delegate to work towards achieving the LPIC-2 qualification. Exercises and examples are used throughout the course to give practical hands-on experience with the techniques covered. Objectives The delegate will learn and acquire skills as follows: Perform administrative tasks with supplied tools such as YaST Advanced network configuration Network troubleshooting and analysing packets Creating Apache virtual hosts and hosting user web content Sharing Windows and Linux resources with SAMBA Configuring a DNS server and configuring DNS logging Configuring a DHCP server and client Sharing Linux network resources with NFS Creating Unit Files Configuring AutoFS direct and indirect maps Configuring a secure FTP server Configuring a SQUID proxy server Creating Btrfs subvolumes and snapshots Backing-up and restoring XFS filesystems Configuring LVM and managing Logical Volumes Managing software RAID Centralised storage with iSCSI Monitoring disk status and reliability with SMART Perpetual
    [Show full text]
  • Reducing Power Consumption in Mobile Devices by Using a Kernel
    IEEE TRANSACTIONS ON MOBILE COMPUTING, VOL. Z, NO. B, AUGUST 2017 1 Reducing Event Latency and Power Consumption in Mobile Devices by Using a Kernel-Level Display Server Stephen Marz, Member, IEEE and Brad Vander Zanden and Wei Gao, Member, IEEE E-mail: [email protected], [email protected], [email protected] Abstract—Mobile devices differ from desktop computers in that they have a limited power source, a battery, and they tend to spend more CPU time on the graphical user interface (GUI). These two facts force us to consider different software approaches in the mobile device kernel that can conserve battery life and reduce latency, which is the duration of time between the inception of an event and the reaction to the event. One area to consider is a software package called the display server. The display server is middleware that handles all GUI activities between an application and the operating system, such as event handling and drawing to the screen. In both desktop and mobile devices, the display server is located in the application layer. However, the kernel layer contains most of the information needed for handling events and drawing graphics, which forces the application-level display server to make a series of system calls in order to coordinate events and to draw graphics. These calls interrupt the CPU which can increase both latency and power consumption, and also require the kernel to maintain event queues that duplicate event queues in the display server. A further drawback of placing the display server in the application layer is that the display server contains most of the information required to efficiently schedule the application and this information is not communicated to existing kernels, meaning that GUI-oriented applications are scheduled less efficiently than they might be, which further increases power consumption.
    [Show full text]
  • Fstrim, Lvm and Dmcrypt
    Blog Projects About me Contact Tweet synaptic fault mind dumped How to properly activate TRIM for your SSD on Linux: fstrim, lvm and dm­crypt Language Posted on Saturday, 23rd February 2013 27 comments English Español Unlike hard disk drives (HDDs), NAND flash memory that make SSD cannot overwrite existing data. This means that you first have to delete the old data before writing new one. Flash memory is divided into blocks, which is further divided in pages. The minimum write unit is a page, but the smallest erase unit is a Tags block. apache Applet debian email fpga game Git GNOME hack hardware kernel linux meego networking packages performance power management procmail python RFKill Security ssd tor trim usb virtualization war webkit wireless Categories http://planet.igalia.com http://planet.webkit.org http://planet.webkitgtk.org http://planetsecurity.org Share it! Data can be written directly into an empty page, but only whole blocks can be erased. Therefore, to reclaim the space taken up by invalid data, all the valid data from one block must be first copied and written into the empty pages of a new block. Only then can the invalid data in the original block be erased, making it ready Recent Posts for new valid data to be written. WebKitGTK+ Performance Bot! Do you see the problem? This means that as time goes on, the SSD will internally fragment the blocks How to connect to .onion Tor domains with among the different pages, until that it reaches a point where there won’t be available any empty page.
    [Show full text]
  • I.MX Linux® Reference Manual
    i.MX Linux® Reference Manual Document Number: IMXLXRM Rev. 1, 01/2017 i.MX Linux® Reference Manual, Rev. 1, 01/2017 2 NXP Semiconductors Contents Section number Title Page Chapter 1 About this Book 1.1 Audience....................................................................................................................................................................... 27 1.1.1 Conventions................................................................................................................................................... 27 1.1.2 Definitions, Acronyms, and Abbreviations....................................................................................................27 Chapter 2 Introduction 2.1 Overview.......................................................................................................................................................................31 2.1.1 Software Base................................................................................................................................................ 31 2.1.2 Features.......................................................................................................................................................... 31 Chapter 3 Machine-Specific Layer (MSL) 3.1 Introduction...................................................................................................................................................................37 3.2 Interrupts (Operation)..................................................................................................................................................
    [Show full text]
  • Networking with Wicked in SUSE® Linux Enterprise 12
    Networking with Wicked in SUSE® Linux Enterprise 12 Something Wicked This Way Comes Guide www.suse.com Solution Guide Server Server Solution Guide Networking with Wicked in SUSE Linux Enterprise 12 Wicked QuickStart Guide Abstract: Introduced with SUSE® Linux Enterprise 12, Wicked is the new network management tool for Linux, largely replacing the sysconfig package to manage the ever-more-complicated network configurations. Wicked provides network configuration as a service, enabling you to change your configuration dynamically. This paper covers the basics of Wicked with an emphasis on Recently, new technologies have accelerated the trend toward providing correlations between how things were done previ- complexity. Virtualization requires on-demand provisioning of ously and how they need to be done now. resources, including networks. Converged networks that mix data and storage traffic on a shared link require a tighter integra- Introduction tion between stacks that were previously mostly independent. When S.u.S.E.1 first introduced its Linux distribution, network- ing requirements were relatively simple and static. Over time Today, more than 20 years after the first SUSE distribution, net- networking evolved to become far more complex and dynamic. work configurations are very difficult to manage properly, let For example, automatic address configuration protocols such as alone easily (see Figure 1). DHCP or IPv6 auto-configuration entered the picture along with a plethora of new classes of network devices. Modern Network Landscape While this evolution was happening, the concepts behind man- aging a Linux system’s network configuration didn’t change much. The basic idea of storing a configuration in some files and applying it at system boot up using a collection of scripts and system programs was pretty much the same.
    [Show full text]
  • O'reilly Linux Kernel in a Nutshell.Pdf
    ,title.4229 Page i Friday, December 1, 2006 9:52 AM LINUX KERNEL IN A NUTSHELL ,title.4229 Page ii Friday, December 1, 2006 9:52 AM Other Linux resources from O’Reilly Related titles Building Embedded Linux Running Linux Systems Understanding Linux Linux Device Drivers Network Internals Linux in a Nutshell Understanding the Linux Linux Pocket Guide Kernel Linux Books linux.oreilly.com is a complete catalog of O’Reilly’s Resource Center books on Linux and Unix and related technologies, in- cluding sample chapters and code examples. Conferences O’Reilly brings diverse innovators together to nurture the ideas that spark revolutionary industries. We spe- cialize in documenting the latest tools and systems, translating the innovator’s knowledge into useful skills for those in the trenches. Visit conferences.oreilly.com for our upcoming events. Safari Bookshelf (safari.oreilly.com) is the premier on- line reference library for programmers and IT professionals. Conduct searches across more than 1,000 books. Subscribers can zero in on answers to time-critical questions in a matter of seconds. Read the books on your Bookshelf from cover to cover or sim- ply flip to the page you need. Try it today for free. ,title.4229 Page iii Friday, December 1, 2006 9:52 AM LINUX KERNEL IN A NUTSHELL Greg Kroah-Hartman Beijing • Cambridge • Farnham • Köln • Paris • Sebastopol • Taipei • Tokyo ,LKNSTOC.fm.8428 Page v Friday, December 1, 2006 9:55 AM Chapter 1 Table of Contents Preface . ix Part I. Building the Kernel 1. Introduction . 3 Using This Book 4 2. Requirements for Building and Using the Kernel .
    [Show full text]
  • Communicating Between the Kernel and User-Space in Linux Using Netlink Sockets
    SOFTWARE—PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2010; 00:1–7 Prepared using speauth.cls [Version: 2002/09/23 v2.2] Communicating between the kernel and user-space in Linux using Netlink sockets Pablo Neira Ayuso∗,∗1, Rafael M. Gasca1 and Laurent Lefevre2 1 QUIVIR Research Group, Departament of Computer Languages and Systems, University of Seville, Spain. 2 RESO/LIP team, INRIA, University of Lyon, France. SUMMARY When developing Linux kernel features, it is a good practise to expose the necessary details to user-space to enable extensibility. This allows the development of new features and sophisticated configurations from user-space. Commonly, software developers have to face the task of looking for a good way to communicate between kernel and user-space in Linux. This tutorial introduces you to Netlink sockets, a flexible and extensible messaging system that provides communication between kernel and user-space. In this tutorial, we provide fundamental guidelines for practitioners who wish to develop Netlink-based interfaces. key words: kernel interfaces, netlink, linux 1. INTRODUCTION Portable open-source operating systems like Linux [1] provide a good environment to develop applications for the real-world since they can be used in very different platforms: from very small embedded devices, like smartphones and PDAs, to standalone computers and large scale clusters. Moreover, the availability of the source code also allows its study and modification, this renders Linux useful for both the industry and the academia. The core of Linux, like many modern operating systems, follows a monolithic † design for performance reasons. The main bricks that compose the operating system are implemented ∗Correspondence to: Pablo Neira Ayuso, ETS Ingenieria Informatica, Department of Computer Languages and Systems.
    [Show full text]