summaryrefslogtreecommitdiffstats
path: root/docs/gettingstarted/developers/fib20/hacking.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/gettingstarted/developers/fib20/hacking.rst')
-rw-r--r--docs/gettingstarted/developers/fib20/hacking.rst68
1 files changed, 0 insertions, 68 deletions
diff --git a/docs/gettingstarted/developers/fib20/hacking.rst b/docs/gettingstarted/developers/fib20/hacking.rst
deleted file mode 100644
index f64d3deb860..00000000000
--- a/docs/gettingstarted/developers/fib20/hacking.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-.. _hacking:
-
-Get Hacking
------------
-
-The code's directory structure is trivial, FIB, mFIB, adj have their
-own directories.
-
-for the most part, for all the FIB object types mentioned in this
-documentation there is a corresponding .h and .c file. As with any VPP
-component/sub-system a 'public' header file is any file that can be
-included by another sub-system and/or plugin. These must be specified
-in the build-system, so go look there. Public header files are always
-a good entry point to start reading.
-
-FIB
-^^^
-
-There is no direct [VPP's binary] API access to FIB, but FIB does
-expose types that can be used on the API by FIB and by other
-subsystems (e.g. :ref:`barnacles`). These types are specified in
-fib.api and the encoding and decoding thereof in fib_api.[ch].
-
-Most operations on a FIB entry happen as a result of an operation on a
-FIB table; an entry does not exist in isolation. The APIs in
-fib_table.h are well doxygen documented you should be able to figure
-out what they do. Use this as a starting point to explore how entries
-are created and deleted and how the source priority scheme works.
-
-FIB sources are defined in fib_source.h. Each source behaviour has its
-own file fib_entry_src_*.c These define the virtual functions that
-determine how the source behaves when actions on the FIB occur. For
-example, what the entry must do when its covering prefix's forwarding
-is updated.
-
-When creating new paths/path-lists the main action required is to
-resolve them; see fib_path*_resolve, and once resolved to have them
-contribute a DPO for forwarding or for the uRPF list; see
-fib_*_contribute_forwarding and fib_*_contribute_urpf respectively.
-
-The data-structures that used for entry lookup are protocol
-specific, they are implemented in separate files; ip4_fib.[ch],
-ip6_fib.[ch] and mpls_fib.[ch].
-
-FIB extranet support is implemented in fib_attached_export.[ch].
-FIB tracking is implemented in fib_entry_track.[ch].
-FIB [back]walk is implemented in fib_walk.[ch].
-
-Adjacency
-^^^^^^^^^
-
-Not much to say here, each adjacency type has it own file; use the
-force, read the source.
-
-
-Testing
-^^^^^^^
-
-the majority of FIB coverage comes from the C Unit tests in
-fib_test.c. I strongly encourage you to add code here. It's a much
-easier development cycle to fire up GDB, run VPP and iterate with
-'test fib', than it is work in the python UT. You still need to write
-python UT, don't get me wrong, it's just easier to do the FIB dev
-using C UT.
-
-
-
-Enjoy!