X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fprog_guide%2Flpm6_lib.rst;h=f7915073364f2d7af968c5f7e029799334239f1d;hb=ef73fdd169ae96b00fedb697000f91afae7fb6a9;hp=abc5adbf9f2f612f29dcf75aba47be011a4ea320;hpb=ba9e05cb6b002016b01adf4e8700f206f3d04fd6;p=dpdk.git diff --git a/doc/guides/prog_guide/lpm6_lib.rst b/doc/guides/prog_guide/lpm6_lib.rst index abc5adbf9f..f791507336 100644 --- a/doc/guides/prog_guide/lpm6_lib.rst +++ b/doc/guides/prog_guide/lpm6_lib.rst @@ -53,7 +53,7 @@ several thousand IPv6 rules, but the number can vary depending on the case. An LPM prefix is represented by a pair of parameters (128-bit key, depth), with depth in the range of 1 to 128. An LPM rule is represented by an LPM prefix and some user data associated with the prefix. The prefix serves as the unique identifier for the LPM rule. -In this implementation, the user data is 1-byte long and is called "next hop", +In this implementation, the user data is 21-bits long and is called "next hop", which corresponds to its main use of storing the ID of the next hop in a routing table entry. The main methods exported for the LPM component are: @@ -75,7 +75,7 @@ The main methods exported for the LPM component are: Implementation Details ~~~~~~~~~~~~~~~~~~~~~~ -This is a modification of the algorithm used for IPv4 (see Section 19.2 "Implementation Details"). +This is a modification of the algorithm used for IPv4 (see :ref:`lpm4_details`). In this case, instead of using two levels, one with a tbl24 and a second with a tbl8, 14 levels are used. The implementation can be seen as a multi-bit trie where the *stride* @@ -108,9 +108,11 @@ This is not feasible due to resource restrictions. By splitting the process in different tables/levels and limiting the number of tbl8s, we can greatly reduce memory consumption while maintaining a very good lookup speed (one memory access per level). -.. image40_png has been renamed -|tbl24_tbl8_tbl8| +.. figure:: img/tbl24_tbl8_tbl8.* + + Table split into different levels + An entry in a table contains the following fields: @@ -231,5 +233,3 @@ Use Case: IPv6 Forwarding ------------------------- The LPM algorithm is used to implement the Classless Inter-Domain Routing (CIDR) strategy used by routers implementing IP forwarding. - -.. |tbl24_tbl8_tbl8| image:: img/tbl24_tbl8_tbl8.*