-Libraries are located in subdirectories of $(RTE_SDK)/lib.
-By convention, we call a library any code that provides an API to an application.
-Typically, it generates an archive file (.a), but a kernel module should also go in the same directory.
-
-The lib directory contains::
-
- lib
- +-- librte_cmdline # command line interface helper
- +-- librte_distributor # packet distributor
- +-- librte_eal # environment abstraction layer
- +-- librte_ether # generic interface to poll mode driver
- +-- librte_hash # hash library
- +-- librte_ip_frag # IP fragmentation library
- +-- librte_ivshmem # QEMU IVSHMEM library
- +-- librte_kni # kernel NIC interface
- +-- librte_kvargs # argument parsing library
- +-- librte_lpm # longest prefix match library
- +-- librte_malloc # malloc-like functions
- +-- librte_mbuf # packet and control mbuf manipulation library
- +-- librte_mempool # memory pool manager (fixedsized objects)
- +-- librte_meter # QoS metering library
- +-- librte_net # various IP-related headers
- +-- librte_pmd_bond # bonding poll mode driver
- +-- librte_pmd_e1000 # 1GbE poll mode drivers (igb and em)
- +-- librte_pmd_ixgbe # 10GbE poll mode driver
- +-- librte_pmd_i40e # 40GbE poll mode driver
- +-- librte_pmd_pcap # PCAP poll mode driver
- +-- librte_pmd_ring # ring poll mode driver
- +-- librte_pmd_virtio # virtio poll mode driver
- +-- librte_pmd_vmxnet3 # VMXNET3 poll mode driver
- +-- librte_pmd_xenvirt # Xen virtio poll mode driver
- +-- librte_power # power management library
- +-- librte_ring # software rings (act as lockless FIFOs)
- +-- librte_sched # QoS scheduler and dropper library
- +-- librte_timer # timer library
+Libraries are located in subdirectories of ``$(RTE_SDK)/lib``.
+By convention a library refers to any code that provides an API to an application.
+Typically, it generates an archive file (``.a``), but a kernel module would also go in the same directory.
+
+Drivers
+-------
+
+Drivers are special libraries which provide poll-mode driver implementations for
+devices: either hardware devices or pseudo/virtual devices. They are contained
+in the *drivers* subdirectory, classified by type, and each compiles to a
+library with the format ``librte_pmd_X.a`` where ``X`` is the driver name.
+
+.. note::
+
+ Several of the ``driver/net`` directories contain a ``base``
+ sub-directory. The ``base`` directory generally contains code the shouldn't
+ be modified directly by the user. Any enhancements should be done via the
+ ``X_osdep.c`` and/or ``X_osdep.h`` files in that directory. Refer to the
+ local README in the base directories for driver specific instructions.
+