diff options
Diffstat (limited to 'docs/gettingstarted/developers/fib20/multicast.rst')
-rw-r--r-- | docs/gettingstarted/developers/fib20/multicast.rst | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/docs/gettingstarted/developers/fib20/multicast.rst b/docs/gettingstarted/developers/fib20/multicast.rst deleted file mode 100644 index 7cffba81666..00000000000 --- a/docs/gettingstarted/developers/fib20/multicast.rst +++ /dev/null @@ -1,106 +0,0 @@ -.. _mfib: - -IP Multicast FIB ----------------- - -The two principal differences between multicast and unicast forwarding -are: - -* there is no load-balancing among paths, there is only replication - across paths. -* multicast forwarding has an explicit reverse path forwarding (RPF) - check. It will only forward a packet if it arrives from a peer for - which it has been explicitly configured to accept. - -The other factor that influences the design of the mFIB is that the -match criteria (the prefix) is different. For multicast it is -necessary to be able to match on source and destination/group -addresses (termed an (S,G)) and only on a destination prefix (a (\*, -G/m)). This prefix is much bigger than a unicast prefix, and since -unicast scale is almost always greater than multicast scale, it is not -a good idea to have a single definition of a prefix. Therefore, -there is a fib_prefix_t (and hence a fib_entry_t) and an -mfib_prefix_t (and hence a mfib_entry_t). - -The fib_path_t and fib_path_list_t are reused. A path can represent -either a peer from which to accept packets or a peer to which to send -packets. A path-extension is added to the fib_path_t/mfib_entry_t to -describe the role the path plays. Logically the path-list is split -into two sets; an accepting set and a forwarding set. The forwarding set -contributes a replicate DPO for forwarding and the accepting set -contributes a list of interfaces (an mfib_itf_t) for the RPF check. - -An IP multicast FIB (mFIB) is a data-structure that holds entries that -represent a (S,G) or a (\*,G/m) multicast group. There is one IPv4 and -one IPv6 mFIB per IP table, i.e. each time the user calls 'ip[6] table -add X' an mFIB is created. - -Usage -^^^^^ - -To add an entry to the default mFIB for the group (1.1.1.1, 239.1.1.1) -that will replicate packets to GigEthernet0/0/0 and GigEthernet0/0/1, do: - -.. code-block:: console - - $ ip mroute add 1.1.1.1 239.1.1.1 via GigEthernet0/0/0 Forward - $ ip mroute add 1.1.1.1 239.1.1.1 via GigEthernet0/0/1 Forward - -the flag 'Forward' passed with the path specifies this path to be part of the replication set. -To add a path from GigEthernet0/0/2 to the accepting (RPF) set do: - -.. code-block:: console - - $ ip mroute add 1.1.1.1 239.1.1.1 via GigEthernet0/0/2 Accept - -A (\*,G) entry is added by not specifying a source address: - -.. code-block:: console - - $ ip mroute add 232.2.2.2 via GigEthernet0/0/2 Forward - -A (\*,G/m) entry is added by not specifying a source address and giving -the group address a mask: - -.. code-block:: console - - $ ip mroute add 232.2.2.0/24 via GigEthernet0/0/2 Forward - -Entries are deleted when all paths have been removed and all entry flags (see below) are also removed. - -Advanced -^^^^^^^^ - -There are a set of flags associated only with an entry, see: - -.. code-block:: console - - $ show mfib route flags - -only some of these are relevant over the API/CLI: - -#. Signal - packets that match this entry will generate an event that - is sent to the control plane (which can be retrieved via the signal - dump API) -#. Connected - indicates that the control plane should be informed of - connected sources (also retrieved via the signal dump API) -#. Accept-all-itf - the entry shall accept packets from all - interfaces, thus eliminating the RPF check -#. Drop - Drop all packet matching this entry. - -flags on an entry can be changed with: - -.. code-block:: console - - $ ip mroute <PREFIX> <FLAG> - -An alternative approach to the RPF check, that does check the -accepting path set, is to give the entry and RPF-ID: - -.. code-block:: console - - $ ip mroute <PREFIX> rpf-id X - -the RPF-ID is an attribute of a received packet's meta-data and is -added to the packet when it ingresses on a given entity such as an -MPLS-tunnel or a BIER table disposition entry. |