DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] doc: reword glossary
@ 2024-11-22  2:26 Nandini Persad
  2024-11-22  2:40 ` [PATCH v2] " Nandini Persad
  2024-11-26  3:24 ` [PATCH] " Stephen Hemminger
  0 siblings, 2 replies; 4+ messages in thread
From: Nandini Persad @ 2024-11-22  2:26 UTC (permalink / raw)
  Cc: dev

I added additional reference links and definitions to many
of the terms in the glossary. Please feel free to provide
feedback to ensure my definitions suit the proper context
in the DPDK community.

Signed-off-by: Nandini Persad <nandinipersad361@gmail.com>
---
 doc/guides/prog_guide/glossary.rst | 107 ++++++++++++++++++++++-------
 1 file changed, 81 insertions(+), 26 deletions(-)

diff --git a/doc/guides/prog_guide/glossary.rst b/doc/guides/prog_guide/glossary.rst
index 8d6349701e..fc79e9656f 100644
--- a/doc/guides/prog_guide/glossary.rst
+++ b/doc/guides/prog_guide/glossary.rst
@@ -6,70 +6,92 @@ Glossary
 
 
 ACL
-   Access Control List
+   An access control list (ACL) is a set of rules that define who can access a resource and what actions they can perform. 
+   `ACL Link <https://www.fortinet.com/resources/cyberglossary/network-access-control-list#:~:text=A%20network%20access%20control%20list%20(ACL)%20is%20made%20up%20of,device%2C%20it%20cannot%20gain%20access.>`_
 
 API
    Application Programming Interface
 
 ASLR
    Linux* kernel Address-Space Layout Randomization
+   A computer security technique that protects against buffer overflow attacks by randomizing the location of executables in memory in Linux. 
+   `ASLR Link <https://en.wikipedia.org/wiki/Address_space_layout_randomization>`_
 
 BSD
-   Berkeley Software Distribution
+   Berkeley Software Distribution is a Unix-like operating system.
 
 Clr
    Clear
 
 CIDR
    Classless Inter-Domain Routing
+   A method of assigning IP address that improves data routing efficiency on the internet and is used in IPv4 and IPv6.
+   `RFC Link <https://datatracker.ietf.org/doc/html/rfc1918>`_
 
 Control Plane
-   The control plane is concerned with the routing of packets and with
-   providing a start or end point.
+   A Control Plane is a key concept in networking that refers to the part of a network system
+   responsible for managing and making decisions about where and how data packets are forwarded within a network.
 
 Core
-   A core may include several lcores or threads if the processor supports
-   hyperthreading.
+   A core may include several lcores or threads if the processor supports simultaneous multithreading (SMT).
+   `Simultaneous Multithreading <https://en.wikipedia.org/wiki/Simultaneous_multithreading>`_
 
 Core Components
-   A set of libraries provided by the DPDK, including eal, ring, mempool,
-   mbuf, timers, and so on.
+   A set of libraries provided by DPDK which are used by nearly all applications and
+   upon which other DPDK libraries and drivers depend. For example, eal, ring, mempool and mbuf.
 
 CPU
    Central Processing Unit
 
 CRC
    Cyclic Redundancy Check
+   An algorithm that detects errors in data transmission and storage.
 
 Data Plane
-   In contrast to the control plane, the data plane in a network architecture
-   are the layers involved when forwarding packets.  These layers must be
-   highly optimized to achieve good performance.
+   In contrast to the control plane, which is responsible for setting up and managing data connections,
+   the data plane in a network architecture includes the layers involved when processing and forwarding
+   data packets between communicating endpoints. These layers must be highly optimized to achieve good performance.
 
 DIMM
    Dual In-line Memory Module
-
+   A module containing one or several Random Access Memory (RAM) or Dynamic RAM (DRAM) chips on a printed
+   circuit board that connect it directly to the computer motherboard.
+   
 Doxygen
    A documentation generator used in the DPDK to generate the API reference.
+   `Doxygen Link <https://www.doxygen.nl/>`_
 
 DPDK
    Data Plane Development Kit
 
 DRAM
    Dynamic Random Access Memory
+   A type of random access memory (RAM) that is used in computers to temporarily store information.
+   `Link <https://en.wikipedia.org/wiki/Dynamic_random-access_memory>`_
 
 EAL
-   The Environment Abstraction Layer (EAL) provides a generic interface that
-   hides the environment specifics from the applications and libraries.  The
-   services expected from the EAL are: development kit loading and launching,
-   core affinity/ assignment procedures, system memory allocation/description,
-   PCI bus access, inter-partition communication.
-
+   The Environment Abstraction Layer (EAL) is a DPDK core library that provides a generic interface
+   that hides the environment specifics from the applications and libraries. The services expected
+   from the EAL are: development kit loading and launching, core affinity/ assignment procedures, system
+   memory allocation/description, PCI bus access, inter-partition communication.
+   `Link <https://github.com/emmericp/dpdk-github-inofficial/blob/master/doc/guides/prog_guide/env_abstraction_layer.rst>`_
+
+EAL Thread
+   An EAL thread is typically a thread that runs packet processing tasks. These threads are often
+   pinned to logical cores (lcores), which helps to ensure that packet processing tasks are executed with
+   minimal interruption and maximal performance by utilizing specific CPU resources dedicated to those tasks.
+   EAL threads can also handle other tasks like managing buffers, queues, and I/O operations.
+   
 FIFO
    First In First Out
+   A method for organizing the manipulation of a data structure where the oldest (first) entry, or
+   "head" of the queue, is processed first.
+   `Link <https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)>`_ 
 
 FPGA
    Field Programmable Gate Array
+   An integrated circuit with a programmable hardware fabric that can be reconfigured to suit different purposes.
+   `Link <https://en.wikipedia.org/wiki/Field-programmable_gate_array>`_
 
 GbE
    Gigabit Ethernet
@@ -80,12 +102,21 @@ HW
 HPET
    High Precision Event Timer; a hardware timer that provides a precise time
    reference on x86 platforms.
+   
+Huge Pages
+   Memory page sizes, larger than the default page size, which are supported by the host CPU.
+   These pages are generally megabytes or even a gigabytes in size,  depending on platform,
+   compared to the default page size on most platforms which is measured in kilobytes, e.g. 4k.
+   Where the operating system provides access to hugepage memory, DPDK will take advantage of
+   those hugepages for increased performance.
+   `Link <https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html>`_
 
 ID
    Identifier
 
 IOCTL
    Input/Output Control
+   A system call that allows applications to communicate with device drivers to perform specific input/output operations.
 
 I/O
    Input/Output
@@ -100,30 +131,39 @@ IPv6
    Internet Protocol version 6
 
 lcore
-   A logical execution unit of the processor, sometimes called a *hardware
-   thread*.
+   A logical execution unit of the processor, sometimes called a hardware thread or EAL thread;
+   Also known as logical core.
 
 L1
    Layer 1
+   The Physical layer of the network responsible for sending and receiving signals to transmit data.
 
 L2
    Layer 2
 
 L3
    Layer 3
+   Also known as the network layer, Layer 3 is responsible for packet forwarding including routing through intermediate routers
+   Example protocols include IP v4 and IP v6.
+   `Network Layer <https://en.wikipedia.org/wiki/Network_layer>`_   
 
 L4
    Layer 4
+   Examples include UDP and TCP.
+   `Transport Layer <https://en.wikipedia.org/wiki/Transport_layer>`_
 
 LAN
    Local Area Network
 
 LPM
    Longest Prefix Match
+   A table lookup algorithm where the entry selected is that which matches the longest initial part (or prefix)
+   of the lookup key, rather than requiring an exact match on the full key.
+   `Reference Link <https://en.wikipedia.org/wiki/Longest_prefix_match>`_
 
 main lcore
-   The execution unit that executes the main() function and that launches
-   other lcores.
+   The logical core or thread that executes the main function and that launches tasks on other logical
+   cores used by the application.
 
 master lcore
    Deprecated name for *main lcore*. No longer used.
@@ -134,20 +174,21 @@ mbuf
    concepts of packet buffers or mbuf, refer to *TCP/IP Illustrated, Volume 2:
    The Implementation*.
 
-MESI
-   Modified Exclusive Shared Invalid (CPU cache coherency protocol)
-
 MTU
    Maximum Transfer Unit
+   The size of the largest protocol data unit (PDU) that can be communicated in a single network layer transaction.
 
 NIC
    Network Interface Card
+   A hardware component, usually a circuit board or chip, installed on a computer so it can connect to a network.
 
 OOO
    Out Of Order (execution of instructions within the CPU pipeline)
 
 NUMA
    Non-uniform Memory Access
+   A computer memory design that allows processors to access memory faster when it's located closer to them.
+   `Reference Link <https://en.wikipedia.org/wiki/Non-uniform_memory_access>`_
 
 PCI
    Peripheral Connect Interface
@@ -163,12 +204,16 @@ pktmbuf
 
 PMD
    Poll Mode Driver
+   A program that continuously polls a network interface card (NIC) for new packets,
+   instead of waiting for the NIC to interrupt the CPU. PMDs are used to quickly receive,
+   process, and deliver packets in a user's application and use APIs to configure devices and queues.
 
 QoS
    Quality of Service
 
 RCU
    Read-Copy-Update algorithm, an alternative to simple rwlocks.
+   A synchronization mechanism that allows multiple threads to read and update shared data structures without using locks.
 
 Rd
    Read
@@ -198,6 +243,7 @@ SLA
 
 srTCM
    Single Rate Three Color Marking
+   A policer meters an IP packet stream and marks its packets either green, yellow, or red.
 
 SRTD
    Scheduler Round Trip Delay
@@ -218,12 +264,18 @@ TC
 
 TLB
    Translation Lookaside Buffer
+   A memory cache that stores the recent translations of virtual memory to physical memory to enable faster retrieval.
 
 TLS
    Thread Local Storage
-
+   A memory management method that uses static or global memory local to a thread.
+   `Reference Link <https://en.wikipedia.org/wiki/Thread-local_storage>`_
+   
 trTCM
    Two Rate Three Color Marking
+   A component that meters an IP traffic stream, marks it as one of three color categorie
+   sand assists in traffic congestion-control.
+   `RFC Link <https://datatracker.ietf.org/doc/html/rfc2698>`_
 
 TSC
    Time Stamp Counter
@@ -245,6 +297,9 @@ Worker lcore
 
 WRED
    Weighted Random Early Detection
+   A queueing discipline that allows the router to drop random packets to prevent tail drop.
+   This is helpful for TCP/IP connections.
 
 WRR
    Weighted Round Robin
+   A scheduling algorithm used to distribute workloads across multiple resources based on assigned weights.
-- 
2.34.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2] doc: reword glossary
  2024-11-22  2:26 [PATCH] doc: reword glossary Nandini Persad
@ 2024-11-22  2:40 ` Nandini Persad
  2024-12-02  5:23   ` [PATCH v3] " Nandini Persad
  2024-11-26  3:24 ` [PATCH] " Stephen Hemminger
  1 sibling, 1 reply; 4+ messages in thread
From: Nandini Persad @ 2024-11-22  2:40 UTC (permalink / raw)
  To: dev

I added additional reference links and definitions to many
of the terms in the glossary. Please feel free to provide
feedback to ensure my definitions suit the proper context
in the DPDK community.

Signed-off-by: Nandini Persad <nandinipersad361@gmail.com>
---
 doc/guides/prog_guide/glossary.rst | 101 ++++++++++++++++++++++-------
 1 file changed, 78 insertions(+), 23 deletions(-)

diff --git a/doc/guides/prog_guide/glossary.rst b/doc/guides/prog_guide/glossary.rst
index 8d6349701e..9f85e46437 100644
--- a/doc/guides/prog_guide/glossary.rst
+++ b/doc/guides/prog_guide/glossary.rst
@@ -6,70 +6,92 @@ Glossary
 
 
 ACL
-   Access Control List
+   An access control list (ACL) is a set of rules that define who can access a resource and what actions they can perform.
+   `ACL Link <https://www.fortinet.com/resources/cyberglossary/network-access-control-list#:~:text=A%20network%20access%20control%20list%20(ACL)%20is%20made%20up%20of,device%2C%20it%20cannot%20gain%20access.>`_
 
 API
    Application Programming Interface
 
 ASLR
    Linux* kernel Address-Space Layout Randomization
+   A computer security technique that protects against buffer overflow attacks by randomizing the location of executables in memory in Linux.
+   `ASLR Link <https://en.wikipedia.org/wiki/Address_space_layout_randomization>`_
 
 BSD
-   Berkeley Software Distribution
+   Berkeley Software Distribution is a Unix-like operating system.
 
 Clr
    Clear
 
 CIDR
    Classless Inter-Domain Routing
+   A method of assigning IP address that improves data routing efficiency on the internet and is used in IPv4 and IPv6.
+   `RFC Link <https://datatracker.ietf.org/doc/html/rfc1918>`_
 
 Control Plane
-   The control plane is concerned with the routing of packets and with
-   providing a start or end point.
+   A Control Plane is a key concept in networking that refers to the part of a network system
+   responsible for managing and making decisions about where and how data packets are forwarded within a network.
 
 Core
-   A core may include several lcores or threads if the processor supports
-   hyperthreading.
+   A core may include several lcores or threads if the processor supports simultaneous multithreading (SMT).
+   `Simultaneous Multithreading <https://en.wikipedia.org/wiki/Simultaneous_multithreading>`_
 
 Core Components
-   A set of libraries provided by the DPDK, including eal, ring, mempool,
-   mbuf, timers, and so on.
+   A set of libraries provided by DPDK which are used by nearly all applications and
+   upon which other DPDK libraries and drivers depend. For example, eal, ring, mempool and mbuf.
 
 CPU
    Central Processing Unit
 
 CRC
    Cyclic Redundancy Check
+   An algorithm that detects errors in data transmission and storage.
 
 Data Plane
-   In contrast to the control plane, the data plane in a network architecture
-   are the layers involved when forwarding packets.  These layers must be
-   highly optimized to achieve good performance.
+   In contrast to the control plane, which is responsible for setting up and managing data connections,
+   the data plane in a network architecture includes the layers involved when processing and forwarding
+   data packets between communicating endpoints. These layers must be highly optimized to achieve good performance.
 
 DIMM
    Dual In-line Memory Module
+   A module containing one or several Random Access Memory (RAM) or Dynamic RAM (DRAM) chips on a printed
+   circuit board that connect it directly to the computer motherboard.
 
 Doxygen
    A documentation generator used in the DPDK to generate the API reference.
+   `Doxygen Link <https://www.doxygen.nl/>`_
 
 DPDK
    Data Plane Development Kit
 
 DRAM
    Dynamic Random Access Memory
+   A type of random access memory (RAM) that is used in computers to temporarily store information.
+   `Link <https://en.wikipedia.org/wiki/Dynamic_random-access_memory>`_
 
 EAL
-   The Environment Abstraction Layer (EAL) provides a generic interface that
-   hides the environment specifics from the applications and libraries.  The
-   services expected from the EAL are: development kit loading and launching,
-   core affinity/ assignment procedures, system memory allocation/description,
-   PCI bus access, inter-partition communication.
+   The Environment Abstraction Layer (EAL) is a DPDK core library that provides a generic interface
+   that hides the environment specifics from the applications and libraries. The services expected
+   from the EAL are: development kit loading and launching, core affinity/ assignment procedures, system
+   memory allocation/description, PCI bus access, inter-partition communication.
+   `Link <https://github.com/emmericp/dpdk-github-inofficial/blob/master/doc/guides/prog_guide/env_abstraction_layer.rst>`_
+
+EAL Thread
+   An EAL thread is typically a thread that runs packet processing tasks. These threads are often
+   pinned to logical cores (lcores), which helps to ensure that packet processing tasks are executed with
+   minimal interruption and maximal performance by utilizing specific CPU resources dedicated to those tasks.
+   EAL threads can also handle other tasks like managing buffers, queues, and I/O operations.
 
 FIFO
    First In First Out
+   A method for organizing the manipulation of a data structure where the oldest (first) entry, or
+   "head" of the queue, is processed first.
+   `Link <https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)>`_
 
 FPGA
    Field Programmable Gate Array
+   An integrated circuit with a programmable hardware fabric that can be reconfigured to suit different purposes.
+   `Link <https://en.wikipedia.org/wiki/Field-programmable_gate_array>`_
 
 GbE
    Gigabit Ethernet
@@ -81,11 +103,20 @@ HPET
    High Precision Event Timer; a hardware timer that provides a precise time
    reference on x86 platforms.
 
+Huge Pages
+   Memory page sizes, larger than the default page size, which are supported by the host CPU.
+   These pages are generally megabytes or even a gigabytes in size,  depending on platform,
+   compared to the default page size on most platforms which is measured in kilobytes, e.g. 4k.
+   Where the operating system provides access to hugepage memory, DPDK will take advantage of
+   those hugepages for increased performance.
+   `Link <https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html>`_
+
 ID
    Identifier
 
 IOCTL
    Input/Output Control
+   A system call that allows applications to communicate with device drivers to perform specific input/output operations.
 
 I/O
    Input/Output
@@ -100,30 +131,39 @@ IPv6
    Internet Protocol version 6
 
 lcore
-   A logical execution unit of the processor, sometimes called a *hardware
-   thread*.
+   A logical execution unit of the processor, sometimes called a hardware thread or EAL thread;
+   Also known as logical core.
 
 L1
    Layer 1
+   The Physical layer of the network responsible for sending and receiving signals to transmit data.
 
 L2
    Layer 2
 
 L3
    Layer 3
+   Also known as the network layer, Layer 3 is responsible for packet forwarding including routing through intermediate routers
+   Example protocols include IP v4 and IP v6.
+   `Network Layer <https://en.wikipedia.org/wiki/Network_layer>`_
 
 L4
    Layer 4
+   Examples include UDP and TCP.
+   `Transport Layer <https://en.wikipedia.org/wiki/Transport_layer>`_
 
 LAN
    Local Area Network
 
 LPM
    Longest Prefix Match
+   A table lookup algorithm where the entry selected is that which matches the longest initial part (or prefix)
+   of the lookup key, rather than requiring an exact match on the full key.
+   `Reference Link <https://en.wikipedia.org/wiki/Longest_prefix_match>`_
 
 main lcore
-   The execution unit that executes the main() function and that launches
-   other lcores.
+   The logical core or thread that executes the main function and that launches tasks on other logical
+   cores used by the application.
 
 master lcore
    Deprecated name for *main lcore*. No longer used.
@@ -134,20 +174,21 @@ mbuf
    concepts of packet buffers or mbuf, refer to *TCP/IP Illustrated, Volume 2:
    The Implementation*.
 
-MESI
-   Modified Exclusive Shared Invalid (CPU cache coherency protocol)
-
 MTU
    Maximum Transfer Unit
+   The size of the largest protocol data unit (PDU) that can be communicated in a single network layer transaction.
 
 NIC
    Network Interface Card
+   A hardware component, usually a circuit board or chip, installed on a computer so it can connect to a network.
 
 OOO
    Out Of Order (execution of instructions within the CPU pipeline)
 
 NUMA
    Non-uniform Memory Access
+   A computer memory design that allows processors to access memory faster when it's located closer to them.
+   `Reference Link <https://en.wikipedia.org/wiki/Non-uniform_memory_access>`_
 
 PCI
    Peripheral Connect Interface
@@ -163,12 +204,16 @@ pktmbuf
 
 PMD
    Poll Mode Driver
+   A program that continuously polls a network interface card (NIC) for new packets,
+   instead of waiting for the NIC to interrupt the CPU. PMDs are used to quickly receive,
+   process, and deliver packets in a user's application and use APIs to configure devices and queues.
 
 QoS
    Quality of Service
 
 RCU
    Read-Copy-Update algorithm, an alternative to simple rwlocks.
+   A synchronization mechanism that allows multiple threads to read and update shared data structures without using locks.
 
 Rd
    Read
@@ -198,6 +243,7 @@ SLA
 
 srTCM
    Single Rate Three Color Marking
+   A policer meters an IP packet stream and marks its packets either green, yellow, or red.
 
 SRTD
    Scheduler Round Trip Delay
@@ -218,12 +264,18 @@ TC
 
 TLB
    Translation Lookaside Buffer
+   A memory cache that stores the recent translations of virtual memory to physical memory to enable faster retrieval.
 
 TLS
    Thread Local Storage
+   A memory management method that uses static or global memory local to a thread.
+   `Reference Link <https://en.wikipedia.org/wiki/Thread-local_storage>`_
 
 trTCM
    Two Rate Three Color Marking
+   A component that meters an IP traffic stream, marks it as one of three color category
+   sand assists in traffic congestion-control.
+   `RFC Link <https://datatracker.ietf.org/doc/html/rfc2698>`_
 
 TSC
    Time Stamp Counter
@@ -245,6 +297,9 @@ Worker lcore
 
 WRED
    Weighted Random Early Detection
+   A queueing discipline that allows the router to drop random packets to prevent tail drop.
+   This is helpful for TCP/IP connections.
 
 WRR
    Weighted Round Robin
+   A scheduling algorithm used to distribute workloads across multiple resources based on assigned weights.
-- 
2.34.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] doc: reword glossary
  2024-11-22  2:26 [PATCH] doc: reword glossary Nandini Persad
  2024-11-22  2:40 ` [PATCH v2] " Nandini Persad
@ 2024-11-26  3:24 ` Stephen Hemminger
  1 sibling, 0 replies; 4+ messages in thread
From: Stephen Hemminger @ 2024-11-26  3:24 UTC (permalink / raw)
  To: Nandini Persad; +Cc: dev

On Thu, 21 Nov 2024 18:26:45 -0800
Nandini Persad <nandinipersad361@gmail.com> wrote:

> I added additional reference links and definitions to many
> of the terms in the glossary. Please feel free to provide
> feedback to ensure my definitions suit the proper context
> in the DPDK community.
> 
> Signed-off-by: Nandini Persad <nandinipersad361@gmail.com>

Rather than putting links after the text, they can be embedded
which solves lots of the reference warnings.

Please only link to neutral third party places like IETF (RFC's), Wikipedia, etc.
Not vendor sites.

I added a few more links, and there are many more that could go here.
HPET, IPv4 (RFC), IPv6 (RFC), LAN (wikipedia), MTU, NIC, Out of Order execution,
PCI (PCI standard), PHY (wikipedia), PIE (RFC), QoS (various RFC's),
RCU (wikipedia), RED(RFC), RSS (wikipedia) , SLA, srTCM, Traffic Class,
TLB, TSC, TUN/TAP, VLAN, WRED, ...

diff --git a/doc/guides/prog_guide/glossary.rst b/doc/guides/prog_guide/glossary.rst
index 9f85e46437..d832d4c0be 100644
--- a/doc/guides/prog_guide/glossary.rst
+++ b/doc/guides/prog_guide/glossary.rst
@@ -6,35 +6,35 @@ Glossary
 
 
 ACL
-   An access control list (ACL) is a set of rules that define who can access a resource and what actions they can perform.
-   `ACL Link <https://www.fortinet.com/resources/cyberglossary/network-access-control-list#:~:text=A%20network%20access%20control%20list%20(ACL)%20is%20made%20up%20of,device%2C%20it%20cannot%20gain%20access.>`_
+   An `access control list (ACL) <https://en.wikipedia.org/wiki/Access-control_list>`_
+   is a set of rules that define who can access a resource and what actions they can perform.
 
 API
    Application Programming Interface
 
 ASLR
-   Linux* kernel Address-Space Layout Randomization
-   A computer security technique that protects against buffer overflow attacks by randomizing the location of executables in memory in Linux.
-   `ASLR Link <https://en.wikipedia.org/wiki/Address_space_layout_randomization>`_
+   `Address-Space Layout Randomization (ASLR) <https://en.wikipedia.org/wiki/Address_space_layout_randomization>`_
+   is a computer security technique that protects against buffer overflow attacks by randomizing the location of
+   executables in memory.
 
 BSD
-   Berkeley Software Distribution is a Unix-like operating system.
+   `Berkeley Software Distribution (BSD) <https://en.wikipedia.org/wiki/Berkeley_Software_Distribution>`_
+   is an version of Unix™ operating system.
 
 Clr
    Clear
 
 CIDR
-   Classless Inter-Domain Routing
-   A method of assigning IP address that improves data routing efficiency on the internet and is used in IPv4 and IPv6.
-   `RFC Link <https://datatracker.ietf.org/doc/html/rfc1918>`_
+   `Classless Inter-Domain Routing (CIDR) <https://datatracker.ietf.org/doc/html/rfc1918>`_
+   is a method of assigning IP address that improves data routing efficiency on the internet and is used in IPv4 and IPv6.
 
 Control Plane
-   A Control Plane is a key concept in networking that refers to the part of a network system
+   A `Control Plane <https://en.wikipedia.org/wiki/Control_plane>`_ is a concept in networking that refers to the part of the system
    responsible for managing and making decisions about where and how data packets are forwarded within a network.
 
 Core
-   A core may include several lcores or threads if the processor supports simultaneous multithreading (SMT).
-   `Simultaneous Multithreading <https://en.wikipedia.org/wiki/Simultaneous_multithreading>`_
+   A core may include several lcores or threads if the processor supports
+   `simultaneous multithreading (SMT) <https://en.wikipedia.org/wiki/Simultaneous_multithreading>`_
 
 Core Components
    A set of libraries provided by DPDK which are used by nearly all applications and
@@ -49,8 +49,9 @@ CRC
 
 Data Plane
    In contrast to the control plane, which is responsible for setting up and managing data connections,
-   the data plane in a network architecture includes the layers involved when processing and forwarding
-   data packets between communicating endpoints. These layers must be highly optimized to achieve good performance.
+   the `data plane <https://en.wikipedia.org/wiki/Data_plane>`_ in a network architecture includes the
+   layers involved when processing and forwarding data packets between communicating endpoints.
+   These layers must be highly optimized to achieve good performance.
 
 DIMM
    Dual In-line Memory Module
@@ -58,23 +59,22 @@ DIMM
    circuit board that connect it directly to the computer motherboard.
 
 Doxygen
-   A documentation generator used in the DPDK to generate the API reference.
-   `Doxygen Link <https://www.doxygen.nl/>`_
+   `Doxygen <https://www.doxygen.nl/>`_ is a
+   documentation generator used in the DPDK to generate the API reference.
 
 DPDK
    Data Plane Development Kit
 
 DRAM
-   Dynamic Random Access Memory
-   A type of random access memory (RAM) that is used in computers to temporarily store information.
-   `Link <https://en.wikipedia.org/wiki/Dynamic_random-access_memory>`_
+   `Dynamic Random Access Memory <https://en.wikipedia.org/wiki/Dynamic_random-access_memory>`_
+   is  type of random access memory (RAM) that is used in computers to temporarily store information.
 
 EAL
-   The Environment Abstraction Layer (EAL) is a DPDK core library that provides a generic interface
-   that hides the environment specifics from the applications and libraries. The services expected
-   from the EAL are: development kit loading and launching, core affinity/ assignment procedures, system
-   memory allocation/description, PCI bus access, inter-partition communication.
-   `Link <https://github.com/emmericp/dpdk-github-inofficial/blob/master/doc/guides/prog_guide/env_abstraction_layer.rst>`_
+   :doc:`Environment Abstraction Layer (EAL) <env_abstraction_layer>`
+   is a the core DPDK library that provides a generic interface
+   that hides the environment specifics from the applications and libraries.
+   The services expected from the EAL are: loading and launching, core management,
+   memory allocation, bus management, and inter-partition communication.
 
 EAL Thread
    An EAL thread is typically a thread that runs packet processing tasks. These threads are often
@@ -83,15 +83,13 @@ EAL Thread
    EAL threads can also handle other tasks like managing buffers, queues, and I/O operations.
 
 FIFO
-   First In First Out
-   A method for organizing the manipulation of a data structure where the oldest (first) entry, or
+   `First In First Out (FIFO) <https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)>`_
+   is a method for organizing the manipulation of a data structure where the oldest (first) entry, or
    "head" of the queue, is processed first.
-   `Link <https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)>`_
 
 FPGA
-   Field Programmable Gate Array
+   `Field Programmable Gate Array (FPGA) <https://en.wikipedia.org/wiki/Field-programmable_gate_array>`_
    An integrated circuit with a programmable hardware fabric that can be reconfigured to suit different purposes.
-   `Link <https://en.wikipedia.org/wiki/Field-programmable_gate_array>`_
 
 GbE
    Gigabit Ethernet
@@ -104,12 +102,12 @@ HPET
    reference on x86 platforms.
 
 Huge Pages
-   Memory page sizes, larger than the default page size, which are supported by the host CPU.
+   `Huge pages <https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html>`_
+   are memory page sizes, larger than the default page size, which are supported by the host CPU.
    These pages are generally megabytes or even a gigabytes in size,  depending on platform,
    compared to the default page size on most platforms which is measured in kilobytes, e.g. 4k.
    Where the operating system provides access to hugepage memory, DPDK will take advantage of
    those hugepages for increased performance.
-   `Link <https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html>`_
 
 ID
    Identifier
@@ -135,31 +133,29 @@ lcore
    Also known as logical core.
 
 L1
-   Layer 1
+   Layer 1 - `Physical Layer <https://en.wikipedia.org/wiki/Physical_layer>`_
    The Physical layer of the network responsible for sending and receiving signals to transmit data.
 
 L2
-   Layer 2
+   Layer 2 - `Datalink Layer <https://en.wikipedia.org/wiki/Data_link_layer>`_
 
 L3
-   Layer 3
+   Layer 3 - `Network Layer <https://en.wikipedia.org/wiki/Network_layer>`_
    Also known as the network layer, Layer 3 is responsible for packet forwarding including routing through intermediate routers
    Example protocols include IP v4 and IP v6.
-   `Network Layer <https://en.wikipedia.org/wiki/Network_layer>`_
 
 L4
-   Layer 4
+   Layer 4 - `Transport Layer <https://en.wikipedia.org/wiki/Transport_layer>`_
    Examples include UDP and TCP.
-   `Transport Layer <https://en.wikipedia.org/wiki/Transport_layer>`_
+
 
 LAN
    Local Area Network
 
 LPM
-   Longest Prefix Match
-   A table lookup algorithm where the entry selected is that which matches the longest initial part (or prefix)
+   `Longest Prefix Match <https://en.wikipedia.org/wiki/Longest_prefix_match>`_ is
+   a lookup algorithm where the entry selected is that which matches the longest initial part (or prefix)
    of the lookup key, rather than requiring an exact match on the full key.
-   `Reference Link <https://en.wikipedia.org/wiki/Longest_prefix_match>`_
 
 main lcore
    The logical core or thread that executes the main function and that launches tasks on other logical
@@ -186,9 +182,8 @@ OOO
    Out Of Order (execution of instructions within the CPU pipeline)
 
 NUMA
-   Non-uniform Memory Access
+   `Non-uniform Memory Access (NUMA) <https://en.wikipedia.org/wiki/Non-uniform_memory_access>`_
    A computer memory design that allows processors to access memory faster when it's located closer to them.
-   `Reference Link <https://en.wikipedia.org/wiki/Non-uniform_memory_access>`_
 
 PCI
    Peripheral Connect Interface
@@ -267,15 +262,13 @@ TLB
    A memory cache that stores the recent translations of virtual memory to physical memory to enable faster retrieval.
 
 TLS
-   Thread Local Storage
+   `Thread Local Storage <https://en.wikipedia.org/wiki/Thread-local_storage>`_
    A memory management method that uses static or global memory local to a thread.
-   `Reference Link <https://en.wikipedia.org/wiki/Thread-local_storage>`_
 
 trTCM
-   Two Rate Three Color Marking
+   `Two Rate Three Color Marking <https://datatracker.ietf.org/doc/html/rfc2698>`
    A component that meters an IP traffic stream, marks it as one of three color category
    sand assists in traffic congestion-control.
-   `RFC Link <https://datatracker.ietf.org/doc/html/rfc2698>`_
 
 TSC
    Time Stamp Counter


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v3] doc: reword glossary
  2024-11-22  2:40 ` [PATCH v2] " Nandini Persad
@ 2024-12-02  5:23   ` Nandini Persad
  0 siblings, 0 replies; 4+ messages in thread
From: Nandini Persad @ 2024-12-02  5:23 UTC (permalink / raw)
  To: dev

I added additional reference links and definitions to many
of the terms in the glossary. Please feel free to provide
feedback to ensure my definitions suit the proper context
in the DPDK community.

Signed-off-by: Nandini Persad <nandinipersad361@gmail.com>
---
 doc/guides/prog_guide/glossary.rst | 120 ++++++++++++++++++++---------
 1 file changed, 84 insertions(+), 36 deletions(-)

diff --git a/doc/guides/prog_guide/glossary.rst b/doc/guides/prog_guide/glossary.rst
index 8d6349701e..d832d4c0be 100644
--- a/doc/guides/prog_guide/glossary.rst
+++ b/doc/guides/prog_guide/glossary.rst
@@ -6,70 +6,90 @@ Glossary
 
 
 ACL
-   Access Control List
+   An `access control list (ACL) <https://en.wikipedia.org/wiki/Access-control_list>`_
+   is a set of rules that define who can access a resource and what actions they can perform.
 
 API
    Application Programming Interface
 
 ASLR
-   Linux* kernel Address-Space Layout Randomization
+   `Address-Space Layout Randomization (ASLR) <https://en.wikipedia.org/wiki/Address_space_layout_randomization>`_
+   is a computer security technique that protects against buffer overflow attacks by randomizing the location of
+   executables in memory.
 
 BSD
-   Berkeley Software Distribution
+   `Berkeley Software Distribution (BSD) <https://en.wikipedia.org/wiki/Berkeley_Software_Distribution>`_
+   is an version of Unix™ operating system.
 
 Clr
    Clear
 
 CIDR
-   Classless Inter-Domain Routing
+   `Classless Inter-Domain Routing (CIDR) <https://datatracker.ietf.org/doc/html/rfc1918>`_
+   is a method of assigning IP address that improves data routing efficiency on the internet and is used in IPv4 and IPv6.
 
 Control Plane
-   The control plane is concerned with the routing of packets and with
-   providing a start or end point.
+   A `Control Plane <https://en.wikipedia.org/wiki/Control_plane>`_ is a concept in networking that refers to the part of the system
+   responsible for managing and making decisions about where and how data packets are forwarded within a network.
 
 Core
    A core may include several lcores or threads if the processor supports
-   hyperthreading.
+   `simultaneous multithreading (SMT) <https://en.wikipedia.org/wiki/Simultaneous_multithreading>`_
 
 Core Components
-   A set of libraries provided by the DPDK, including eal, ring, mempool,
-   mbuf, timers, and so on.
+   A set of libraries provided by DPDK which are used by nearly all applications and
+   upon which other DPDK libraries and drivers depend. For example, eal, ring, mempool and mbuf.
 
 CPU
    Central Processing Unit
 
 CRC
    Cyclic Redundancy Check
+   An algorithm that detects errors in data transmission and storage.
 
 Data Plane
-   In contrast to the control plane, the data plane in a network architecture
-   are the layers involved when forwarding packets.  These layers must be
-   highly optimized to achieve good performance.
+   In contrast to the control plane, which is responsible for setting up and managing data connections,
+   the `data plane <https://en.wikipedia.org/wiki/Data_plane>`_ in a network architecture includes the
+   layers involved when processing and forwarding data packets between communicating endpoints.
+   These layers must be highly optimized to achieve good performance.
 
 DIMM
    Dual In-line Memory Module
+   A module containing one or several Random Access Memory (RAM) or Dynamic RAM (DRAM) chips on a printed
+   circuit board that connect it directly to the computer motherboard.
 
 Doxygen
-   A documentation generator used in the DPDK to generate the API reference.
+   `Doxygen <https://www.doxygen.nl/>`_ is a
+   documentation generator used in the DPDK to generate the API reference.
 
 DPDK
    Data Plane Development Kit
 
 DRAM
-   Dynamic Random Access Memory
+   `Dynamic Random Access Memory <https://en.wikipedia.org/wiki/Dynamic_random-access_memory>`_
+   is  type of random access memory (RAM) that is used in computers to temporarily store information.
 
 EAL
-   The Environment Abstraction Layer (EAL) provides a generic interface that
-   hides the environment specifics from the applications and libraries.  The
-   services expected from the EAL are: development kit loading and launching,
-   core affinity/ assignment procedures, system memory allocation/description,
-   PCI bus access, inter-partition communication.
+   :doc:`Environment Abstraction Layer (EAL) <env_abstraction_layer>`
+   is a the core DPDK library that provides a generic interface
+   that hides the environment specifics from the applications and libraries.
+   The services expected from the EAL are: loading and launching, core management,
+   memory allocation, bus management, and inter-partition communication.
+
+EAL Thread
+   An EAL thread is typically a thread that runs packet processing tasks. These threads are often
+   pinned to logical cores (lcores), which helps to ensure that packet processing tasks are executed with
+   minimal interruption and maximal performance by utilizing specific CPU resources dedicated to those tasks.
+   EAL threads can also handle other tasks like managing buffers, queues, and I/O operations.
 
 FIFO
-   First In First Out
+   `First In First Out (FIFO) <https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)>`_
+   is a method for organizing the manipulation of a data structure where the oldest (first) entry, or
+   "head" of the queue, is processed first.
 
 FPGA
-   Field Programmable Gate Array
+   `Field Programmable Gate Array (FPGA) <https://en.wikipedia.org/wiki/Field-programmable_gate_array>`_
+   An integrated circuit with a programmable hardware fabric that can be reconfigured to suit different purposes.
 
 GbE
    Gigabit Ethernet
@@ -81,11 +101,20 @@ HPET
    High Precision Event Timer; a hardware timer that provides a precise time
    reference on x86 platforms.
 
+Huge Pages
+   `Huge pages <https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html>`_
+   are memory page sizes, larger than the default page size, which are supported by the host CPU.
+   These pages are generally megabytes or even a gigabytes in size,  depending on platform,
+   compared to the default page size on most platforms which is measured in kilobytes, e.g. 4k.
+   Where the operating system provides access to hugepage memory, DPDK will take advantage of
+   those hugepages for increased performance.
+
 ID
    Identifier
 
 IOCTL
    Input/Output Control
+   A system call that allows applications to communicate with device drivers to perform specific input/output operations.
 
 I/O
    Input/Output
@@ -100,30 +129,37 @@ IPv6
    Internet Protocol version 6
 
 lcore
-   A logical execution unit of the processor, sometimes called a *hardware
-   thread*.
+   A logical execution unit of the processor, sometimes called a hardware thread or EAL thread;
+   Also known as logical core.
 
 L1
-   Layer 1
+   Layer 1 - `Physical Layer <https://en.wikipedia.org/wiki/Physical_layer>`_
+   The Physical layer of the network responsible for sending and receiving signals to transmit data.
 
 L2
-   Layer 2
+   Layer 2 - `Datalink Layer <https://en.wikipedia.org/wiki/Data_link_layer>`_
 
 L3
-   Layer 3
+   Layer 3 - `Network Layer <https://en.wikipedia.org/wiki/Network_layer>`_
+   Also known as the network layer, Layer 3 is responsible for packet forwarding including routing through intermediate routers
+   Example protocols include IP v4 and IP v6.
 
 L4
-   Layer 4
+   Layer 4 - `Transport Layer <https://en.wikipedia.org/wiki/Transport_layer>`_
+   Examples include UDP and TCP.
+
 
 LAN
    Local Area Network
 
 LPM
-   Longest Prefix Match
+   `Longest Prefix Match <https://en.wikipedia.org/wiki/Longest_prefix_match>`_ is
+   a lookup algorithm where the entry selected is that which matches the longest initial part (or prefix)
+   of the lookup key, rather than requiring an exact match on the full key.
 
 main lcore
-   The execution unit that executes the main() function and that launches
-   other lcores.
+   The logical core or thread that executes the main function and that launches tasks on other logical
+   cores used by the application.
 
 master lcore
    Deprecated name for *main lcore*. No longer used.
@@ -134,20 +170,20 @@ mbuf
    concepts of packet buffers or mbuf, refer to *TCP/IP Illustrated, Volume 2:
    The Implementation*.
 
-MESI
-   Modified Exclusive Shared Invalid (CPU cache coherency protocol)
-
 MTU
    Maximum Transfer Unit
+   The size of the largest protocol data unit (PDU) that can be communicated in a single network layer transaction.
 
 NIC
    Network Interface Card
+   A hardware component, usually a circuit board or chip, installed on a computer so it can connect to a network.
 
 OOO
    Out Of Order (execution of instructions within the CPU pipeline)
 
 NUMA
-   Non-uniform Memory Access
+   `Non-uniform Memory Access (NUMA) <https://en.wikipedia.org/wiki/Non-uniform_memory_access>`_
+   A computer memory design that allows processors to access memory faster when it's located closer to them.
 
 PCI
    Peripheral Connect Interface
@@ -163,12 +199,16 @@ pktmbuf
 
 PMD
    Poll Mode Driver
+   A program that continuously polls a network interface card (NIC) for new packets,
+   instead of waiting for the NIC to interrupt the CPU. PMDs are used to quickly receive,
+   process, and deliver packets in a user's application and use APIs to configure devices and queues.
 
 QoS
    Quality of Service
 
 RCU
    Read-Copy-Update algorithm, an alternative to simple rwlocks.
+   A synchronization mechanism that allows multiple threads to read and update shared data structures without using locks.
 
 Rd
    Read
@@ -198,6 +238,7 @@ SLA
 
 srTCM
    Single Rate Three Color Marking
+   A policer meters an IP packet stream and marks its packets either green, yellow, or red.
 
 SRTD
    Scheduler Round Trip Delay
@@ -218,12 +259,16 @@ TC
 
 TLB
    Translation Lookaside Buffer
+   A memory cache that stores the recent translations of virtual memory to physical memory to enable faster retrieval.
 
 TLS
-   Thread Local Storage
+   `Thread Local Storage <https://en.wikipedia.org/wiki/Thread-local_storage>`_
+   A memory management method that uses static or global memory local to a thread.
 
 trTCM
-   Two Rate Three Color Marking
+   `Two Rate Three Color Marking <https://datatracker.ietf.org/doc/html/rfc2698>`
+   A component that meters an IP traffic stream, marks it as one of three color category
+   sand assists in traffic congestion-control.
 
 TSC
    Time Stamp Counter
@@ -245,6 +290,9 @@ Worker lcore
 
 WRED
    Weighted Random Early Detection
+   A queueing discipline that allows the router to drop random packets to prevent tail drop.
+   This is helpful for TCP/IP connections.
 
 WRR
    Weighted Round Robin
+   A scheduling algorithm used to distribute workloads across multiple resources based on assigned weights.
-- 
2.34.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-12-02  5:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-22  2:26 [PATCH] doc: reword glossary Nandini Persad
2024-11-22  2:40 ` [PATCH v2] " Nandini Persad
2024-12-02  5:23   ` [PATCH v3] " Nandini Persad
2024-11-26  3:24 ` [PATCH] " Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).